Ada penjelasan rinci yang sangat bagus di sini: https://blogs.kde.org/2005/09/15/measuring-memory-usage
Tetapi pada dasarnya: Anda harus benar-benar menggali dan memahami bagaimana aplikasi diatur.
Jadi misalnya, melihat mysql:
PID PPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6004 16116 composit 20 0 37900 27m 2908 S 0 0.2 0:40.33 mysqld
16115 16085 composit 20 0 37900 27m 2908 S 0 0.2 0:00.37 mysqld
16116 16115 composit 20 0 37900 27m 2908 S 0 0.2 2:07.34 mysqld
16117 16116 composit 20 0 37900 27m 2908 S 0 0.2 0:00.00 mysqld
16118 16116 composit 20 0 37900 27m 2908 S 0 0.2 3:19.79 mysqld
16119 16116 composit 20 0 37900 27m 2908 S 0 0.2 0:00.01 mysqld
16120 16116 composit 20 0 37900 27m 2908 S 0 0.2 5:31.09 mysqld
16121 16116 composit 20 0 37900 27m 2908 S 0 0.2 14:19.53 mysqld
16122 16116 composit 20 0 37900 27m 2908 S 0 0.2 36:13.67 mysqld
16123 16116 composit 20 0 37900 27m 2908 S 0 0.2 30:30.64 mysqld
16124 16116 composit 20 0 37900 27m 2908 S 0 0.2 0:00.15 mysqld
16493 16116 composit 20 0 37900 27m 2908 S 0 0.2 0:00.00 mysqld
Total memori yang digunakan adalah sekitar 25 MB (Ambil RES 27 MB dan kurangi shared (SHR))
Saya memvalidasi ini dengan memeriksa total penggunaan memori (free -m, + / buffer / cache) sebelum dan setelah mengeluarkan "killall mysqld". Setelah membunuh semua proses mysqld, penggunaan memori turun 25 MB menurut "free -m".
Jika Anda melihat bahwa setiap proses memiliki kolom VIRT, RES, dan SHR yang identik, mereka mungkin hanya ulir dari proses yang sama. (Pustaka Linux lama menangani threading dengan menelurkan beberapa proses nyata yang pada dasarnya menempati memori yang sama)
Jika mereka berbeda, Anda mungkin dapat memperkirakannya dengan melakukan SUM (RES - SHR). Tetapi itu hanya bekerja jika proses-proses tersebut pada kenyataannya merupakan proses yang terpisah dan bukan hanya benang dari proses yang sama. Melihat PPID (Induk Proses ID) juga membantu. Jika mereka semua memiliki orang tua yang sama, mereka mungkin hanya utas (Meskipun tidak harus).
Sayangnya tidak ada cara mudah yang sangat baik untuk menjawab ini di Linux. Satu-satunya cara mudah adalah memeriksa "bebas" segera sebelum menghentikan proses dan memeriksanya kembali segera setelah itu. lihat baris "- / + buffer / cache:" dan lihat seberapa banyak penggunaan memori menurun dan itu akan memberi tahu Anda berapa banyak yang digunakan.