Arch Linux ne répond plus de khugepaged

8

Je suis un gros utilisateur de VMware Workstation 10.0.3, et en tant que tel, j'ai 32 Go de RAM sur mon système. Mon seul système d'exploitation est Arch Linux, utilisant Unity pour le bureau.

Habituellement, lorsque j'ai deux machines virtuelles fonctionnant avec environ 3 Go de RAM, chacune très souvent et à des intervalles aléatoires, le système entier ne répond plus pendant quelques secondes.

En exécutant "top" sur un terminal, le coupable semble être la commande khugepaged, qui s'exécute alors que le système ne répond plus à 100% CPU puis disparaît.

y-a-t-il un moyen d'éviter ça? J'ai googlé sur khugepaged, mais je ne trouve que des messages anciens de 2011 ou des questions sans réponse.

Voici mes spécifications système complètes:

  • Processeur: Intel i5 4570@3,2 GHz
  • 32 Go de mémoire vive Corsair Vengeance à 2400 MHz
  • M / B ASrock Z87 Pro 4
Angelos Kyritsis
la source
Quels sont vos paramètres de swap? Ce type de blocage est souvent lié à l'utilisation du swap. Pouvez-vous vérifier l'échange la prochaine fois qu'il se bloque? Ne se bloque-t-il que lors d'un échange actif?
terdon
Pourquoi devrait-il échanger avec 32 Go de RAM? Cela ne sert à rien d'épuiser la RAM physique. J'ai une petite partition d'échange de 1 Go - car elle est sur un SSD et je ne voulais pas gaspiller de biens immobiliers. Je n'ai pas changé de swappiness, je suppose que c'est à la valeur par défaut.
Angelos Kyritsis
Eh bien, arch a la valeur par défaut définie sur 60, ce qui signifie qu'il commencera à échanger bien avant que la RAM ne soit épuisée. Je ne dis pas que c'est swap à coup sûr, mais cela semble probable. Essayez de définir une valeur inférieure.
terdon
Ok, je l'ai mis à 5. Je vous ferai savoir si cela a fait une différence.
Angelos Kyritsis

Réponses:

10

J'ai un problème similaire sur Ubuntu. La solution de contournement que j'utilise est:

echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo 0 > /sys/kernel/mm/transparent_hugepage/khugepaged/defrag

La source de la solution de contournement se trouve dans un rapport de bogue de Fedora «khugepaged eating 100% CPU» . Le bug n'a jamais été corrigé.

C'est moins drastique que de désactiver la transparent_hugepageprise en charge complète . L'explication détaillée de ce que fait la commande se trouve dans la documentation de la prise en charge transparente d'énormes pages .

Pawel Jasinski
la source
echo never | sudo tee /sys/kernel/mm/transparent_hugepage/defrag; echo 0 | sudo tee /sys/kernel/mm/transparent_hugepage/khugepaged/defrag
Treviño
@ Treviño, puis-je demander quelle est la différence par rapport à ce que propose l'auteur de la réponse: pourquoi utiliser | sudo teeà la place >?
Joma
1
@Joma sudo echo $value > outputne fonctionne pas sous Ubuntu, vous devez utiliser l' teeastuce ou le faire à partir du sudo -sshell.
Treviño
Sérieusement, je vous aime pour cela, @ pawel-jasinski - la première fois en 5 ans que je peux réellement travailler avec VMware sans qu'il gèle régulièrement à la fois l'hôte et l'OS invité.
Simon A. Eugster
1
@Joma La première commande doit être exécutée à partir d'un shell racine. Avec sudo echo X > Y, seul echo Xest exécuté en tant que root mais > Y(la sortie directe dans un fichier) ne l'est pas.
Simon A. Eugster
1

khugepaged pourrait être le problème, essayez ce qui suit:

echo never > /sys/kernel/mm/transparent_hugepage/enabled

cela m'a aidé à résoudre ce problème sur Linux arch récent ...

ArchUser
la source
4
Salut et bienvenue sur le site! Nous nous attendons à ce que les réponses soient un peu plus détaillées ici. Pourriez-vous peut-être modifier votre réponse et expliquer en quoi consiste la commande que vous proposez et en quoi elle pourrait aider?
terdon
1
@ArchUser également si vous n'êtes pas sûr que ce soit la solution, veuillez poster un commentaire.
vfbsilva