back

Analisi del boot: i miei test

Come descritto nell'articolo "Sistemi di monitoraggio" del numero 1 potremo utilizzare bootchart per analizzare il boot. In questo modo potremo visualizzare quali servizi necessitano più tempo per essere avviati e vedere cosa è possibile ridurre.
Nei test qui sotto riportati è stato utilizzato per monitorare i tempi d'avvio:

  • avvio "normale" (runlevel 2) con i servizi citati nel capitolo "personalizzare un runlevel": 47s
  • avvio con i servizi ridotti (runlevel 3) citati nel capitolo "personalizzare un runlevel": 30s, guadagno del 36%
  • avvio con CONCURRENCY=startpar (stesso tempo con "shell" e modificando /etc/init.d/rc e/o /etc/default/rcS): 45s, guadagno del 4%
  • avvio con CONCURRENCY=startpar e insserv: 41s, guadagno del 13%
  • avvio con CONCURRENCY=startpar, insserv e readahead (runlevel 2): 36s, guadagno del 24%
  • avvio con CONCURRENCY=startpar, insserv e readahead (runlevel 3): 26s, guadagno del 45%
  • avvio con upstart: 41s, guadagno del 13%
  • avvio con upstart e il runlevel 3 sopracitato: 30s, guadagno del 36%
  • avvio con upstart e readahead (runlevel 2): 37s, guadagno del 22%
  • avvio con upstart e readahead (runlevel 3): 27s, guadagno del 43%

Conclusioni

Come qualsiasi operazione sul sistema un back up è sempre la base (mi sembra di averlo già sentito...): quando meno ve l'aspettate potreste trovarvi con un sistema molto deperito e magari neanche avviabile; esistono perciò le live, ma meglio non abusare. Volendo restare minimalisti, servirà almeno una copia dei seguenti files/directories: /etc/inittab, /etc/rcX.d (con X = S, 0, 1, 2, 6), /etc/init.d.
In generale volendo diminuire il tempo d'avvio del sistema potremmo mantenerci a questi indizi:

  • avviare solo i servizi che saranno sicuramente utilizzati (avviare cups per stampare una volta al mese ha poco senso...)
  • parallelizzare più processi possibili
  • caricare dati nella cache

Già solo con questi tre indizi si potrebbe ridurre in modo abbastanza significativo il tempo d'avvio del sistema; nei nostri test, riducendo il boot fino al 45%, quasi dimezzando il tempo d'avvio.

Upstart potrà essere sicuramente in futuro una buona base per raffinare ulteriormente il processo di boot del sistema operativo. In ogni caso, attualmente, premettendo di aver analizzato unicamente la fase d'avvio del sistema, upstart non sembrerebbe dare di più rispetto alla parallelizzazione (concurrency) e all'organizzazione dei processi secondo le dipendenze; anzi, aggiunto alla copia citata readahead, nei nostri test abbiamo ottenuto un tempo d'avvio più veloce di un secondo.

back