2008-08-04 11 views

Odpowiedz

17

Dokładne definicje vsize, rss, rprvt, rshrd i inne skróty niejasne wyglądzie różnią się od systemu operacyjnego do systemu operacyjnego. Strony manualne dla poleceń top i ps będą miały pewien opis, ale wszystkie takie opisy są znacznie uproszczone (lub są oparte na implementacjach długo wymarłych kernela).
"Wielkość procesu" jako koncepcja jest piekielnie trudna do określenia w ogólnym przypadku. Odpowiedzi w konkretnych przypadkach zależą w dużej mierze od rzeczywistej implementacji zarządzania pamięcią w systemie operacyjnym i rzadko są tak satysfakcjonujące, jak koncepcja "wielkości procesowej", która istnieje w umysłach większości użytkowników (i większości programistów).

Na przykład żadna z tych liczb (ani żadna ich kombinacja) nie może być używana do informowania, ile dokładnie takich procesów można uruchomić jednocześnie w danej ilości wolnej pamięci. Ale tak naprawdę najlepszym wyjściem jest przyjście z tego końca: dlaczego chcesz ten numer i do czego go użyjesz? Biorąc pod uwagę te informacje, myślę, że otrzymasz bardziej przydatne odpowiedzi.

3

Tak, masz rację, zablokować w VSZ.

ps u podaje VSZ i RSS, które są wielkością pamięci wirtualnej i ustawionym rozmiarem użytkownika. RSS określa, ile pamięci fizycznej zostało przydzielone do procesu, a VSZ jest wielkością pamięci wirtualnej procesu. Jeśli masz kilka kopii uruchomionego programu, duża część pamięci w VSZ będzie współdzielona między tymi procesami.

+3

Liczba VSZ jest bezużyteczny, jeśli to, co Cię interesuje to zużycie pamięci. VSZ mierzy, ile pamięci wirtualnej * procesu * zostało oznaczone przez proces jako pamięć, która powinna zostać zmapowana przez system operacyjny, jeśli proces go dotknie. Ale nie ma to nic wspólnego z tym, czy ta pamięć została rzeczywiście dotknięta i użyta. VSZ jest wewnętrznym szczegółem na temat tego, jak proces przypisuje pamięć - jak duży fragment nieużywanej pamięci chwyta jednocześnie. Sprawdź RSS dla liczby stron pamięci, które faktycznie zaczął używać. –

5

W systemie Solaris można uzyskać szczegółowe informacje o wykorzystaniu pamięci procesowej za pomocą komendy pmap. W szczególności, pmap -x <pid> pokazuje, ile pamięci procesu jest współużytkowane i ile jest konkretnie wykorzystywane przez ten proces. Jest to przydatne do opracowania "marginalnego" użycia pamięci procesu - dzięki tej technice można uniknąć podwójnego liczenia udostępnianych bibliotek.

2

I podsumował wielkości zadanej zamieszkania dla wszystkich procesów, takich jak ten (jako root):

ps ax -o rss | awk '{rss += $1;} END { print rss}' 
Powiązane problemy