Sposób na określenie „rzeczywistego” wykorzystania pamięci procesu, tj. Prywatnego brudnego RSS?

Narzędzia takie jak „ps” i „top” zgłaszają różne rodzaje wykorzystania pamięci, takie jak rozmiar maszyny wirtualnej i rozmiar zestawu rezydentnego. Jednak żadne z nich nie jest „prawdziwym” wykorzystaniem pamięci:

Kod programu jest dzielony między wiele instancji tego samego programu.Kod programu współdzielonej biblioteki jest wspólny dla wszystkich procesów korzystających z tej biblioteki.Niektóre aplikacje odrywają procesy i dzielą się z nimi pamięcią (np. Poprzez segmenty pamięci współdzielonej).System pamięci wirtualnej sprawia, że ​​raport wielkości VM jest prawie bezużyteczny.RSS jest 0, gdy proces jest wymieniany, co czyni go niezbyt użytecznym.Itd itd.

Odkryłem, że prywatne brudne RSS, zgłaszane przez Linuksa, jest najbliższe „prawdziwemu” wykorzystaniu pamięci. Można to uzyskać, sumując wszystkiePrivate_Dirty wartości w/proc/somepid/smaps.

Czy jednak inne systemy operacyjne zapewniają podobną funkcjonalność? Jeśli nie, jakie są alternatywy? W szczególności interesuję się FreeBSD i OS X.

questionAnswers(10)

yourAnswerToTheQuestion