man getrusage 2
mówi
ru_maxrss (since Linux 2.6.32)
This is the maximum resident set size used (in kilobytes). For RUSAGE_CHILDREN, this is the resident set size of the largest
child, not the maximum resident set size of the process tree.
Co dokładnie oznacza ta liczba?
ru_maxrss
w bajtach na komputerach Mac / BSD.ru_maxss
jest w bajtach na komputerach Mac OS X (Darwin), ale w kilobajtach na komputerach BSD i Linux. Zobacz stackoverflow.com/q/40773924/781723 i stackoverflow.com/q/12050913/781723 .Odpowiedzi:
Rozmiar zestawu rezydentnego procesu to ilość pamięci, która do niego należy i jest obecnie obecna (rezydentna) w pamięci RAM (prawdziwa pamięć RAM, nie zamieniona lub w inny sposób nie rezydentna).
Na przykład, jeśli proces przydzieli fragment pamięci (powiedzmy 100 Mb) i użyje go aktywnie (odczyta / zapisze), jego rozmiar rezydentny wyniesie około 100 Mb (plus narzut, segment kodu itp.). Jeśli po zakończeniu procesu pamięć przestanie na chwilę korzystać z tej pamięci (ale jej nie zwolni), system operacyjny może zdecydować o zamianie fragmentów tej pamięci na zamianę, aby zrobić miejsce dla innych procesów (lub pamięci podręcznej). Rozmiar zestawu rezydentnego zmniejszyłby się następnie o kwotę, którą wymieniło jądro. Jeśli proces się obudzi i zacznie ponownie wykorzystywać tę pamięć, jądro ponownie załaduje dane z wymiany, a rozmiar zestawu rezydentnego ponownie wzrośnie.
ru_maxrss
Polestruct rusage
jest „high water mark” dla rezydenta wielkości zadanej. Wskazuje szczytowe użycie pamięci RAM dla tego procesu (podczas używaniaRUSAGE_SELF
).Można ograniczyć wielkość zestawu rezydentnego procesu, aby uniknąć sytuacji, w której jedna aplikacja „zje” całą pamięć RAM w systemie i nie będzie zmuszać innych aplikacji do zamiany (lub niepowodzenia całkowicie w przypadku braku pamięci).
źródło