Jaki jest prawidłowy sposób uzyskania rozmiaru procesu na Solaris, HP-UX
i AIX
? Czy powinniśmy używać top
lub ps -o vsz
lub czegoś innego?Rozmiar procesu w systemie UNIX
Odpowiedz
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.
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.
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.
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}'
- 1. nohup dla procesu potomnego w systemie UNIX
- 2. Planowanie wątków w systemie UNIX
- 3. Zabicie nieistniejącego proces w systemie UNIX
- 4. Znajdź pliki o rozmiarze w systemie Unix
- 5. praca -z w systemie UNIX
- 6. Unix znajdź średni rozmiar pliku
- 7. Jak zmierzyć rozmiar stosu procesu?
- 8. Narzędzia w stylu Unix w systemie Windows?
- 9. Jak znaleźć przyczynę martwego procesu bez pliku dziennika w systemie UNIX?
- 10. Jak uzyskać identyfikator procesu programu w systemie Unix lub Linux przy użyciu Pythona?
- 11. Tworzenie nowego pliku w systemie UNIX
- 12. Porównaj ciąg znaków w systemie Unix
- 13. Najlepszy sposób na stoper w systemie UNIX
- 14. Kiedy działa .Net w systemie UNIX?
- 15. Usuwanie tylko moich plików w systemie Unix
- 16. Pomoc dotycząca deskryptorów plików w systemie Unix
- 17. odwrócić pliku w systemie Unix shell
- 18. sortowanie właścicieli ls-l w systemie Unix
- 19. Jak uzyskać czas GMT w systemie Unix?
- 20. Jak uzyskać dokładny rozmiar pamięci współdzielonej procesu?
- 21. Statystyka procesu pomiarowego w systemie Linux
- 22. Czy to działa na systemie Unix?
- 23. Jak uzyskać rozmiar sterty w systemie Windows Platforma
- 24. Zwiększ rozmiar stosu w systemie Windows (GCC)
- 25. Zmierz rozmiar bibliotek w systemie Linux
- 26. Jak zmienić rozmiar UIView w systemie iOS?
- 27. Jak zmienić rozmiar obrazu w systemie Android?
- 28. Jak uzyskać tylko identyfikator procesu w określonej nazwie procesu w systemie Linux?
- 29. Lista funkcji C/C++ (Analiza kodu w systemie Unix)
- 30. Wyświetlenie zmiennych środowiskowych za pomocą C w systemie UNIX
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ć. –