Làm thế nào để theo dõi bộ nhớ tiêu thụ bởi một quá trình?


16

Tôi có một quá trình mà tôi muốn xem nó tiêu thụ bao nhiêu bộ nhớ trong khi nó đang chạy.

Ngay bây giờ tôi làm điều này:

ps faux | grep casper

Nhưng điều đó chỉ cho tôi thông tin về thời điểm đó. Sẽ thật tuyệt khi thấy giá trị đó thay đổi khi kịch bản được tiến hành.

Bất cứ cách nào tôi có thể làm điều này?

Câu trả lời:


15

Phương pháp 1

Chạy:

top

Kiểm tra PID của chương trình (cột đầu tiên), sau đó chạy:

top -p PID

Phương pháp 2

Hoặc dán cái này vào terminal hoặc lưu nó dưới dạng mem_usage.sh và chạy nó từ terminal.

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

1
Làm thế nào bạn có thể thay đổi nó từ hiển thị%? Không quan tâm :-)
Wilf 17/12/13

Tôi nhận được điều này khi chạy tập lệnh: bash: ./memory_usage.sh: bin / bash: trình thông dịch xấu: Không có tệp hoặc thư mục như vậy
Hommer Smith 17/12/13

Bah! Tôi đã chỉnh sửa nó! Nên đã kiểm tra nó đúng cách trước khi đăng. Dòng đầu tiên sẽ cho biết nơi chạy nó từ / bin / bash (Tôi đã có bin / bash để nó kiểm tra cục bộ trong một thư mục có tên bin cho bash)
Julian Stirling

1
@ wilf ps giả | grep casper | awk '{print $ 11} {print $ 6}' Điều đó sẽ cung cấp cho bạn trên một dòng tên chương trình và kích thước bộ nhớ thực tiếp theo tính bằng kB.
Julian Stirling

6

Để chỉ giám sát quá trình của bạn, bạn có thể kiểm tra / Proc / PID / status hoặc / Proc / PID / statm.

Giới thiệu / Proc / PID / statm:

Sau khi làm cat /proc/PID/statmbạn sẽ thấy điều này:

611450 185001 883 18 0 593431 0

Giải trình :

  1. kích thước: - tổng kích thước chương trình (611450 X 4096/1024 = 2445800kB = 2388M)
  2. cư dân: - kích thước bộ cư trú (185001 X 4096/1024 = 740004kB = 722M)
  3. chia sẻ: - các trang được chia sẻ (883 X 4096 = 3532)
  4. trs: - văn bản (mã) (18 X 4096/1024 = 72kB = VmExe)
  5. drs: - dữ liệu / ngăn xếp
  6. lrs: - thư viện (593431 X 4096/1024 = 2373724kB = VmData + VmStk)
  7. dt: - trang bẩn

Ngoài ra, bạn có thể đăng nhập hoạt động bộ nhớ cho quá trình thực hiện vòng lặp bằng cách sử dụng ngày và mèo.


4

bạn có thể sử dụng 'top'

man top

Chương trình này cho phép bạn sắp xếp việc sử dụng tài nguyên theo, trong số những người khác, RSS, VSZ, CPU, v.v. Nó rất hữu ích.

Ngoài ra, để biết chi tiết hơn về việc sử dụng bộ nhớ, hãy thử 'pmap'

man pmap

Ví dụ sử dụng:

pmap -x 1234

chúc mừng

sc.


1
Với pmap -x PID, ý bạn là việc sử dụng cực kỳ chi tiết :-)
Wilf

thực sự - không bao giờ có thể có đủ chi tiết :)
swisscheese 17/12/13

Trên mỏ của tôi (Ubuntu 16.04.5 LTS) "pmap -x" với PID không hiển thị bất cứ thứ gì ngoài lệnh PID và lệnh. -X cũng làm như vậy.
orrd

2

Mở System Monitor và chuyển đến Processestab:


1

Hãy thử:

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

Bạn cũng có thể thay đổi khoảng thời gian làm mới bằng cách sử dụng --interval <seconds>tham số.


1
Bạn không cần -v grep nếu bạn thay đổi cái cuối cùng thành grep [c] asper. Điều đó phù hợp với casper nhưng không phải chính nó.
Võ Đang
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.