Meskipun topiknya sudah cukup lama, saya ingin berbagi proyek lain yang muncul dari fitur cgroups Linux kernel.
https://github.com/gsauthof/cgmemtime :
cgmemtime mengukur penggunaan air dari RSS + CACHE proses dan proses turunannya.
Untuk dapat melakukannya, ia menempatkan proses ke dalam grup sendiri.
Misalnya proses A mengalokasikan 10 MiB dan memotong anak B yang mengalokasikan 20 MiB dan yang memotong anak C yang mengalokasikan 30 MiB. Ketiga proses berbagi jendela waktu di mana alokasi mereka menghasilkan penggunaan memori RSS (resident set size) yang sesuai.
Pertanyaannya sekarang adalah: Berapa banyak memori yang sebenarnya digunakan sebagai hasil dari menjalankan A?
Jawab: 60 MiB
cgmemtime adalah alat untuk menjawab pertanyaan seperti itu.
Contoh penggunaan adalah:
$ sudo ./cgmemtime --setup -g <myusergroup> --perm 775
$ ./cgmemtime ./testa x 10 20 30
Parent PID is 27189
Allocating 10 MiBs
New Child: 27193
Allocating 20 MiBs
New Child: 27194
Allocating 30 MiBs
Child user: 0.000 s
Child sys : 0.005 s
Child wall: 6.006 s
Child high-water RSS : 11648 KiB
Recursive and acc. high-water RSS+CACHE : 61840 KiB
$ ./cgmemtime python -c 'print range(100000)[48517]'
48517
Child user: 0.014 s
Child sys : 0.014 s
Child wall: 0.029 s
Child high-water RSS : 9948 KiB
Recursive and acc. high-water RSS+CACHE : 5724 KiB