Burada çok iyi bir ayrıntılı açıklama var: https://blogs.kde.org/2005/09/15/measuring-memory-usage
Ama aslında: Uygulamanın nasıl kurulduğunu gerçekten araştırıp anlamanız gerekiyor.
Yani, örneğin, mysql bakarak:
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
Kullanılan toplam bellek yaklaşık 25 MB'dir (27 MB RES'i alın ve paylaşılan (SHR) çıkarın)
Bir "killall mysqld" yayınlamadan önce ve sonra toplam bellek kullanımını (free -m, + / buffers / cache) kontrol ederek bunu doğruladım. Tüm mysqld işlemlerini öldürdükten sonra "free -m" ye göre bellek kullanımı 25 MB düştü.
Her işlemin aynı VIRT, RES ve SHR sütunlarına sahip olduğunu görürseniz, bunlar muhtemelen aynı işlemin iş parçacıklarıdır. (Eski Linux kütüphaneleri, aslında aynı hafızayı işgal eden birden fazla gerçek süreç oluşturarak iş parçacığını işledi)
Eğer farklılarsa, (RES - SHR) toplamını kullanarak bunu tahmin edebilirsiniz. Ancak bu sadece süreçler aslında aynı sürecin konuları değil, ayrı süreçler ise işe yarar. PPID'ye (Ebeveyn İşlem Kimliği) bakmak da yardımcı olur. Eğer hepsinin aynı ebeveyni varsa, muhtemelen sadece ipliklerdir (Her ne kadar zorunlu olmasa da).
Ne yazık ki Linux'ta buna cevap vermenin iyi ve kolay bir yolu yok. Tek kolay yol, işlemi sonlandırmadan hemen önce "ücretsiz" kontrol etmek ve hemen sonra tekrar kontrol etmektir. "- / + buffers / cache:" satırına bakın ve bellek kullanımının ne kadar azaldığını görün ve bu size ne kadar kullandığını gösterir.