Apparemment, il existe une alternative comparable à la ligne correctif du noya qui ne nécessite aucune mise à niveau du noyau.
Il est présenté ici et discuté ici .
Cependant, je ne suis pas sûr que la solution de webupd8 (sous la section "Utilisez-la dans Ubuntu") sur Ubuntu fonctionne réellement ou non. En particulier, un commentateur de ./ dit qu'il reçoit un message d'erreur. Quelqu'un pourrait-il publier la méthode "correcte" qui fonctionne réellement?
D'après les commentaires que j'ai lus jusqu'à présent, ce qui suit semble fonctionner.
(1) Dans /etc/rc.local
, ajoutez les lignes suivantes à exit 0
ci-dessus:
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
(2) Créez un fichier nommé /usr/local/sbin/cgroup_clean
avec le contenu suivant:
#!/bin/sh
rmdir /dev/cgroup/cpu/$1
(3) Dans votre ~/.bashrc
, ajoutez:
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
(4) (Pour s’assurer que le bit d’exécution est activé), exécutez
Sudo chmod +x /usr/local/sbin/cgroup_clean /etc/rc.local
(5) redémarrage.
La réponse ci-dessus devrait en effet corriger le message d'erreur du terminal. Gödel, je ne suis pas sûr d'avoir compris votre argument. Je vais essayer d'expliquer le changement:
Étant donné que la valeur par défaut de notify_on_release à la création d’autres groupes est la valeur actuelle du paramètre notify_on_release de leurs parents, définir la valeur de/dev/cgroup/cpu/user/notify_on_release sur 1 permet de s’assurer que chaque groupe c-enfant est activé avec notify_on_release. release_agent serait exécuté. Malheureusement, lorsque le dernier groupe de contrôle enfant de "utilisateur" a été supprimé (par l'agent de mise à jour), ce dossier était également supprimé, ce qui a généré des messages d'erreur. Une solution de contournement simple consiste à activer notify_on_release pour chaque groupe de contrôle individuellement lors de la création, en maintenant le paramètre parents désactivé.
J'espère que c'était facile à suivre!
Edit: J'aurais posté cela comme un commentaire sur la réponse, même s'il semble que je n'ai pas assez de réputation pour le faire (pas encore).
J'ai appliqué ce correctif à l'aide du script automatisé sur le Web UPD8 à un Asus eee 1000H. J'ai constaté une augmentation considérable des performances de Google chrome avec les applications Flash en cours d'exécution. Les vidéos étaient plus fluides et moins caduques. Gnome UI est également plus vif et Windows redessiné plus rapidement. Très cool. texte du lien
Mise à jour des instructions de Ricardo Ferreira
Commencez par éditer votre fichier rc.local en exécutant Sudo -H gedit /etc/rc.local
et ajoutez les lignes suivantes au-dessus de exit 0
:
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
Enregistrez et quittez gedit. Maintenant, rendez-le exécutable:
Sudo chmod +x /etc/rc.local
Ceci fait, éditez le fichier .bashrc présent dans votre répertoire personnel (gedit ~/.bashrc) et, à la fin de ce fichier, ajoutez:
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
Une dernière chose. Pour vous assurer que les groupes de contrôle sont supprimés à chaque départ de la dernière tâche, exécutez:
Sudo -H gedit /usr/local/sbin/cgroup_clean
Et copier-coller ceci:
#!/bin/sh
rmdir /dev/cgroup/cpu/$*
Encore une fois, sauvegardez le fichier, quittez gedit et rendez-le exécutable:
Sudo chmod +x /usr/local/sbin/cgroup_clean
Terminé! Redémarrez votre ordinateur pour appliquer les modifications.