Bir işlem tarafından tüketilen bellek nasıl izlenir?


17

Çalışırken ne kadar bellek harcadığını görmek istediğim bir süreç var.

Şimdi bunu yapıyorum:

ps faux | grep casper

Ama bu bana o anın bilgisini veriyor. Komut dosyası ilerledikçe bu değerin değiştiğini görmek güzel olurdu.

Bunu yapabilmemin bir yolu var mý?

Yanıtlar:


15

Yöntem 1

Çalıştırmak:

top

Programın PID'sini (ilk sütun) kontrol edin, ardından çalıştırın:

top -p PID

Yöntem 2

Bunu terminale yapıştırın veya mem_usage.sh olarak kaydedin ve terminalden çalıştırın.

#! /bin/bash
while :
do
    clear
    ps faux | grep casper
    sleep 1s
done

1
% Göstermekten nasıl değiştirebilirsiniz? İlgi dışı :-)
Wilf

Komut dosyasını çalıştırırken bunu anlıyorum: bash: ./memory_usage.sh: bin / bash: kötü yorumlayıcı: Böyle bir dosya veya dizin yok
Hommer Smith 17:13

Bah! Ben düzenledim! Göndermeden önce düzgün bir şekilde kontrol etmiş olmalısınız. İlk satır / bin / bash'dan nerede çalıştırılacağını söylemelidir (bin / bash vardı, bu yüzden bash için bin adlı bir klasörde yerel olarak kontrol ediyordum)
Julian Stirling

1
@ wilf ps sahte | grep casper | awk '{print $ 11} {print $ 6}' Bu size bir satırda program adını, diğerini de kB cinsinden gerçek bellek boyutunu vermelidir.
Julian Stirling

7

Yalnızca işleminizi izlemek için / proc / PID / status veya / proc / PID / statm'yi kontrol edebilirsiniz.

/ Proc / PID / statm hakkında:

Yaptıktan sonra şunu cat /proc/PID/statmgörmelisiniz:

611450 185001 883 18 0 593431 0

Açıklama:

  1. boyut: - toplam program boyutu (611450 X 4096/1024 = 2445800kB = 2388M)
  2. yerleşik: - yerleşik set boyutu (185001 X 4096/1024 = 740004kB = 722M)
  3. paylaşılan: - paylaşılan sayfalar (883 X 4096 = 3532)
  4. trs: - metin (kod) (18 X 4096/1024 = 72kB = VmExe)
  5. drs: - veri / yığın
  6. lrs: - kütüphane (593431 X 4096/1024 = 2373724kB = VmData + VmStk)
  7. dt: - kirli sayfalar

Ayrıca tarih ve cat kullanarak bir döngü yaparak işleminizin bellek etkinliğini günlüğe kaydedebilirsiniz.


4

'top' kullanın

man top

Bu program, kaynak kullanımını diğerlerinin yanı sıra RSS, VSZ, CPU vb.

Alternatif olarak, bellek kullanımının daha ayrıntılı bir dökümü için 'pmap'i deneyin

man pmap

Örnek kullanım:

pmap -x 1234

şerefe

demek ki


1
İle pmap -x PIDinanılmaz ayrıntılı kullanım mı demek istediniz :-)
Wilf

gerçekten - asla yeterli ayrıntı olamaz :)
swisscheese

1
Benimkinde (Ubuntu 16.04.5 LTS) PID ile "pmap -x", PID ve komuttan başka bir şey göstermiyor. -X de aynısını yapıyor.
orrd

2

Sistem Monitörü'nü açın ve Processessekmesine gidin:


1

Bir deneyin:

watch 'ps faux | grep -v grep | grep casper'

--interval <seconds>Parametreyi kullanarak yenileme aralığını da değiştirebilirsiniz .


1
Sonuncuyu grep [c] 'yi asper olarak değiştirirseniz -v grep' e ihtiyacınız yoktur. Bu casper ile eşleşir, ancak kendisi ile eşleşmez.
Wudang
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.