Vraag Hoe optimaliseer ik het besturingssysteem voor SSD's?


Welke stappen moeten worden genomen vóór / tijdens / na de installatie van Ubuntu op een Solid State Drive om de prestaties te optimaliseren en de maximale duurzaamheid van de schijf te garanderen?


143
2017-08-06 14:03


oorsprong




antwoorden:


Ik heb met succes verschillende technieken gebruikt om de manier te verbeteren waarop Ubuntu het opslagapparaat gebruikt, of het nu een solid-state of een traditioneel station is.

Voor SSD's wilt u het aantal keren dat de drive wordt geschreven ook minimaliseren, omdat reads geen slijtage aan de drive zouden moeten toevoegen.

1) Beheer het wisselbestand

Als u uw computer niet in slaapstand zet en u over voldoende RAM-geheugen beschikt om al uw toepassingen uit te voeren, heeft u in theorie geen swappartitie nodig.

Als u een combinatie van SSD en harde schijven hebt, plaatst u uw swappartitie alleen op de harde schijven.

2) Geen schrijfopdrachten voor leestijdstempels (geschikt voor SSD's en harde schijven)

Bevestig uw partities met de opties noatime en nodiratime stopt met het schrijven van tijdstempels wanneer u bestanden en mappen leest. Deze tijdstempelsschrijven zijn over het algemeen niet vereist tenzij u een lokale mailserver-client zoals mutt gebruikt. De reden dat dit over het algemeen een slecht idee is, is omdat elke read een write zal produceren bij het updaten van de tijdstempels. Dit vermindert de levensduur van de SSD.

Bewerk je / Etc / fstab configuratiebestand (zorgvuldig - neem een ​​back-up om er zeker van te zijn dat het kapot gaan van uw fstab-configuratie kan voorkomen dat uw systeem werkt):

cp /etc/fstab ~/fstab-backup
gksudo gedit /etc/fstab

Bewerk de bevestigingsopties voor uw partities door de tekst noatime en nodiratime toe te voegen aan de regels die uw root (/) en andere partities definiëren als u die hebt (/ home) - Opmerking: als je een / home-partitie hebt, begin dan met het wijzigen van die partitie als je je zorgen maakt over iets breken 

# / was on /dev/sda2 during installation
UUID=587e0dc5-2db1-4cd9-9792-a5459a7bcfd2 /               ext4    noatime,nodiratime,errors=remount-ro 0       1

# /home was on /dev/sda3 during installation
UUID=2c919dc4-24de-474f-8da0-14c7e1240ab8 /home           ext4    noatime,nodiratime,defaults        0       2

U moet uw machine opnieuw opstarten voordat deze wijzigingen van kracht worden

3) Het minimaliseren van schrijft van het besturingssysteem en applicaties

Ervan uitgaande dat u geen bedrijfskritische productserver draait, kijken de meeste mensen niet naar logs mocht er iets misgaan (vooral omdat serieuze fouten zeldzaam zijn voor de meeste Ubuntu-gebruikers). Daarom kunt u Ubuntu zo configureren dat alle logboeken naar het RAM-geheugen worden geschreven in plaats van naar de SSD.

Opmerking: voer de volgende wijzigingen alleen in als u alle software die u gaat gebruiken (met name dingen zoals Apache-webserver) hebt geïnstalleerd, anders kunt u enkele problemen ondervinden met ontbrekende mappen in / var / log

Zie voor de achtergrond van deze aanpak verlengen van de levensduur van je flash drive op ubuntu-eee.com 

Open / Etc / fstab met een editor (ervan uitgaande dat je een back-up hebt gemaakt van het bestand / etc / fstab)

gksudo gedit /etc/fstab

Voeg de volgende regels toe aan het einde van het fstab-bestand en sla op:

# Uncomment these after all server based applications installed - eg. apache
#tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
#tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0
#tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0 
#tmpfs /var/log/apt tmpfs defaults,noatime 0 0
# none /var/cache unionfs dirs=/tmp:/var/cache=ro 0 0

U moet uw machine opnieuw opstarten voordat deze wijzigingen van kracht worden

Zie ook:


106
2017-08-08 13:09



Over het laatste bit voor logs en zo, de tmpfs lijnen worden becommentarieerd, dus waarom zou het toevoegen van die regels enig verschil maken? Moeten we het ongecommentarieerd toevoegen? - Oxwivi
Ik kan begrijpen of dit bedoeld is om de snelheid te verbeteren, maar het meeste van wat je schreef leek het SSD-leven te verbeteren. Is het niet zo dat met moderne SSD's deze verbeteringen zinloos zijn? En ten koste van meer RAM-gebruik! (zie bijvoorbeeld de link in dit andere antwoord) - Chan-Ho Suh
Er is geen behoefte aan 2). relatime helpt schrijffouten te voorkomen en is sindsdien standaard actief kernel 2.6.30. - Mihai Capotă
Gewoon om toe te voegen aan de opmerking van @ MihaiCapotă is er een Server Fout antwoord met meer details over waarom noatime niet nodig is. - Cas
Ze zeggen dat noatime knikoog impliceert hier, dus het is genoeg om de eerste optie toe te voegen. - jarno


