Welcher Speicher wird nicht von Prozessen verwendet und von "echo 3> / proc / sys / vm / drop_caches" freigegeben?

7

Ohne geöffnete Programme belegt mein Computer etwa 512 MB Speicher. Gestern hatte ich noch nichts offen, aber 2 GB Mem verwenden (used - cache = 2153):

             total       used       free     shared    buffers     cached
Mem:          3261       2875        386         30        199        523
-/+ buffers/cache:       2153       1108
Swap:         8187          0       8187

Top zeigten keine Prozesse, die dies aufgreifen:

top - 23:10:38 up 1 day, 14:35,  3 users,  load average: 0,31, 0,94, 1,29
Tasks: 172 total,   3 running, 169 sleeping,   0 stopped,   0 zombie
%Cpu(s):  6,5 us,  4,2 sy,  0,0 ni, 89,1 id,  0,1 wa,  0,0 hi,  0,1 si,  0,0 st
KiB Mem:   3340164 total,  2937728 used,   402436 free,   201484 buffers
KiB Swap:  8384444 total,      180 used,  8384264 free.   531636 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 2520 halfgaar  20   0 3869744 173620  38568 S   1,6  5,2  52:20.03 plasma-desktop
 1535 root      20   0  246420 108512  40420 S   2,0  3,2  22:36.65 Xorg
 2665 halfgaar  20   0 1354660  50624  15116 R   0,0  1,5   0:10.08 krunner
 2513 halfgaar  20   0 2966468  48564  19280 S   0,0  1,5   0:34.62 kwin
 2306 halfgaar  20   0 1329360  41448  12488 S   0,0  1,2   0:09.80 kded4
 2675 halfgaar  20   0  796712  37360  13804 S   0,0  1,1   0:04.23 kmix
 2619 halfgaar  20   0  649136  34160  14204 S   0,0  1,0   0:00.95 akonadi_mailfil
 2629 halfgaar  20   0  621348  33860  13876 S   0,0  1,0   0:00.88 akonadi_sendlat
 2562 halfgaar  20   0 1242180  33212   2504 S   0,2  1,0   3:20.05 mysqld
 2611 halfgaar  20   0  649132  33048  14140 S   0,0  1,0   0:01.29 akonadi_archive
18552 halfgaar  20   0  508376  32948  24108 S   2,6  1,0   0:02.23 konsole
 2645 halfgaar  20   0  506340  32204   8796 S   0,0  1,0   0:05.13 mintUpdate
 2626 halfgaar  20   0  552648  31768  14152 S   0,0  1,0   0:00.93 akonadi_notes_a
 2430 halfgaar  20   0  556864  30052   9484 S   0,0  0,9   0:10.57 ksmserver
 2546 halfgaar  20   0  866520  28528  12584 S   0,0  0,9   0:04.34 knotify4
 2302 halfgaar  20   0  382404  26896  10112 S   0,0  0,8   0:01.17 kdeinit4
 2304 halfgaar  20   0  387792  23516   4892 S   0,0  0,7   0:00.55 klauncher
 2648 halfgaar  20   0  541576  22824  13864 S   0,0  0,7   0:01.36 polkit-kde-auth
 2623 halfgaar  20   0  390412  19216  13712 S   0,0  0,6   0:00.79 akonadi_newmail
 2615 halfgaar  20   0  340388  18200  13276 S   0,0  0,5   0:00.75 akonadi_maildis
 2621 halfgaar  20   0  303972  17884  13272 S   0,0  0,5   0:00.70 akonadi_migrati
 2612 halfgaar  20   0  306052  17856  13188 S   0,0  0,5   0:00.71 akonadi_followu
 2606 halfgaar  20   0  327700  16772  12600 S   0,0  0,5   0:00.53 akonadi_agent_l
 2613 halfgaar  20   0  321704  16740  12576 S   0,0  0,5   0:00.52 akonadi_agent_l
 2614 halfgaar  20   0  327680  16560  12420 S   0,0  0,5   0:00.54 akonadi_agent_l
 2325 halfgaar  20   0  735344  14928  10116 S   0,0  0,4   0:04.63 kactivitymanage
 2313 halfgaar  20   0  282096  14832   9488 S   0,0  0,4   0:00.74 kglobalaccel
 2554 halfgaar  20   0  276912  14472  10148 S   0,0  0,4   0:02.04 kuiserver

Nur um es zu versuchen, habe ich Caches gelöscht:

echo 3 > /proc/sys/vm/drop_caches

Und die Speichernutzung sank:

             total       used       free     shared    buffers     cached
Mem:          3261        850       2411         30          1         79
-/+ buffers/cache:        770       2491
Swap:         8187          0       8187

Wie kann das sein? Warum wird der Cache so gespeichert, dass der Kernel denkt, er sei kein Cache? Kann es der Cache meines ecryptfs-verschlüsselten Home-Verzeichnisses sein? Ich habe gerade eine Sicherungskopie davon erstellt, daher wurden viele Dateien und Metadaten darauf zwischengespeichert.

  • Linux Mint 17.1
  • Kernel 3.13.0-37
Halfgaar
quelle
slabtopHaben Sie eine ausgeführt, als es passierte, um zu sehen, ob mit etwas, das verschlüsselt aussah, viel Speicher verbunden war?
Bratchley
Hintergrund: Wie viel RAM verwendet der Kernel?
Gilles 'SO - hör auf böse zu sein'
Ich muss es zuerst reproduzieren und dann auf Slabtop schauen. Wird fortgesetzt.
Halfgaar

Antworten:

3

Wenn Sie eine 1 in drop_caches schreiben, wird nur der (Daten-) Cache gelöscht. Die 3 löscht auch den Dentry-Cache oder den Cache mit den Namen der Dateien auf der Festplatte. Wenn Sie kürzlich mit Verzeichnissen gearbeitet hätten, die viele kleine Dateien enthalten, wäre dies der Fall.

psusi
quelle
Würde es? Es würde nicht als Speichernutzung gemeldet. Es würde in der +/- Swap-Spalte abgezogen, oder?
Halfgaar
@Halfgaar, nein, die +/- Cache-Zeile zählt nur den Hauptdaten-Cache. Der Dentry-Cache ist Teil der Kernel-Platte. Es ist normalerweise viel kleiner als der Hauptdatencache, kann jedoch sehr bedeutsam sein, wenn Sie mit vielen (wie in Hunderttausenden oder Millionen) kleinen Dateien arbeiten.
Psusi
Ihre Antwort und ich erinnere mich an etwas ist die Antwort. Ich habe damit experimentiert vfs_cache_pressure. Ich hatte es auf eins gesetzt, um eine riesige Platte für Inodes und Dentries zu erstellen, aber das hatte ich vergessen :)
Halfgaar