Arch Linux non risponde a khugepaged


8

Sono un utente di workstation VMware 10.0.3 pesante e come tale ho 32 GB di RAM sul mio sistema. Il mio unico sistema operativo è Arch Linux, usando Unity per il desktop.

Di solito, quando ho due macchine virtuali in esecuzione con circa 3 GB di RAM assegnate a ciascuna, molto spesso ea intervalli casuali, l'intero sistema non risponde per alcuni secondi.

Eseguendo "top" su un terminale, il colpevole sembra essere il comando khugepaged, che viene eseguito mentre il sistema non risponde al 100% della CPU e quindi scompare.

C'è un modo per evitarlo? Ho cercato su Google khugepaged, ma mi sembra di trovare solo post antichi del 2011 o domande senza risposta.

Queste sono le mie specifiche di sistema complete:

  • CPU: Intel i5 4570@3.2GHz
  • Corsair Vengeance RAM da 32 GB a 2400 MHz
  • M / B ASrock Z87 Pro 4

Come sono le tue impostazioni di swap? Questo tipo di blocco è spesso correlato all'utilizzo dello scambio. Puoi controllare lo scambio la prossima volta che si blocca? Si blocca solo quando si scambia attivamente?
terdon

Perché dovrebbe scambiare con 32 GB di RAM? Non va da nessuna parte a esaurire la RAM fisica. Ho una piccola partizione di swap da 1 GB, poiché è su un SSD e non volevo sprecare beni immobili. Non ho cambiato swapiness, suppongo sia al valore predefinito.
Angelos Kyritsis,

Bene, arch ha l'impostazione predefinita su 60, il che significa che inizierà a scambiare molto prima che la RAM sia esaurita. Non sto dicendo che è di swap di sicuro ma sembra probabile. Prova a impostare un valore inferiore.
terdon

Ok, l'ho impostato su 5. Ti farò sapere se ha fatto la differenza.
Angelos Kyritsis,

Risposte:


10

Ho un problema simile su Ubuntu. La soluzione alternativa che utilizzo è:

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

La fonte della soluzione alternativa è in un bug report di Fedora "khugepaged che mangia CPU al 100%" . Il bug non è mai stato corretto.

Questo è meno drastico che disabilita l'intero transparent_hugepagesupporto. La spiegazione dettagliata di ciò che fa il comando può essere trovata nella documentazione del supporto trasparente hugepage .


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, posso chiederti qual è la differenza rispetto a ciò che propone l'autore della risposta: perché si dovrebbe usare | sudo teeal posto di >?
Joma,

1
@Joma the sudo echo $value > outputnon funziona in Ubuntu, devi usare il teetrucco o farlo dalla sudo -sshell.
Treviño,

Seriamente, ti amo per questo, @ pawel-jasinski - la prima volta in 5 anni che posso effettivamente lavorare con VMware senza che congeda regolarmente il sistema operativo host e guest.
Simon A. Eugster,

1
@Joma Il primo comando deve essere eseguito da una shell di root. Con sudo echo X > Y, echo Xviene eseguito solo come root ma > Y(output in avanti in un file) non lo è.
Simon A. Eugster,

1

khugepaged potrebbe essere il problema, provare quanto segue:

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

questo mi ha aiutato a risolvere questo problema su Arch Linux recente ...


4
Ciao e benvenuto nel sito! Prevediamo che le risposte saranno un po 'più dettagliate qui. Potresti forse modificare la tua risposta e spiegare cosa fa il comando che suggerisci e come sarebbe d'aiuto?
terdon

1
@ArchUser anche se non sei sicuro che questa sia la soluzione, inserisci un commento.
vfbsilva,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.