Wie berechnet top die Speicherzahlen unter Linux?

2795
jarnoan

Ich bin etwas verwirrt darüber, wie sich die Gedächtnisfiguren in der Summe summieren.

Wenn ich es richtig verstanden habe, ist die Menge des "wirklich" verwendeten Speichers total - free - buffer - zwischengespeichert . Im folgenden Beispiel wäre das 14370248k - 75736k - 178892k - 10459552k = 3656068k, was 25% des Gesamtspeichers (3656068/14370248) entspricht.

Wenn ich es richtig verstanden habe, zeigen die Zahlen in RES- und % MEM- Spalten, wie viel physischer Speicher ein Prozess "wirklich" verwendet. Die Summe der RES- Werte von lediglich httpd-Prozessen beträgt 7254 m oder 7428096 k (7254 * 1024), was 52% des Gesamtspeichers (7428096/14370248) entspricht. Die Summe der % MEM- Werte von httpd-Prozessen beträgt 53%.

Wie kommt es, dass der Zusammenfassungsteil nur 25% des Arbeitsspeichers zeigt, während httpd-Prozesse alleine behaupten, über 50% des Arbeitsspeichers zu verwenden? Was fehlt mir hier?

top - 15:37:00 up 117 days, 18:27, 6 users, load average: 4.82, 4.44, 3.60 Tasks: 433 total, 4 running, 429 sleeping, 0 stopped, 0 zombie Cpu(s): 59.6%us, 6.5%sy, 0.0%ni, 33.0%id, 0.1%wa, 0.0%hi, 0.8%si, 0.0%st Mem: 14370248k total, 14294512k used, 75736k free, 178892k buffers Swap: 8388600k total, 116k used, 8388484k free, 10459552k cached  PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3566 mysql 21 0 554m 60m 4576 S 74.6 0.4 11422:52 mysqld 23305 apache 15 0 327m 27m 3792 S 3.2 0.2 0:01.30 httpd 23474 apache 15 0 327m 27m 3800 S 3.2 0.2 0:01.09 httpd ... 
5

1 Antwort auf die Frage

2
Peter Eisentraut

Die httpd-Prozesse teilen sich wahrscheinlich etwas Speicher, da sie voneinander getrennt sind. Aufgrund des Copy-on-Write-Mechanismus beanspruchen alle diesen Speicher als eigenen virtuellen Speicher, obwohl er nur einmal im physischen Speicher vorhanden ist.

Im Allgemeinen enthält die Speicherausgabe unter Linux verschiedene derartige Bogositäten. Ich würde nicht versuchen, zu viel zu verstehen. Es ist nützlich zu sehen, ob sich ein Prozess anders verhält, als er sollte. aber die Zahlen addieren sich nicht unbedingt.