Làm cách nào tôi có thể tìm ra tổng bộ nhớ được phân bổ cho một quy trình cụ thể trong Ubuntu?
Làm cách nào tôi có thể tìm ra tổng bộ nhớ được phân bổ cho một quy trình cụ thể trong Ubuntu?
Câu trả lời:
Thử:
pidof bash | xargs ps -o rss,sz,vsz
Để tìm mức sử dụng bộ nhớ của trình bash
bao hiện tại của bạn (giả sử bạn đang sử dụng bash
). Thay đổi bash
thành bất cứ điều gì bạn đang điều tra. Nếu bạn đang theo một quy trình cụ thể, chỉ cần sử dụng riêng nó:
ps -o rss,sz,vsz <process id>
Từ man
trang:
RSS
: kích thước cài đặt thường trú, bộ nhớ vật lý không hoán đổi mà một tác vụ đã sử dụng (tính bằng kiloBytes).
SZ
: kích thước trong các trang vật lý của hình ảnh cốt lõi của quá trình. Điều này bao gồm văn bản, dữ liệu và không gian ngăn xếp.
VSZ
: kích thước bộ nhớ ảo của quá trình tính bằng KiB (đơn vị 1024 byte).
Các man
trang cho ps
sẽ liệt kê tất cả các đối số có thể vào -o
tùy chọn (có khá một vài để lựa chọn). Thay vì -o rss,sz
bạn có thể sử dụng v
tùy chọn kiểu BSD (không có dấu gạch ngang) hiển thị bố cục bộ nhớ thay thế.
Bạn có thể sử dụng pmap
để hiển thị bản đồ bộ nhớ của một quá trình:
pmap -p pid
Để biết thêm thông tin về nó, hãy xem trang man man pmap
hoặc xem qua pmap (1): báo cáo sơ đồ bộ nhớ của quá trình - Trang man Linux .
Làm thế nào để tìm ra tổng bộ nhớ được phân bổ cho một quy trình cụ thể trong Ubuntu?
Bạn không xác định bộ nhớ được phân bổ cho một quá trình là gì và thực sự đó là một câu hỏi khá phức tạp (về ánh xạ bộ nhớ dùng chung - xem mmap (2) để biết chi tiết; về bộ nhớ chia sẻ POSIX - xem shm_overview (7) để biết thêm ; những gì về một số trang trong bộ đệm trang được sử dụng cho các tệp đã mở; vv ...)
Bạn có thể sử dụng /proc/
hệ thống tập tin (mà BTW được sử dụng bởi ps
, pmap
, top
, htop
vv ....). Đọc Proc (5) để biết thêm. Đặc biệt đối với quá trình pid 1234 bạn có thể sử dụng /proc/1234/status
, /proc/1234/statm
, /proc/1234/maps
vv ... Họ đều là giả file văn bản (giống như ống) mà bạn có thể nhìn thấy bằng cat
(hoặc đọc tuần tự trong một số chương trình). BTW, từ bên trong một chương trình bạn có thể sử dụng/proc/self
(đó là một liên kết giả), ví dụ như đọc tuần tự, /proc/self/status
v.v ...
Xem thêm LinuxAteMyRam .