SSD Life

Over het algemeen zou ik me niet druk maken - de zorgen over het leven van SSD zijn overdreven. Je kunt dit lezen gedetailleerd artikel over waarom je je eigenlijk geen zorgen hoeft te maken. Kortom, de schakelingen in moderne SSD's beheren slijtage-nivellering voor u, en ze weten hoe ze het veel beter moeten doen dan u.

In het artikel staat een berekening van de levensduur van een SSD die schrijft ontvangt met een continue snelheid van 80 M / s. Het leven is 51 jaar. Dat is gebaseerd op de technologie van 2007 - SSD-leven zal nu langer zijn. En je schrijft vrijwel zeker niet 24 uur per dag je SSD bij 80M / s.

SSD-prestaties

Prestatieverliezen in de loop van de tijd kunnen echter een probleem zijn, en TRIM is de oplossing. Er zijn twee opties

  • automatisch / online TRIM, ook bekend als discard
  • handmatige TRIM

Je moet schakel automatisch TRIM in . (In principe voeg je de discard optie voor uw mount-opties, op voorwaarde dat u ext4 gebruikt.) Ik heb een blogpost gevonden die dit rapporteert de optie negeren vertraagt ​​uw systeem bij het verwijderen van bestanden.

U kunt het af en toe handmatig (of in een cron-taak) doen met fstrim. Als u slechts één partitie heeft, hoeft u alleen maar het volgende te doen:

sudo fstrim /

Merk op dat fstrim alleen beschikbaar is in 11.10 en nieuwer. Voor oudere systemen heeft u de wiper.sh script. Ik vond het script op /usr/share/doc/hdparm/contrib/wiper.sh.gz op mijn systeem.

Als je je afvraagt, het probleem dat TRIM oplost, als beschreven door Wikipedia, is:

SSD's slaan gegevens op in flash-geheugencellen die zijn gegroepeerd in pagina's, waarbij de pagina's (meestal 4 kB elk) zijn gegroepeerd in blokken (meestal 128 pagina's per blok, in totaal 512 kB). NAND-flashgeheugencellen kunnen alleen direct worden geschreven naar wanneer ze leeg zijn. Als ze worden geacht gegevens te bevatten, moet de inhoud eerst worden gewist voordat een schrijfbewerking betrouwbaar kan worden uitgevoerd. In SSD's kan een schrijfbewerking op paginaniveau worden uitgevoerd, maar vanwege hardwarebeperkingen hebben wisopdrachten altijd invloed op hele blokken. Als gevolg, het schrijven van gegevens naar SSD-media gaat erg snel zolang lege pagina's kunnen worden gebruikt, maar aanzienlijk langzamer wordt als eerder geschreven pagina's moeten worden overschreven. Omdat het wissen van de cellen op de pagina nodig is voordat het opnieuw kan worden geschreven, maar alleen hele blokken kunnen worden gewist, start een overschrijven een lees-wis-schrijf-schrijfcyclus: de inhoud van het hele blok moet worden opgeslagen in de cache voordat deze effectief wordt gewist op het flashmedium, waarna de overschreven pagina wordt gewijzigd in de cache, zodat het in de cache opgeslagen blok up-to-date is en alleen dan het hele blok is (met bijgewerkte pagina) geschreven naar het flashmedium. Dit fenomeen staat bekend als schrijfamplificatie.


90
2017-08-08 19:03



Ik wou dat ik meerdere keren kon stemmen. DIT zou een van die antwoorden zijn. Die link heeft een probleem opgelost dat ik al heel lang heb. Veel dank Hamish. - Luis Alvarado♦
Interessant artikel van storagesearch.com. Ik wou dat het een date zou geven! Betekent het bovenstaande antwoord dat SSD-bezitters geen moeite hoeven doen om suggesties te doen in het eerste antwoord, met uitzondering van TRIM? Ik heb niet veel tijd nodig voor toegang tot bestanden, maar met 2G geheugen, kan het hebben van een swap-partitie nog steeds nuttig zijn bij het uitvoeren van enkele software voor het bewerken van foto's, samen met verschillende andere geheugenintensieve programma's zoals Chrome. - Lawrence I. Siden
@lsiden: het artikel vermeldt "Later: - in mei 2008" halverwege. En u hebt gelijk dat u zich geen zorgen hoeft te maken over alle andere dingen in het eerste artikel. Schakel gewoon TRIM in en geniet van de snelheid :) - Hamish Downer
Het artikel verwijst naar Enterprise SSD's: hij gebruikt 2 miljoen cycli van schrijfuithoudingsvermogen. Consumenten-SSD's hebben ongeveer 3000-5000 cycli. Een 128 GB SSD met 3000 cycli geeft 57 dagen onafgebroken 80 MB / sec schrijven. - LeartS
In Ubuntu 14.10 gebeurt TRIMming automatisch elke week op alle SSD's die door fstrim worden ondersteund. ref. - KrisWebDev


