In questa guida vedremo come migliorare o meglio ancora velocizzare il boot di Ubuntu e derivate operando sulla gestione dei processi in parallelo in pc con processore dual o quad core.

Di default Ubuntu utilizza Upstart come gestore d’avvio il quale come Systemd (utilizzato in Arch Linux, Fedora e openSUSE) consente di avviare più servizi in parallelo migliorando e sopratutto velocizzando il processo d’avvio del sistema operativo. Negli ultimi anni gli sviluppatori Canonical hanno introdotto diverse migliorie per rendere più veloce ed affidabile il gestore d’avvio in Ubuntu e derivate. E’ possibile velocizzare la nostra distribuzione sfruttando ad esempio il preliking per rendere più veloce l’avvio delle applicazioni, oppure se abbiamo poche risorse possiamo attivare ZRam (che troveremo di default in Lubuntu 13.10 Saucy) oppure possiamo velocizzare il l’avvio con Readahead.
Possiamo inoltre velocizzare o meglio ancora migliorare l’avvio della nostra distribuzione operando sull’esecuzione dei processi di avvio su pc multi-core, ecco come fare.

Di default Ubuntu imposta l’avvio dei processi in modalità single-core per fornire un completo supporto per tutti i pc, volendo possiamo velocizzare l’avvio facendo avviare più processi per ogni core del nostro processore con molta facilità.
Ricordo che la guida funziona solo se abbiamo un processore dual, quad o octa core non conta se AMD o Intel o se la distribuzione è 32 o 64 bit.

Una volta verificato di avere un processore multi-core basta  avviare il terminale e digitare:

sudo nano /etc/init.d/rc

e modifichiamo il parametro CONCURRENCY=none con CONCURRENCY=makefile e salviamo il tutto cliccando su Ctrl+x e poi s.

