Per farla breve, pochi giorni fa uno degli sviluppatori del kernel ha caricato una patch (200 righe di codice) che hanno permesso di migliorare notevolmente (quasi 10 volte) le prestazioni del sistema, soprattutto quando si ha a che fare con il multitasking durante l'esecuzione di un compito pesante (come la compilazione del kernel). Linus si è congratulato con questo sviluppatore per il suo grande contributo. Tuttavia, uno sviluppatore Red Hat, Lennar Poettering non ha accettato di implementare questo miglioramento direttamente dal kernel; era meglio per lui apportare le modifiche nello spazio utente (~ / .bashrc). Linus si è arrabbiato e ha rimproverato questo sviluppatore, dicendogli che i risultati parlavano da soli. Lennar, invece di rispondere con parole dure, si è seduto e ha escogitato un'alternativa (che non necessita di patchare il kernel) e che occupa solo 4 righe. Alla fine, hanno zitto Linus ... |
Nota: questo metodo richiede il supporto per gruppi di attività nel kernel Linux (cgroups), ovvero solo gli utenti con kernel superiore a 2.6.36 possono applicarlo.
Come applicare la patch in Fedora
1. - Modifica il file ~ / .bashrc.
gedit ~ / .bashrc
2. - Incolla il codice seguente alla fine del file:
se ["$ PS1"]; poi
mkdir -m 0700 / sys / fs / cgroup / cpu / user / $$
echo $$> / sys / fs / cgroup / cpu / user / $$ / tasks
fi
3. - Esegui i seguenti comandi:
mount -t cgroup cgroup / sys / fs / cgroup / cpu -o cpu
mkdir -m 0777 / sys / fs / cgroup / cpu / utente
Come applicare la patch in Ubuntu
In Ubuntu le cose sono un po 'più complicate ...
1. - Modifica il file rc.local con questo comando:
sudo gedit /etc/rc.local
e incolla prima dove dice "uscita 0", quanto segue:
mkdir -p / dev / cgroup / cpu
mount -t cgroup cgroup / dev / cgroup / cpu -o cpu
mkdir -m 0777 / dev / cgroup / cpu / utente
echo "/ usr / local / sbin / cgroup_clean"> / dev / cgroup / cpu / release_agent
2. - Salva il file e dagli i permessi di esecuzione:
sudo chmod + x /etc/rc.local
3. - Modifica il file ~ / .bashrc:
gedit ~ / .bashrc
4. - Incolla il codice seguente alla fine del file:
se ["$ PS1"];
quindi mkdir -m 0700 / dev / cgroup / cpu / user / $$
echo $$> / dev / cgroup / cpu / user / $$ / tasks
echo "1"> / dev / cgroup / cpu / user / $$ / notify_on_release
fi
5. - Modifica il file cgroup_clean:
sudo gedit / usr / local / sbin / cgroup_clean
6. - Incolla il codice seguente alla fine del file:
# / Bin / sh
se ["$ *"! = "/ utente"]; poi
rmdir / dev / cgroup / cpu / $ *
fi
7. - Salva il file e dagli i permessi di esecuzione:
sudo chmod + x / usr / local / sbin / cgroup_clean
8. - Riavvia il sistema.
Nota: se vedi la cartella / dev / cgroup /, noterai un notevole miglioramento nella gestione del multitasking.
Ho trovato le istruzioni per Arch, sono qui: http://pastebin.com/raw.php?i=sHRYRuAN
Da parte mia ho applicato la patch, molto miglioramento non noto in generale, ma se si nota un grande cambiamento nello scroll delle pagine web, sono davvero fluide per la prima volta !!! =)
Grande! Grazie mille per la condivisione!
Ti ho detto che stiamo cercando persone che usano Arch per blog? Se sei interessato scrivi a usiamo Linux@gmail.com
Un grande abbraccio! Paolo.
Grazie per l'invito, poi continueremo per mail quindi 😉
Per caso non ci saranno istruzioni per Archlinux, giusto? 🙂
Non li ho trovati. Ma qualcosa mi dice che sicuramente è più simile a Fedora. D'altra parte, va tenuto presente che poiché tutti assemblano Arch come vogliono, forse questo influenza la procedura da seguire ...
Qui ho scoperto come applicarli in Archlinux, è abbastanza simile a fedora: http://pastebin.com/raw.php?i=sHRYRuAN
bash: / dev / cgroup / cpu / user / $ / tasks: il file o la directory non esiste
Ho seguito queste istruzioni e continua a dirmi questo errore all'apertura del terminale AMD64 x se ha qualcosa da fare
L'ho già trovato, per favore Pablo correggilo http://www.webupd8.org/2010/11/alternative-to-200-lines-kernel-patch.html
Cosa fare in Ubuntu - invece di quello che metti - è:
sudo gedit / usr / local / sbin / cgroup_clean
e metti questo:
# / Bin / sh
se ["$ *"! = "/ utente"]; poi
rmdir / dev / cgroup / cpu / $ *
fi
Pronto! Corretto! Grazie!
È vero! Grazie per avermi ricordato!
Ho appena aggiunto questa precisazione all'inizio del post.
Un abbraccio! Paolo.
Nello specifico, quali vantaggi otterrò come utente e quali miglioramenti delle prestazioni si vedranno nel mio sistema.
Sta andando tutto molto più velocemente. Tuttavia, le differenze sono realmente "viste" quando si esegue un compito pesante e si desidera svolgere altri compiti allo stesso tempo. Ad esempio, stai eseguendo l'installazione di diversi programmi o stai compilando il kernel o modificando un video pesante e allo stesso tempo vuoi navigare in Internet o guardare un film, ecc.
Fammi sapere se scopri come implementare la patch in Arch. Proverei a eseguire quella che funziona in Fedora.
Abbraccio! Paolo.
Immagino che dipenda da come usi il tuo computer. Se usi a malapena Internet e qualche editor di testo leggero ... non "sentirai" la differenza. D'altra parte, se sei come me e svolgi compiti pesanti (come convertire video, compilare il kernel, ecc.) Mentre navighi in Internet o guardi film, puoi vedere la differenza.
Dopo tutti i passaggi, quando apro il terminale ottengo sempre quanto segue:
mkdir: Impossibile creare la directory "/ dev / cgroup / cpu / user / 1844": il file o la directory non esiste
bash: / dev / cgroup / cpu / user / 1844 / tasks: il file o la directory non esiste
bash: / dev / cgroup / cpu / user / 1844 / notify_on_release: il file o la directory non esiste
domingopv @ pc1: ~ $
Funziona tutto bene anche il terminale, hai fatto qualcosa di sbagliato?
Hmm ... davvero non so cosa possa essere. Tuttavia, ho l'impressione che sia molto probabile che alcuni passaggi non siano stati ben eseguiti, dal 5 in poi soprattutto. Prova a ripeterli o ad assicurarti di averli correttamente. È tutto quello a cui riesco a pensare per ora.
Un grande abbraccio! Paolo.
Reinstallare maverick e reinstallare la patch e ora ottengo quanto segue.
mkdir: Impossibile creare la directory "/ dev / cgroup / cpu / user / 1678": il file o la directory non esiste
bash: / dev / cgroup / cpu / user / 1678 / tasks: il file o la directory non esiste
bash: / dev / cgroup / cpu / user / 1678 / notify_on_release: il file o la directory non esiste
domingopv @ pc1: ~ $
Uyy .. Non so davvero cosa possa essere. Ha funzionato perfettamente per me.
Qualcosa mi dice che la pulizia del cgroup non è fatta bene. Ecco perché ho insistito perché vedessi dal passaggio 5 in poi.
Saluti! Paolo.
Madre mia, impressionante, posso vedere video in flash 1080p su una nvidia 8400 passiva, voglio dire, male male, PERFETTAMENTE, le CPU funzionano tutte, meraviglioso uffff, questo migliora, è molto meglio, ho Ubuntu 10.04 😀 buono, i video sono buoni per me hahaha 😀
Cosa rc.local? Ce ne sono diversi, qual è? Saluti.
Ho appena scritto i comandi elencati al punto 4. Non è necessario copiarli in un file ma eseguire quei comandi.
Saluti! Paolo.
È spiegato male.
Quello che devi fare è modificare il file rc.local con:
sudo gedit /etc/rc.local
Devi incollare all'interno (prima dell'uscita 0):
mkdir -p / dev / cgroup / cpu
mount -t cgroup cgroup / dev / cgroup / cpu -o cpu
mkdir -m 0777 / dev / cgroup / cpu / utente
echo "/ usr / local / sbin / cgroup_clean"> / dev / cgroup / cpu / release_agent
Questo è il problema. Questi passaggi sono spiegati male.
Hai ragione! Dice chiaramente "modifica il file rc.local". Quello che mancava da aggiungere è il comando per fare una cosa del genere (che alcuni potrebbero non sapere). Lo aggiungo adesso.
Grazie per l'avviso! Saluti! Paolo.
Quale sarebbe la procedura in PCLinuxOs?
La verità è che non lo so ...
Se lo scopri, non dimenticare di condividere i dati con gli altri!
Grazie mille!
Saluti! Paolo.
Mi sembra o non hai messo nessun riferimento da dove l'hai preso? Potresti dirmi la fonte?
grazie
Non esiste un'unica fonte. Cercavo come farlo da diverse fonti e dalla mia esperienza personale. In termini generali, posso dirti che le fonti sono i milioni di blog che hanno riprodotto quella notizia. Cerca "patch 200 linux kernel lines" e vedrai di cosa sto parlando. Non ricordo esattamente, ma la parte Ubuntu potrebbe essere stata ottenuta da WebUpd8; non è così per Fedora.
Sono un utente di non molto tempo fa, di Ubuntu 64 bit e quando vedo questo suggerimento comincio a indagare e il kernel corrente che ho è 2.6.32-27 secondo il post, questa patch può essere applicata solo a kernel che sono superiori o uguali a 2.6.36 La mia domanda è se questa modifica funziona solo per le distribuzioni a 32 bit o nella mia distribuzione attuale il kernel può essere aggiornato a 2.6.36?
Grazie per tutte le info sul web, ottimo materiale.
Questa modifica funziona allo stesso modo per 32 e 64 bit.
Saluti! Paolo.
a una domanda, e questo non incasinerebbe alcun aggiornamento successivo?
Se non andasse bene, quale sarebbe la cosa peggiore che potrebbe accadere?
(Si vede che il passaggio da Ubuntu 10.04 a 10.10 provoca il crash di tutto)
La prima cosa che dovrebbe essere chiarita (per evitare l'uso irresponsabile del metodo) è che richiede il supporto per gruppi di attività nel kernel Linux (cgroups), cioè solo gli utenti con kernel superiore a 2.6.36 potrebbero applicare questo metodo di miglioramento.