Rendiamo Linux più performante


Ultimamente in rete non si parla d’altro, è stata realizzata una patch che permette una buona risposta del sistema anche in condizioni molto critiche.

Non sto qui a spiegarvi tutti i tecnicismi del caso ma immaginate di avere un PC non super nuovo e super fico come il mio 😛 se usate skype e aprite un sito in flash e state compilando un software (bugiardi) mentre rippate un DVD e  tutto questo contemporaneamente se poi, magari, volete giocare a tetris vi tocca aspettare secoli o usare un’altro PC prima di riuscire a riempire la prima riga del gioco.

Uno dei tanti geni dell’informatica con sole 200 righe di codice ha realizzato questa fantastica patch che sarà inserita soltanto nel kernel 2.6.38 oppure se la volete dovrete ricompilare tutto il kernel, ma non non lo vogliamo, siamo un po pigri e certe cose le facciamo fare ai Neo di turno.

Per fortuna un altro super genio dell’informatica ci viene in soccorso e ci da un metodo facile facile che ci semplifica la vita, come descritto in questa guida, con pochi semplici passaggi, ovviamente, mi raccomando, bisogna avere un po di cognizione di causa altrimenti facilmente si possono fare disastri e io non vi voglio sulla coscienza, quindi se non capite bene i passaggi, ovviamente, non potete tornare indietro in caso di problemi.

Bene dopo le raccomandazioni del caso veniamo ai passaggi da compiere:

>>> Modifiche solo per Ubuntu<<<

Aprite il terminale da Applicazioni → Accessori → Terminale e date il comando:

sudo gedit /etc/rc.local

Prima di exit 0 in fondo aggiungete le righe:

mkdir -p /dev/cgroup/cpu
mount -t cgroup cgroup /dev/cgroup/cpu -o cpu
mkdir -m 0777 /dev/cgroup/cpu/user
echo "/usr/local/sbin/cgroup_clean" > /dev/cgroup/cpu/release_agent

Salvate e chiudete.

Rendere eseguibile il file rc.local appena modificato con il comando:

sudo chmod +x /etc/rc.local

Ora aggiornate il file bash.rc della vostra home con:

gedit ~/.bashrc

ed in fondo al file aggiungete, inseritele anche se il file è vuoto, potrebbe capitare nel caso si usasse Linux Mint:

if [ "$PS1" ] ; then
mkdir -m 0700 /dev/cgroup/cpu/user/$$
echo $$ > /dev/cgroup/cpu/user/$$/tasks
echo "1" > /dev/cgroup/cpu/user/$$/notify_on_release
fi

Salvate e chiudete.

Per assicurarsi che i cgroups (è una questione tecnica, tranquilli se non è chiaro) vengono cancellati ogni volta dopo l’ultimo task:

sudo gedit /usr/local/sbin/cgroup_clean

e (il file dovrebbe essere vuoto) aggiungete le righe

#!/bin/sh
rmdir /dev/cgroup/cpu/$*

poi salvate, uscite, e rendetelo eseguibile con

sudo chmod +x /usr/local/sbin/cgroup_clean

Riavviate per applicare le modifiche. Avete finito.

>>> Modifiche per tutte le distribuzioni TRANNE Ubuntu<<<

Aprite il terminale da Applicazioni → Accessori → Terminale e date il comando:

gedit ~/.bashrc

In fondo al file aggiungete le righe:

if [ "$PS1" ] ; then
mkdir -m 0700 /dev/cgroup/cpu/user/$$
echo $$ > /dev/cgroup/cpu/user/$$/tasks
echo "1" > /dev/cgroup/cpu/user/$$/notify_on_release
fi

Salvate ed uscite.

Ora diventate amministratore con il comando
su
e date i comandi:

mount -t cgroup cgroup /sys/fs/cgroup/cpu -o cpu
mkdir -m 0777 /sys/fs/cgroup/cpu/user

Infine riavviate. Avete finito.

Io l’ho testato sul mio PC con Linux Mint 10 ed usando il metodo per Ubuntu e funziona perfettamente.

Annunci

4 pensieri su “Rendiamo Linux più performante

  1. Ale ha detto:

    Ciao,
    ho eseguito il tweak da te suggerito. Con il kernel 2.6.36 però ora mi dice, ogni volta che apro un terminale

    bash: /dev/cgroup/cpu/user/5143/tasksecho: Permission denied

    Il numero dopo user ovviamente cambia sempre

    Hai suggerimenti?

    Grazie e ciao!

    Mi piace

    • Ciao scusa se non ti scritto prima, ma con queste feste è un po difficile stare al PC.
      Se hai usato la versione per Ubuntu mi sono accorto che c’era un piccolo errore di impaginazione, dovuto a WordPress, che, grazie alla tua segnalazione, ho corretto.
      l’errore un questione si trovava nel codice da inserire nel file ~/.bashrc
      Quindi se non hai già risolto, ti consiglio di ri modificare, quel file seguendo le istruzioni sopra e modificando la parte differente. Oppure cancella il codice inserito in precedenza e sostituiscilo con quello nuovo.
      Spero che così si risolva il problema.
      Grazie per la segnalazione, sarà sicuramente utile per gli altri.

      Mi piace

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...