Fatto questo riavviamo il nostro pc ed ecco che il riavvio sarà più veloce.
Ricordo che questa guida è valida sia per Ubuntu che derivate come Lubuntu, Kubuntu, Kubuntu ecc.
  • LelixSuper

    Funziona veramente? Non è che mi fà impallare il mio Ubuntu? Perchè se è veramente efficente lo faccio subito :3

    • prova
      se fai come da guida non si “impalla” un bel niente

      • LelixSuper

        a me è scirtto così: CUNCURRENCY=makefile
        al posto di makefile metto shell?

        • Matteo Tanca

          Non farlo. L’opzione shell è obsoleta. Poi non riuscirai a riavviare correttamente ed è più veloce solo perchè non carica la metà dei servizi tipo hddtemp per esempio. L’ottimizzazione è già presente di default dal 2010 e l’opzione corretta è makefile. NON SEGUITE QUESTE ISTRUZIONI. http://askubuntu.com/questions/269539/how-to-enable-concurrency-in-grub2

  • Marco

    Mah ci provo pero’ quando all’inizio del file di configurazione leggo questo qualche dubbio di mettere su shell mi viene..

    ” 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.”

  • etc_init_d

    potete precisare meglio quale parametro modificare? uso mint 15, nelle prime righe ho CONCURRENCY=makefile
    poi c’è:
    if [ “none” != “$CONCURRENCY” ] ; then
    test -s /etc/init.d/.depend.boot || CONCURRENCY=”none”
    test -s /etc/init.d/.depend.start || CONCURRENCY=”none”
    test -s /etc/init.d/.depend.stop || CONCURRENCY=”none”
    if test -e /etc/init.d/.legacy-bootordering ; then
    CONCURRENCY=”none”
    fi
    startpar -v > /dev/null 2>&1 || CONCURRENCY=”none”
    fi
    immagino che siano queste le righe da modificare.. in tal caso perchè non precisarlo nell’articolo? 🙂

    • EnricoD

      CONCURRENCY=”none” dopo if test -e /etc/init.d/.legacy-bootordering ; then e sopra fi … guarda lo screenshot nell’ articolo 🙂

      • etc_init_d

        si ho visto.. ma è poco chiaro 😉

        • EnricoD

          infatti ho provato e da problemi… non farlo

          dopo aver fatto modifica, ho riavviato e mi dice che non trova il file .depend.stop

          si riavvia solo dopo aver spento con pulsante spegnimento e al riavvio non mi partono programmi tipo chrome

          • etc_init_d

            ho avuto il tuo stesso problema al riavvio ma poi funziona tutto, il tempo di boot è aumentato di 4 secondi.. e comunque 58s mi sembrano incredibilmente alti per un i7 con 16gb di ram… sarà perchè uso ancora hdd meccanici 🙁

          • EnricoD

            reverta la modifica… nel file c’è scritto che l opzione shell è obsoleta… ho postato un commento poco sopra come fare questa modifica.. 🙂

          • etc_init_d

            beh il mio era già su makefile 😀

          • EnricoD

            allora tutto okkappa 😀

          • Erika

            Ciao Enrico ^^
            sono in ferie adesso, per per quello che sai appena ritorno 🙂

          • EnricoD

            Ciao ^ ^ Ok, aspetto 🙂

          • Erika

            infatti 🙂

            Ciao Enrico ^^

          • EnricoD

            🙂 Ciao Erika. Stavo per fare una richiesta nella sezione richieste e stavo per scrivere…” ma dov’è Erika? Non leggo i suoi preziosi commenti in giro, mi aiutate a fixare? ci sarà qualche dipendenza che mi manca”

            ^ ^

          • Marco

            Minchia, oops… cribbio! Io ho un netbook con processore Atom Dual Core 1.66gz, 1gb di ram con Debian 7 Gnome Shell e, con ottimizzazioni varie, redaead ecc ci mette 46 secondi, compreso il tempo di mettere la password al login, con un i7 e 16 gb di ram non è proprio normale secondo me, anche se non si è maniaci dell’ottimizzazione come me…

          • etc_init_d

            non ho mai ottimizzato nulla.. installata mint 15 cinnamon così com’è e bootchart giusto per vedere i tempi..
            di certo non mi metto a ricompilare kernel 🙂

          • Marco

            Ma non è normale lo stesso, scusami; mi ricordo che Mint/Ubuntu installate normalmente, prima di fare le mie solite ottimizzazioni, sempre sullo stesso netbook ci mettevano al massimo 50 secondi. P.S. Mint è un mattone peggio di Ubuntu… P.P.S Debian ha un’avvio un po più lento in genere, con Ubuntu 12.03 e gnome-shell arrivavo anche a 36 secondi netti…

          • etc_init_d

            mi tengo mint ma vedrò di fare qualcosa per migliorare 😉

          • Stasi

            Installa BUM e/o sysv-rc-conf. Mint all’avvio carica molti servizi che per un uso desktop sono abbastanza inutili. Disabilitandoli si guadagna sensibilmente nei tempi di avvio.

          • kernelio

            “Mint è un mattone peggio di Ubuntu… P.P.S Debian ha un’avvio un po
            più lento in genere, con Ubuntu 12.03 e gnome-shell arrivavo anche a 36
            secondi netti…”

            hahhaa, masei un comico di professione o ti vengono così?! lol.

          • Erika

            come?
            Ubuntu 12.04.3 LTS (Precise Pangolin) che sappia… Ubuntu 12.03 with Gnome-Shell non so cosa sia…

            certo che ottimizzare troppo poi non ti carica al boot alcuni processi che sono diciamo in serie, se non carica uno non carica altri, e poi ci si ritrova senza alcune dipendenze che servono….
            te ne accorgi se si ha il testuale del boot, con OK, altrimenti si ha un boot sì veloce, ma senza processi importanti….

  • EnricoD

    Avevo già fatto questa modifica per migliorare la gestione dei bla bla bla tempo fa e ricordavo che si faceva in un altro modo…
    All’inizio del file citato della guida, infatti, leggo quanto riporto di seguito, che in effetti era quello che sapevo già:
    Cioè che l’opzione shell è obsoleta e che bisogna usare l’opzione makefile per migliorare la gestione dei processi in parallelo…
    ma non serve modificare li sotto, basta modificare il primo concurrency che si trova subito dopo questi commenti e cambiare none i makefile

    # 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

    • xmattjus

      Utilizzare il parametro shell o makefile è la stessa cosa, infatti il primo è solo un “alias” del secondo! 🙂

      • EnricoD

        ah ok… thanks 🙂

  • frank

    fatto concurrency=shell su Ubuntu 10.04 64bit, tutto OK.
    Più rapido il boot e sensibilmente più scattante in generale (anche se già discretamente reattivo phenom 955 X4 + ssd)

  • ziltoid

    Su UbuntuStudio c’è di default Makefile 🙂

    • tomberry

      Anche su X-Light Mind Storm.. 🙂

  • Davide Depau

    Di default su Ubuntu è attivo makefile: shell e un altro parametro sono deprecati e fanno la stessa cosa di makefile, quindi cambiarlo non serve a niente.

  • Guest

    ho inserito Makefile ma mi da un errore e quando provo a tornare su nano con il comando “sudo nano /etc/init.d/rc” il file mi appare vuoto…come faccio a tornare indietro?

    • Guest

      risolto

  • matty

    Su Mint14 c’è di default “concurrency=makefile!

  • carlo coppa

    Ragazzi solo a titolo informativo, nel mio caso la modifica non mi permette più lo spegnimento del pc, quindi ho rimesso l’impostazione di default. Lo scrivo in quanto inizialmente non avevo associato le cose, ma poi visto che il pc non si spegneva più normalmente, ho voluto provare a rimettere l’impostazione di default e Ubuntu ora si spegne correttamente, Per cui se avete lo stesso problema togliete la modifica, anche perché non ho notato miglioramenti di prestazioni. Ciao.

  • Giorgio Dramis

    Possibile che da me era già di default impostato su make a file?

  • alfred

    allora vediamo di capirci qualcosa….
    questo ho nella mia ubuntu 14.04

    CONCURRENCY=makefile
    test -s /etc/init.d/.depend.boot || CONCURRENCY=”none”
    test -s /etc/init.d/.depend.start || CONCURRENCY=”none”
    test -s /etc/init.d/.depend.stop || CONCURRENCY=”none”
    if test -e /etc/init.d/.legacy-bootordering ; then
    CONCURRENCY=”none”
    fi
    if ! test -e /proc/stat; then
    if [ “$(uname)” = “GNU/kFreeBSD” ] ; then
    # startpar requires /proc/stat
    mount -t linprocfs linprocfs /proc
    fi
    fi
    startpar -v > /dev/null 2>&1 || CONCURRENCY=”none”

    è a posto o va sostituito “none” da qualche parte?

    • vidrafeed

      Anche io ho la stessa cosa. Quale va modificato? XD
      Scusa Roberto ma questa guida non è proprio il massimo.

      • EnricoD

        dovresti cercare #CONCURRENCY=makefile
        sotto le note diciamo e lasciarla non commentata

        # 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

        sinceramente non so se questa cosa funziona con la 14.04, magari è stata deprecata ora… boh … fatto sta che in nessuna delle nuove guide viene proposto questo triccketto…

  • cippalippa

    ma per chi ha una cpu 8cta Core o una config. multi-processore (multi-socket) vale cmq. la guida e i relativi settaggi o cambiano

No more articles