Ich möchte den Linux-Kernel zwingen, den Anwendungen mehr Speicher zuzuweisen, nachdem der Cache zu viel Speicher belegt hat (wie man an der Ausgabe von 'free' sehen kann).So bereinigen Sie die vom Linux-Kernel verwendeten Caches
Ich habe
laufensudo sync; sudo sysctl -w vm.drop_caches=3; free
(auf beiden Scheiben dentry/inode-Cache und Cache-Seite frei), und ich sehe, dass nur etwa die Hälfte des verwendeten Cache befreit wurde - der Rest bleibt. Wie kann ich feststellen, was den Rest des Caches belegt und ihn zur Freigabe zwingt?
Der verbleibende Cache ist nur ein Cache, der sofort gelöscht wird, wenn neuer Speicher benötigt wird. Es ist nicht vorteilhaft, das Entfernen dieser Cache-Bereiche zu erzwingen. Anwendungen werden immer erste Bürger für das Gedächtnis sein und müssen nicht mit Cache dafür kämpfen. – ypnos
Ich habe ein Problem mit meinem Server, und ich glaube, dass etwas den Cache bis zu dem Punkt missbraucht, an dem Anwendungen auf ausgelagerte Seiten verwiesen werden und sich wegen mangelndem Arbeitsspeicher abstoßen. Es könnte ein Kernel-Problem sein, das es möglicherweise nicht ist. Das Löschen des Caches ist möglicherweise eine gute Möglichkeit zum Testen. – Guss
Ihre 'sysctrl' muss 'sysctl' sein – raittes