Salve a tutti oggi voglio farvi vedere come ho ottimizzato Gnu/linux sul netbook.
Ho un EeePc 901 con due dischi SSD. Il sistema è Archlinux, ma queste ottimizzazioni servono per qualunque SO Gnu/linux, i file system sono in Ext4.
Con questa guida vedremo come limitare le scritture sul disco, come risparmiare energia e come velocizzare ulteriormente il boot.
Tanto per chiarire, se fate queste modifiche è sottintesso che voi sapiate cosa state facendo, quindi usate questa guida a vostro rischio e pericolo.
Nota: Questa guida è stata pubblicata precedentemente su uielinux. Data la natura di questo blog è opportuno pubblicarla anche qui, rendendola allo stesso tempo una guida più multidistro.
Ottimizzazione dentro il file fstab:
sudo gedit /etc/fstabincollare le seguenti righe alla fine del file:
tmpfs /tmp tmpfs nosuid,noatime,mode=1777 0 0NOTA: Se in precedenza avete seguito la guida di Doc, chiamata Montare la Cache sulla Ram, tenete presente che le prime 3 righe le avrete già aggiunto in quell'occasione. Quindi dovrete aggiungere solo le ultime due.
tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0
tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0
none /var/run tmpfs mode=0755,size=2m,noatime,nosuid 0 0
none /var/lock tmpfs mode=1777,size=2m,noatime,nosuid,nodev,noexec 0 0
Facendo questo accorgimento anche i log del sistema finiranno sulla Ram. Se volete registrarli da un'altra parte seguite sempre la guida di Doc, in cui viene spiegato come fare.
Continuiamo, aggiungete la voce noatime dentro le opzioni delle partizioni al posto della voce relatime, Esempio:
UUID=[serie-di-numeri] / ext4 relatime,errors=remount-ro 0 1 UUID=[serie-di-numeri] /home ext4 relatime 0 2Diventerà:
UUID=[serie-di-numeri] / ext4 noatime,commit=100,nouser_xattr 0 1 UUID=[serie-di-numeri] /home ext4 noatime,commit=100,nouser_xattr 0 2Personalmente suggerisco, come si vede dall'esempio, alcune opzioni - che verrano spiegate più avanti - oltre a noatime. È importante che le opzioni siano attaccate e non abbiano spazi: noatime,commit=100,nouser_xattr,ecc,ecc
Se usate un file system con journaling vi consiglio di aggiungere queste opzioni: barrier=0,data=writeback,nobh (se avete Ext4 senza journaling non fatelo perché non c'è bisogno), se le aggiungete dovrebbe rimanere così:
UUID=[serie-di-n°] / ext4 noatime,barrier=0,nobh,commit=100,nouser_xattr 0 1 UUID=[serie-di-n°] /home ext4 noatime,barrier=0,data=writeback,nobh,commit=100,nouser_xattr 0 2
Se non avete scelto "data=writeback" e "commit=100" saltate questi passi:
Per aggiungere l'opzione data=writeback dentro alla partizione / bisogna entrare da live o da recovery e dare il comando:tune2fs -o journal_data_writeback /dev/sdXNdove sdXN è la partizione in questione (non montata), esempio: sda1
dopo di che possiamo aggiungere la opzione data=writeback alla partizione / nel fstab
Sempre per quanto riguarda la partizione root (/) per l'opzione commit=100 bisogna editare il file menu del grub con questo comando:
sudo gedit /boot/grub/menu.lstcercare un passaggio simile a questo, dove ci sia l'ultima riga "#defoptions= ecc ecc" :
## additional options to use with the default boot option, but not with the ## alternatives ## e.g. defoptions=vga=791 resume=/dev/hda5 # defoptions=quiet splash vga=773E aggiungere l'opzione rootflags=commit=100:
## additional options to use with the default boot option, but not with the ## alternatives ## e.g. defoptions=vga=791 resume=/dev/hda5 # defoptions=quiet splash vga=773 rootflags=commit=100Dopo di che salvate, chiudete e date questo comando:
sudo update-grubSe avete grub2 il file da modificare è /etc/default/grub
e dovrete aggiungere l'opzione alla riga:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash [aggiungere qui]"
Per fare chiarezza ecco qualche delucidazione:
writeback:
Una modalità di journaling per Ext4 che scrive di meno nel disco con rispetto alla modalità di default data=ordered, per questo a mio giudizio converrebbe sia attivata per i dischi SSD.nobh:
Aiuta l'opzione data=writeback ad essere più efficente.barrier:
Disattivare questa opzione, cioe mettere barrier=0 aiuta ad avere più performace, tuttavia se non hai un portatile è melgio questa opzione rimanga attiva.noatime :
Grazie a questa opzione il sistema ad ogni accesso ad un file non scrive la data di accesso, limitando le scritture sul disco. Cosa che conviene avendo un SSD. Inoltre si limita a scrivere la data di accesso solo quando l file viene effettivamente modificato e non solo letto, aumentando quindi anche la velocità di accesso ai file.relatime :
Relatime scrive la data di accesso anche se il file è solamente letto. Pratica più sicura ma che comporta ovviamente più riscritture sul filesystem. Nel caso di un disco SSD conviene sia sostituita dall'opzione noatime.commit :
Aumenta l'intervalo per cui il sistema fa una operazione di sincronizzazione tra i dati e i metadati, da default questo intervallo è di 5 secondi, noi lo aumentiamo a 100 secondi, in questo modo ci sono meno scritture. Potete scegliere anche 90 o 80, a voi la scelta.nouser_xattr :
Disabilita Extended User Attributes se non ne hai bisogno. se stai usando una distro versione desktop a casa o in una officina piccola, insomma se sei un singolo utente che fa le solite cose e non ha un server ma solo un pc questa opzione si può disabilitare.errors=remount-ro :
possiamo toglierlo tranquillamente.Ottimizzare il kernel:
sudo gedit /etc/rc.localaggiungiamo certi parametri al foglio appena aperto, in fondo al file prima di exit 0:
echo 1500 > /proc/sys/vm/dirty_writeback_centisecs echo 20 > /proc/sys/vm/dirty_ratio echo 10 > /proc/sys/vm/dirty_background_ratio echo 1 > /sys/devices/system/cpu/sched_smt_power_savings echo 10 > /sys/module/snd_hda_intel/parameters/power_save echo 5 > /proc/sys/vm/laptop_modein questo modo avremmo un consumo di risorse un po' ridotto, aumentando la durata della batteria
Velocizzare il boot ulteriormente:
Aprite il grub:sudo gedit /boot/grub/menu.lstAggiungere “elevator=noop” alla linea del kernel.
Per esempio:
title Alphawinux 3.0 root (hd0,0) kernel /boot/vmlinuz-2.6.24-19-generic root=UUID=090cbd4d-5696-4e8c-9aa5-f6e13d93f0bc ro quiet splash elevator=noop initrd /boot/initrd.img-2.6.24-19-generic quiet
Se invece usate grub2:
sudo gedit /etc/default/grubcerchiamo la riga
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"e aggiungiamo il parametro, in modo che rimanga cosi.
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"infine:
sudo update-grub2
Questo è tutto per adesso, se volete approfondire queste ottimizzazioni vi rimando alle fonti dove imparete tantissimo:
Forum di Arch
Tunning ext4
Ext4 on SSD fedora forum
Zdnet
Se, infine, volete chiedere aiuto o confrontare le diverse performance nei dischi ssd potete commentare qui sotto. :)
Alla prossima!
questo fine settimana proverò questi parametri sul mio acer aspire one, era un pò che volevo metterci mano.
RispondiEliminahola
RispondiEliminaho fatto le modifiche al file rc.local qui consigliate ma se provo a controllare con cat noto che i valori sono sempre standard e diversi da quelli con echo idee??
@Phoenix Fire
RispondiEliminaHola Phoenix! mi puoi postare il commando che hai usato con cat? A me succedeva lo stesso con il commit, però ho risolto aggiungendolo alla righa del kernel nel grub.
Magari prova a dirmi come fai cosi vediamo di risolvere, e provo anch'io se cat mi da gli stessi valori.
Grazie di già ;)
ho semplicemente provato per ogni riga
RispondiEliminacat /percorso/su/cui/fai/echo
per esempio
cat /proc/sys/vm/dirty_writeback_centisecs
e quello che restituisce è diverso da quello che gli passo con echo
Ciao Phoenix, ho controllato e a me CAT da i valori giusti, sei sicuro di aver messo quelle righe prima del "exit 0" ?
RispondiEliminaIo non ho aggiunto tutte però, sto pensando che il data writeback non c'è bisogno di metterlo lì perché c'è già il commando con tune2fs e la voce nel grub. Inoltre, avendo tolto il journaling il data writeback non dovrebbe essere rilevante.
@ Sant
RispondiEliminaDammi qualche info sul parametro elevator=noop. È consigliato con tutti i file system (ext3 ed ext4)? Va bene anche per gli HD?
In generale, a che serve?
In parole povere riguarda la modalità di gestire la scrittura e/o lettura nel disco. È un algoritmo di gestione. Diciamo che inizia a fare le procedure a random. Non lo consiglio per gli HD, infatti lo farei solo per gli SSD, perché non si parla di dischi fisici. Sul link di Zdnet se ne parla.
RispondiEliminaquesto è completo, è il primo link che esce da google ;)
http://lonesysadmin.net/2008/02/21/elevatornoop/
ciao a tutti sto provando ad usare fedora, messi i vari parametri dopo / nel fstab e il net decide di smettere di avviarsi. Avete idee del perchè? Grazie
RispondiElimina@Phoenix Fire
RispondiEliminaCome hai partizionato il disco? Fedora usa di default gli LVM, l'unica partizione fisica è /boot.
partizionato automatico fatto da lui con gli LVM e boot (senza swap); quindi?? semplicemente non si fa con gli LVM o sbaglio qualcosa io?
RispondiElimina@Phoenix Fire
RispondiEliminaNo, non hai sbagliato nulla. :D Semplicemente fstab non vede gli LVM come partizioni fisiche, quindi i parametri non si possono passare in questo modo.
Ci ho guardato un po' anch'io in passato, ma non ho trovato nulla in proposito in rete. L'unica è installare Fedora utilizzando un normale partizionamento e poi inserire i parametri in Fstab.
capito dici che è meglio reinstallare in maniera "classica" o conservare tutto così?
RispondiElimina@Phoenix Fire
RispondiEliminaDipende da te... :D Se hai solo voglia di provarla ti consiglio di gustartela anche così, se ti convince sei sempre a tempo per un reinstall. Per quanto mi riguarda, sulla SSD ho partizionato con BTRFS. :D
allora formatto tanto ho appena iniziato e oggi ho tempo libero :D, approfitto a chiedertelo qui senza fare troppi post. Che vantaggi da btrfs (su un SSD intendo)? ma hai usato sempre LVM o hai fatto alla maniera classica? ultima domanda per rimuovere completamente programmi inutilizzati ma preinstallati fedora con gnome (tipo trasmission) che comando conviene usare??
RispondiElimina@Phoenix Fire
RispondiEliminaDunque, i vantaggi prestazionali con gli ultimi kernel sono aumentati, ma rimangono risibili. Poi c'è la possibilità di montare la partizione con l'opzione apposita per gli SSD tramite Fstab che disabilita la write cache. (Anche qui però non con gli LVM)
Per rimuovere un pacchetto in Fedora basta:
su -c 'yum remove NOMEPACCHETTO'
:D