Questa guida si propone di rendere più veloce e performante Debian Squeeze, partendo dalla fase di boot. Allo stesso tempo ho voluto provare questi stessi passi anche su LMDE che di default, a mio avviso, è più lenta di Debian Squeeze. Questa guida è adatta chiaramente in ambito Desktop, io stesso sono alla ricerca di un compromesso accettabile, quindi è da considerarsi "sperimentale", di conseguenza da usare a proprio rischio e pericolo. Questa guida ho deciso di dividerla in due parti, nella prima parte si parlerà di come velocizzare la fase di boot, mentre nella seconda parte di come aumentare le prestazioni del sistema. Quindi c'è la possibilità di provare singolarmente queste due guide e farsi un idea dei vantaggi e degli svantaggi.
Velocizzare Boot
Step 1 servizi:
Indubbiamente la base da cui partire è sempre l'eliminazione dei servizi di avvio che non si utilizzano, a questo proposito esistono nei repository degli strumenti come Bum è sysv-rc-conf. quest'ultimo molto potente, per ottenere uno snellimento dei servizi.
Step 2 insserv:
installare insserv se non già presente, ed abilitare l'esecuzione in parallelo dei servizi:
#
echo 'CONCURRENCY=makefile' >> /etc/default/rcS
Step 3 preload:
installare preload che si occuperà di monitorare le applicazioni lanciate dagli utenti e dalle analisi di questi dati predice quali applicazioni potrebbero eseguire gli utenti, di conseguenza recupera e porta in memoria i relativi binari e le loro dipendenze in modo da velocizzarne l'avvio (programmi).
Step 3 readahead-fedora:
installare readahead-fedora, uno strumento che precarica file, in questo caso quelli usati durante il processo di boot, per accelerare l'avvio del sistema. Il file di configurazione è in /etc/readahead.conf, assicurarsi che readahead punti a preload:
RAC_EXECIGN="/sbin/readahead /usr/sbin/preload"
e passare da 300 a 100 in:
RAC_MAXTIME="100"
quindi:
# reboot
all'avvio di grub bisogna passare un parametro al kernel per avviare il processo:
init=/sbin/readahead-collector
Per concludere questa prima parte mi soffermo su dei numeri appena testati su LMDE, e ne ho fatto una media, il tempo è stato preso dal push del tasto invio fino alla comparsa del desktop (musichetta e compiz) il mio OS è settato senza password, quindi login automatico.
Boot in 23.8 secondi
Halt/Reboot in 10 secondi netti.
Certo ci sono i pro ed i contro con un boot veloce 🙂 Nei prossimi giorni la parte 2.
enjoy 😉
Interessante, mi sa che la testo sul piccino 😀
provala picchio 😉 c'è da dire in aggiunta che il test è stato fatto con kernel 2.6.37-ck1
è da un'pò che seguo il tuo blog e anche se è molto tecnico certe volte è facile per la lettura.
Ho applicato la guida anche se preload l'avevo già installato.
Vediamo domani al riavvio 😛
@Mte90
tieni presente che nei risultati del test fatto sopra, è inclusa anche le modifiche fatte nella parte 2 del
post che sarà prox on line 🙂 , sicuramente già così avrai dei miglioramenti, specialmente se hai fatto
pulizia dei servizi che non ti servono. Se oltre a BUM usi sysv-rc-confti basta con i tasti freccia passare
nella casella di init 2 e dare una ripulita.
Gran bell'articolo 😉
Un po' di dubbi sul preload, ma readahead-fedora lo uso anche io su una Ubuntu al posto di ureadahead (che richiede una patch nel kernel).
ciao Janvitus, i dubbi su preload li ho anche io, ma voglio dare fiducia agli sviluppatori 😉
Ciao, preload e readahead-fedora li avevo già provati sul mio vecchio portatile con Squeeze, ma le ultime due indicazioni su readahead mi sono nuove. Perché far puntare readahead su preload? A cosa serve il parametro RAC_MAXTIME e perché portarlo da 300 a 100? Oltretutto, dopo aver installato Readahead, non bisognerebbe avviare il kernel con l'opzione "profile", per poter protocollare i processi del boot da caricare nella cache (cit. Debianizzati e-zine #2)? Grazie!
@Joif
per quanto riguarda readahead-fedora hai ragione sul parametro da passare al kernel, che io ho dimenticato nella guida. Infatti bisogna avviare il kernel col parametro:
init=/sbin/readahead-collector
Ciao a tutti
non mi è molto chiaro il passaggio dopo il riavvio. Come faccio a passare il parametro al kernel per avviare il processo?
devo andare in grub(cn il tasto c) e dargli la stringa init=/sbin/readahead…. Vorrei capire questo punto
@giovanni
in grub premi "e" e dove c'è la voce del kernel, dopo di "ro quiet" o simili
inserisci il parametro init=/sbin/readahead-collector e poi
boot con Ctrl+x
wow interessante
@Andrea
questa operazione va fatta solamente una volta.
ma dopo aver premuto "e" e passato il parametro "init=/sbin/readahead-collector" va modificato qualche file per far si che il parametro venga letto ogni volta?
Carissimo, bella guida.
Tuttavia, ti fo una segnalazione.
Da mesi uso CONCURRENCY=makefile, ma, leggendo questa pagina, ho voluto ridare una chance a CONCURRENCY=shell.
Ebbene, non v’è dubbio alcuno: con shell il boot sul mio eeepc 1000he si rallenta di 10 SECONDI ca.!!!!!
Ciao
Doc
@Doc
se mi dici che hai avuto questo responso non posso che crederti, e mi prometto
di testare il tutto anche io sul mio Aspire One questo fine settimana, per farmi un idea delle differenze.
grazie a presto 😉
in realtà dovrebbe metterci pochissimo a leggere il file, anche se a volte può
capitare che ci mette un pò di più. Monitora se è una costante oppure è saltuaria questa pausa.
ciao ho un'altra domanda, da quando ho provato la tua guida il boot risulta essere piu veloce (complimenti 😉 ) tuttavia all'avvio perde molto tempo alla riga:
> Reading early boot file
Questo non mi era mai successo, hai idea di cosa possa essere?
La pausa è costante, la noto ormai da tempo come posso agire? può essere che abbia fatto pasticci passando qualche valore del kernel?
prova a passare init=/sbin/readahead-collector Dopq "quiet"
putropppo anche con Dopo “quiet” non funziona, forse sbaglio a passare il parametro..
dove esattamente devo metterlo?
menu grub premere “e” ed inserire init=/sbin/readahead-collector
menuentry “Debian GNU/Linux, with Linux 2.6.36-ck2-bfs-edm (on /dev/sda5)”
insmod part_msdos
insmod ext2
set root='(hd0,msdos5)’
search –no-floppy –fs-uuid –set 27ec857b-418a-4baf-b851-3c20a197359f
linux /boot/vmlinuz-2.6.36-ck2-bfs-edm root=UUID=27ec857b-418a-4baf-b851-3c20a197359f ro quiet init=/sbin/readahead-collector
initrd /boot/initrd.img-2.6.36-ck2-bfs-edm
magari il problema che hai è relativo a qualcosa che avrai toccato…bho
Ora mi sono ricordato!!! Ci avevo studiato mesi fa.
Dato “nano /etc/init.d/rc”, verso l’inizio si legge:
# Specify method used to enable concurrent init.d scripts.
# Valid options are ‘none’ and ‘makefile’. Obsolete options
# used earlier are ‘shell’ and ‘startpar’. The obsolete options
# are aliases for ‘makefile’ since 2010-05-14. The default since
# the same date is ‘makefile’, as the init.d scripts in Debian now
# include dependency information and are ordered using this
# information. See insserv for information on dependency based
# boot sequencing.
CONCURRENCY=makefile
Dunque, vada per makefile!
@Doc
ok mi fido della tua valutazione, e modificherò la guida inserendo
CONCURRENCY=makefile
grazie per la precisazione 😉
Grande Edmond !E grazie della guida. Ma quando cerco di abilitare i servizi mi da: alex@debian:~$ echo ‘CONCURRENCY=makefile’ >> /etc/default/rcS
bash: /etc/default/rcS: Permission denied .Mentre nel: /var/log/boot mi trovo un sacco di errori:
Thu Jun 9 19:43:31 2011: /etc/default/rcS: 21: cannot create /etc/default/rcS: Read-only file system
Thu Jun 9 19:43:31 2011: /etc/default/rcS: 22: sudo: not found
Thu Jun 9 19:43:31 2011: /etc/default/rcS: 21: cannot create /etc/default/rcS: Read-only file system
Thu Jun 9 19:43:31 2011: sudo: unable to resolve host (none)
Thu Jun 9 19:43:31 2011: CONCURRENCY=makefile
Thu Jun 9 19:43:31 2011: Setting parameters of disc: (none).
Thu Jun 9 19:43:31 2011: Setting preliminary keymap…done.
Thu Jun 9 19:43:31 2011: /etc/default/rcS: 21: cannot create /etc/default/rcS: Read-only file system
Thu Jun 9 19:43:31 2011: CONCURRENCY=makefile
devi essere root, quindi:
su
tua password
ciao
Infatti ;ho eliminato il file e lo ricreato da “root” ,cosi non mi da più errori .E rimasto solo un problema :che il riavvio mi reseta il parametro “init=/sbin/readahead-collector” aggiunto al kernel
infatti è giusto così, quel parametro va passato una sola volta, e se tu noti al momento del boot nelle
prime righe lui appare, segno che sta lavorando.
Scusa hai ragione mi sono accorto un po tardi . 🙂
scusate, ma concurrency=makefile in che file va modificato?
con questo comando cosa creo? echo ‘CONCURRENCY=makefile’ >> /etc/default/rcS
mi crea il file rcS, ma concurrency non va messo in /etc/init.d/rc ? Scusate, sono molto confuso, sono su ubuntu 11.04, con gnome 2.32
questo comando ti scrive ‘CONCURRENCY=makefile’ nel file /etc/default/rcS
quindi non va scritto in /etc/init.d/rc, giusto?
Ubuntu usa un sistema di avvio completamente diverso, a quanto mi risulta, e dunque non considero buona cosa apportare una simile modifica.
Ciao
ok, adesso non fa il reboot, cioè si pianta sulla schermata di plymouth e non si spegne…
proverò ad eliminare tutto quello che ho aggiunto…
azz non avevo capito che eri su buntu….mi sa che Doc ha ragione 🙂
ok, rimosso tutto quello che è in guida (I e II parte), ubuntu si inchioda sempre al reboot.
Fa niente, proverò qualche soluzione su google, altrimenti formatto e metto su lmde
OTTIMO! Così ti sbarazzi di quella cosa marrone!
Consiglio: lascia perdere la cosa verde e rivolgiti direttamente alla mamma!
ok il problema era CONCURRENCY=makefile che io avevo messo in /etc/init.d/rc, se lascio none si spegne correttamente
a differenza del tuo il mio file rc recita così
Specify method used to enable concurrent init.d scripts.
# Valid options are ‘none’, ‘startpar’ and ‘makefile’. To enable
# the concurrent boot option, the init.d script order must allow for
# concurrency. This is not the case with the default boot sequence in
# Debian as of 2008-01-20. Before enabling concurrency, one need to
# check the sequence values of all boot scripts, and make sure only
# scripts that can be started in parallel have the same sequence
# number, and that a scripts dependencies have a earlier sequence
# number. See the insserv package for a away to reorder the boot
# automatically to allow this.
CONCURRENCY=none
Il tuo postato sopra è forse più recente del mio?
certo che il problema era quello…non tutte le modifiche che fai su Debian vanno bene per buntu,
e viceversa.
nella guida hai scritto innserv mentre il pacchetto è insserv.
Ciao 😛
corretto, grazie 😉
Anche io ho lo stesso problema di Andrea. Rimane fisso (ad ogni accensione) per almeno 10 secondi su
> Reading early boot file
Inoltre il caricamento cambia quando inserisco
init=/sbin/readahead-collector
ma al riavvio successivo torna come prima e la riga non è presente.
Sbaglio qualcosa?
il parametro init=/sbin/readahead-collector va messo
una sola volta, infatti poi inizia a lavorare. Al riavvio
successivo è giusto che non lo ritrovi, ma comunque sta lavorando.
Controlla con calma se hai eseguito il procedimento esatto.
Ho controllato più volte ed ho anche inserito nuovamente il parametro. Il resto del boot va velocissimo, ma quel file non passa in meno di 10 secondi.
Potrei rifare la procedura? Ma non credo cambi molto.
Utilizzo Debian Testing.
eppure inizialmente qualcosa hai sbagliato, non si deve bloccare,
purga tutto, riavvia e riprova
Quindi ripristino i files come erano in origine, do “sudo apt-get purge preload && sudo apt-get purge readhead-fedora” rebooto e rifaccio tutto?
Credo che il risultato non cambierà perché mi sono attenuto alla guida. Provare non costa nulla però.
prova, quell’errore non deve esserci:
sudo apt-get remove –purge
Disinstallando readahead-fedora debian testing 32 bit va in kernel panic al boot, dice che non trova nel file system il file readahead-collector, quindi vuol dire che l’installazione “sporca” qualche file che poi non ripulisce quando il pacchetto viene disinstallato, solo che io volevo fare delle prove con e senza per capire se nel mio caso apporta effetivamente dei benefici.
ciao e grazie delle info sul blog le ho trovate molto utili.
@enrico tognoni
ti consiglio di provare e4rat, che è più “pulito”
https://www.edmondweblog.com/index.php/velocizzare-il-boot-su-debian-squeeze-con-e4rat-0-2-3/