Làm thế nào để tìm ra bao nhiêu bộ nhớ một chương trình


8

Tôi sử dụng htop để xem các quy trình của mình, nhưng hầu hết các dịch vụ đã chạy là đa luồng, vì vậy chúng được hiển thị trên một số dòng với% sử dụng bộ nhớ mà trong một số trường hợp là giống nhau cho tất cả, đôi khi nó khác nhau giữa chúng.

Nói trong trường hợp của Firefox, nó có thể liệt kê 15 quy trình, mỗi bộ phận chiếm 13% bộ nhớ.

Tôi có thể biết nhiều bộ nhớ hoc là Firefox, MySQL, một số tập lệnh fcgi hoặc bất cứ thứ gì đang tiêu thụ không? kể từ khi đầu ra htop có vẻ sai lệch.

Câu trả lời:


6

Hầu hết các triển khai hàng đầu đều có cách bật hoặc tắt hiển thị các luồng.

  • htop: trong các tùy chọn Cài đặt / Hiển thị trên menu Menu, Chế độ ẩn của người dùng chủ đề.
  • Linux top: nhấn Hđể chuyển đổi hiển thị các chủ đề (nhưng chúng bị tắt theo mặc định).
  • OpenBSD top: nhấn Tđể chuyển đổi hiển thị các chủ đề (nhưng chúng bị tắt theo mặc định).

Lưu ý rằng ánh xạ bộ nhớ và do đó chiếm dụng bộ nhớ, là một thuộc tính của một quy trình, vì vậy bạn sẽ luôn thấy các số giống nhau cho mỗi luồng trong một quy trình. Nếu bạn thấy các số khác nhau, điều đó có nghĩa là có nhiều quy trình.

Không có cách nào dễ dàng để tìm ra tổng mức tiêu thụ bộ nhớ của một tập hợp các quy trình vì khái niệm này không được xác định rõ. Một số bộ nhớ có thể được chia sẻ; điều này xảy ra mọi lúc với các thư viện dùng chung và ngoài ra các quy trình liên quan (như nhiều phiên bản của một máy chủ) có nhiều khả năng sử dụng bộ nhớ dùng chung để trao đổi dữ liệu. Nếu bạn chỉ cần thêm số liệu, bạn sẽ thường nhận được một số lớn hơn nhiều so với bộ nhớ thực tế được sử dụng.


1
Tôi đã không nhận ra rằng khái niệm bộ nhớ của quá trình không được xác định rõ ràng, tôi nghĩ đó là điều làm cho tất cả có ý nghĩa hơn. Cảm ơn
Jjdelc

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.