İşlem başına / iş parçacığı bellek tüketimini (yığın, yığın, veri, koda bölünür) nasıl izleyebilirim?


11

İçeri girip kendi kodumu yazmadan önce, QNX'lereshowmem benzer bir çıktı alabilen GNU / Linux yazılımı olup olmadığını öğrenmek istiyorum .

Çalışan her işlemin iş parçacığı için, bellek tüketiminin aşağıdaki kategorilere ayrıldığını görmek istiyorum:

 Process listing (Total, Code, Data, Heap, Stack, Other)
 319488  1024000      24587     167936      24576          0        4103 devc-con-hid (thread 2)
    0          0          0          0       4096          0        4103 devc-con-hid (thread 2)
    0          0          0          0      20480          0        4103 devc-con-hid (thread 1)
    0     102400       8192          0          0          0        4103 devc-con-hid (proc/boot/devc-con-hid)
    0          0      16384          0          0          0        4103 devc-con-hid (proc/boot/libc.so.3)
    0          0          0          0          0  (   36864)       4103 devc-con-hid (/dev/mem)

Bunu mümkün kılacak bir şey var mı?


Görünüşe göre bu bilgilerin çoğu/proc/$PID/smaps
Bratchley

Bu doğru, ancak çalıştırabileceğim ve otomatik olarak bellek bilgilerini çıktılayabileceğim bir araç olmasını umuyordum.
Alex Dima

Eminim orada özel ihtiyaçları olan biri için bellek profiliers vardır. Çoğu kişi bu proc dosyasının içeriğini düzenli aralıklarla kaydedebilir. FWIW , valgrind'in bileşenlerinden birinin oldukça iyi bir profilciye sahip gibi görünüyor . Hiç kullanmadım ama belki bu sizin girmeniz için bir yön.
Bratchley

Yanıtlar:


6

Bazı bilgileri kullanarak görebilirsiniz pmap -x PID- her kütüphane / modül / açık dosya / işlem yığını için kbyte, rss ve kirli belleğe ayrılmıştır:

undefine @ uml: ~ $ pmap -x 13206
13206: uyku 60
Adres Kbytes RSS Kirli Mod Eşleme
0000000000400000 24 20 0 rx-- uyku
0000000000606000 4 4 4 r ---- uyku
0000000000607000 4 4 4 rw - uyku
000000000063b000 132 8 8 rw --- [anon]
00007f6a9847e000 4308 44 0 r ---- yerel ayar arşivi
00007f6a988b3000 1772376 0 rx - libc-2.19.so
00007f6a98a6e000 2048 0 0 ----- libc-2.19.so
00007f6a98c6e000 16 16 16 r ---- libc-2.19.so
00007f6a98c72000 8 8 8 rw - libc-2.19.so
00007f6a98c74000 20 12 12 rw - [anon]
00007f6a98c79000140116 0 rx - ld-2.19.so
00007f6a98e71000 12 12 12 rw - [anon]
00007f6a98e99000 8 8 8 rw --- [anon]
00007f6a98e9b000 4 4 4 r ---- ld-2.19.so
00007f6a98e9c000 4 4 4 rw - ld-2.19.so
00007f6a98e9d000 4 4 4 rw --- [anon]
00007fff09fd0000 132 12 12 rw - [yığın]
00007fff09ffe000 8 4 0 rx-- [anon]
ffffffffff600000 4 0 0 rx-- [anon]
---------------- ------- ------- ------- 
toplam kB 8652 656 96
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.