Er zijn verschillende punten:

alignment:

Wat vaak wordt opgemerkt, is het recht opstelling van de partitie. Dit moet gelijk zijn aan de blokgrootte van de SSD. Speel veilig en maak uw partities afgestemd op MiB-grenzen. Merk op dat je dit niet kunt doen met de partitietool van Ubuntu-installatieprogramma (die MB niet MiB gebruikt), maar je kunt de live-CD booten, Gparted gebruiken (die MiB gebruikt) en vervolgens op Installeren klikken om de partities te gebruiken die je hebt ingesteld.

De juiste planner:

Een belangrijk punt is de scheduler wat zou moeten zijn noop. U kunt deze planner instellen via kernelparameter elevator=noop of via een item echo noop > /sys/block/sda/queue/scheduler in jou rc.local.

Mountflags:

ik zou aanbevelen noatime en discard

tmpfs

Het plaatsen van tmp op een ramdisk kan de levensduur van de ssd verlengen. Om dit te gebruiken, plaatst u de volgende regel in uw fstab: none /tmp tmpfs defaults 0 0

Over het algemeen raad ik je aan om dieper op dit onderwerp in te gaan deze uitstekend wiki-artikel.


20
2018-02-03 21:28





Snel afstemmingspakket voor je SSD op Ubuntu:

bestandssysteem

Arch wiki vermeldt weinig voorkeur opties voor SSD-bestandssysteem - een van hen is onstabiel, anderen zijn ext* degenen. Ik neem aan ext4 is een van de beste keuzes.
Opmerking: in geval van ext4 je zou willen gebruiken discard mount optie.

fstab

# <file system> <mount point> <type> <options>                                  <dump>  <pass>
proc            /proc         proc   nodev,noexec,nosuid                        0       0
tmpfs           /tmp          tmpfs  nodev,nosuid,noatime,mode=1777             0       0
/dev/sda1       /             ext4   defaults,noatime,discard,errors=remount-ro 0       1
/dev/sda2       /home         ext4   defaults,noatime,discard,user_xattr        0       2
/dev/sda3       /windows      ntfs   defaults,noatime,discard,umask=007,gid=46  0       0

Enkele belangrijke dingen hier zijn:

  • Voor systemen met> = 2 optredens van geheugen, is het lokaliseren / tmp in de RAM wenselijk.
  • Nee swap partitie. Tegenwoordig is het alleen nodig voor de winterslaap, aangezien moderne machines behoorlijk veel RAM bevatten.
  • noatime en discard opties. Info is hier.

scheduler

Overweeg om over te schakelen van de standaardplanner, die onder de meeste Linux-distro's cfq (volledig eerlijk wachtrijen) is, naar de noop- of deadlineplanner voor een SSD. Het gebruik van de noop-planner bijvoorbeeld verwerkt aanvragen eenvoudig in de volgorde waarin ze worden ontvangen, zonder rekening te houden met waar de gegevens zich fysiek op de schijf bevinden. Deze optie wordt geacht van voordeel te zijn voor SSD's omdat zoektijden identiek zijn voor alle sectoren op de SSD.

Voeg het volgende toe aan /etc/rc.local:

# SSD performance tuning
echo noop > /sys/block/sda/queue/scheduler

info

een  twee


16
2017-12-09 17:24



Zonder ruil, en met /tmp in RAM is het heel gemakkelijk om een uit het geheugen situatie, zoals veel programma's gebruiken /tmp als een opslagruimte (bijvoorbeeld Brasero voor het opslaan van dvd-afbeeldingen). - arrange
Niet echt. tmpfs standaard is 10% RAM. De grootte kan worden aangepast met behulp van size optie al. - Andrejs Cainikovs
Brasero is een slecht voorbeeld, het zou dat in de eerste plaats niet moeten doen, zoals Lennart Poettering in zijn blog uitlegt 0pointer.de/blog/projects/tmp.html - LiveWireBT


4) schakel automatische TRIM in 

Als uw SSD dit ondersteunt, moet u ook automatische TRIM inschakelen (zoals beschreven hier)


8
2017-12-30 23:37





Ik zou deze regel niet aan je fstab toevoegen, de map var / tmp is bedoeld om te overleven en kan problemen voor je veroorzaken.

tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0

Wanneer ik een nieuw systeem configureer laat ik alle tmp-mappen op deze manier weggelaten als er iets gebeurt. Ik kan de logs en zo controleren. Zodra ik de installatie van het hoofdsysteem heb voltooid, zal ik ze niet meer becommentariëren, maar ik voeg nooit de bovenstaande regel toe, hier is wat ik gebruik:

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0 
tmpfs /var/log/apt tmpfs defaults,noatime 0 0

En als ik problemen heb met mijn systeem, becommentarieer ik die om alles te kunnen controleren, zelfs na een herstart of gedwongen reboot na een lock-up.

Ook heb je nodiratime niet nodig, de noatime-optie zorgt alleen voor zichzelf.

Wat betreft TRIM, als je hw / sw het ondersteunt, is het een must, ik gebruik geen weggooien in fstab. Ik maak een dagelijkse cron, omdat mijn pc altijd aan staat, door dit te doen:

gksu gedit /etc/cron.daily/trim

Voeg dit vervolgens toe aan het bestand en sla op (als u geen seperate / home-partitie op ssd heeft of andere delen op ssd heeft, zou u het idee moeten krijgen hoe dit te wijzigen:

#!/bin/sh
LOG=/var/log/trim.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG
fstrim -v /home >> $LOG

Maak het bestand vervolgens uitvoerbaar door:

sudo chmod +x /etc/cron.daily/trim

Ik bewerk ook mijn rc.local zoals zo:

gksu gedit /etc/rc.local

Voeg dit toe boven "exit 0" en onder de laatste #:

# Modification for SSD
# you may want to add more folders to be checked/created to this list
for dir in apparmor apt ConsoleKit cups dist-upgrade fsck gdm installer news ntpstats samba speech-dispatcher unattended-upgrades; do
  if [ ! -e /var/log/$dir ] ; then
    mkdir /var/log/$dir
  fi
done

Je kunt vanaf hier kopiëren en plakken zodat er geen fouten zijn, voor de leek ziet het er niet uit, maar dat is het niet.

Ik heb ook gelezen dat als je 10% van je ssd-schijf ongeformatteerd laat, het leven kan verlengen, dat valt nog te bezien. Ik heb hier niet veel over gelezen, dus ik kan niet instaan ​​of het zinvol is om dit te doen.

Dit is de beste gids om hem heen, hij heeft een dag niet rondgesnuffeld met Google en dan een gids bedacht, moet je het eens bekijken HIER


3
2017-07-28 22:53



Is het idee om alle mappen onder regulier / var / log aan /etc/rc.local toe te voegen? Wat gebeurt er, als je de mappen niet toevoegt? Ik denk dat er misschien meer mappen nodig zijn om toe te voegen, als je een paar nieuwe pakketten installeert. Kon /etc/rc.local tijdens het afsluiten worden bijgewerkt om alle mappen bij de volgende keer opstarten te maken? - jarno
In ubuntu 14.04 en later is er standaard een cron-taak /etc/cron.weekly/fstrim ingesteld om wekelijks bestandssystemen te trimmen. Zie voor 14.04 hier. Ubuntu 15.10 gebruikt /sbin/fstrim --all || true in het fstrim-script. - jarno
Ten minste directory / var / log / installer heeft submap ubiquity-apt-clone genaamd in Xubuntu 15.10. Moet u subdirectories recursief maken? - jarno


TRIM stelt een besturingssysteem in staat om een ​​SSD te informeren dat datablokken niet langer in gebruik worden beschouwd en intern kunnen worden gewist. Trimmen stelt de SSD in staat om overhead voor afvalverzameling te verwerken, wat anders de toekomstige schrijfbewerkingen van de betrokken blokken op voorhand aanzienlijk zou vertragen.1 

In Ubuntu 14.04 is een nieuwe functie toegevoegd aan de util-linux pakket dat regelmatig SSD's automatisch trimt, maar alleen Intel en Samsung SSD's hebben TRIM standaard ingeschakeld, omdat sommige goedkope SSD's zichzelf zelfs kunnen blokkeren bij het uitvoeren van TRIM.2 De inhoud van /etc/cron.weekly/fstrim in Ubuntu 14.04:

#!/bin/sh
# call fstrim-all to trim all mounted file systems which support it
set -e

# This only runs on Intel and Samsung SSDs by default, as some SSDs with faulty
# firmware may encounter data loss problems when running fstrim under high I/O
# load (e. g.  https://launchpad.net/bugs/1259829). You can append the
# --no-model-check option here to disable the vendor check and run fstrim on
# all SSD drives.
exec fstrim-all

1https://en.wikipedia.org/wiki/Trim_%28computing%29
2Hoe is Trim ingeschakeld?


3
2017-12-25 01:52