Cách chính xác để có được kích thước quy trình trên Solaris, HP-UX
và AIX
là gì? Chúng tôi có nên sử dụng top
hoặc ps -o vsz
hoặc cái gì khác không?Kích thước quy trình trên UNIX
Trả lời
Định nghĩa chính xác của vsize
, rss
, rprvt
, rshrd
và các từ viết tắt tối nghĩa khác khác nhau tùy theo hệ điều hành. Các trang hướng dẫn sử dụng cho các lệnh top
và ps
sẽ có một số loại mô tả, nhưng tất cả các mô tả như vậy được đơn giản hóa rất nhiều (hoặc dựa trên việc triển khai hạt nhân đã tuyệt chủng).
"Kích thước quy trình" như một khái niệm rất khó để ghim xuống trong trường hợp chung. Câu trả lời trong các trường hợp cụ thể phụ thuộc rất nhiều vào việc thực hiện quản lý bộ nhớ thực tế trong hệ điều hành và hiếm khi thỏa mãn như khái niệm "kích thước quy trình" gọn gàng tồn tại trong tâm trí của hầu hết người dùng (và hầu hết các nhà phát triển). Ví dụ, không ai trong số những con số này (cũng không có khả năng kết hợp chúng) có thể được sử dụng để cho bạn biết chính xác có bao nhiêu quy trình có thể chạy cùng một lúc trong một lượng bộ nhớ trống nhất định. Nhưng thực sự, đặt cược tốt nhất của bạn là để đi vào nó từ đó kết thúc: tại sao bạn muốn con số này, và những gì bạn sẽ sử dụng nó cho? Với thông tin đó, tôi nghĩ bạn sẽ nhận được nhiều câu trả lời hữu ích hơn.
Có, bạn có quyền khóa tại VSZ.
ps u
sẽ cung cấp cho bạn VSZ và RSS, kích thước bộ nhớ ảo và kích thước bộ thường trú. RSS là bao nhiêu bộ nhớ vật lý đã được cấp phát cho tiến trình, và VSZ là kích thước bộ nhớ ảo của quá trình. Nếu bạn có một số bản sao của một chương trình đang chạy, rất nhiều bộ nhớ trong VSZ sẽ được chia sẻ giữa các quá trình đó.
Trên Solaris, bạn có thể nhận thông tin chi tiết về mức sử dụng bộ nhớ của quá trình với lệnh pmap
. Cụ thể, pmap -x <pid>
cho bạn biết số lượng bộ nhớ của một quá trình được chia sẻ và số tiền được sử dụng cụ thể bởi quy trình đó. Điều này rất hữu ích cho việc làm việc sử dụng bộ nhớ "cận biên" của một quy trình - với kỹ thuật này, bạn có thể tránh các thư viện được chia sẻ hai lần.
tôi tóm gọn kích thước tập hợp lưu trú cho tất cả các quá trình như thế này (như root):
ps ax -o rss | awk '{rss += $1;} END { print rss}'
- 1. Tìm tệp có kích thước trong Unix
- 2. Kích thước quy trình trong XP từ Python
- 3. Cách xác định quy trình "kích thước ảo" (WinXP)?
- 4. Xác định quy trình kích thước ảo bằng delphi
- 5. Thay đổi kích thước trình chỉnh sửa ajax.org ACE dựa trên kích thước của trình duyệt
- 6. Đệ quy nhận kích thước của một thư mục
- 7. Chỉnh sửa kích thước hình ảnh tự động dựa trên kích thước cửa sổ trình duyệt
- 8. Tự động thay đổi kích thước div dựa trên kích thước của cửa sổ trình duyệt
- 9. Kích thước kích thước ngăn xếp được ocupied bởi hàm đệ quy
- 10. Hàng kích thước trên không
- 11. tuần tự thực thi các quy trình nền unix
- 12. Đặt kích thước permgen cho các quy trình JVM con mà Maven sẽ quay ra
- 13. Tổng bộ nhớ được sử dụng bởi quy trình Java và kích thước heap
- 14. Cách nhận kích thước bộ nhớ được chia sẻ chính xác của một quy trình?
- 15. Quy trình Kích thước bộ nhớ - Các bộ đếm khác nhau
- 16. Cách lấy kích thước heap trên cửa sổ Nền tảng
- 17. Kích thước/độ dài biểu thức chính quy tối đa trong trình duyệt web "hiện đại"?
- 18. Có giới hạn kích thước ngăn xếp của quy trình trong linux
- 19. Quy mô kích thước của nội dung CALayer
- 20. Quy mô CCSprite với kích thước chính xác
- 21. Kích thước văn bản quy mô tự động
- 22. Kích thước phần cứng - Quy tắc ngón tay cái
- 23. Kích thước tối đa của vùng gốc trên Android?
- 24. Đặt NSWindow Kích thước lập trình
- 25. Kích thước phông chữ cho lập trình?
- 26. Hoạt ảnh trên quy mô Android theo kích thước được chỉ định
- 27. Thay đổi kích thước IMAGEVIEW trên quy mô hình ảnh android
- 28. JQUERY UI Accordion Thay đổi kích thước trên cửa sổ Thay đổi kích thước?
- 29. UIImageView trong kích thước thay đổi UITableViewCell của tôi trên kích thước
- 30. Kích thước ngăn xếp của quá trình trên linux liên quan đến pthread, fork và exec
Số Ứng dụng iPhone là vô ích nếu những gì bạn quan tâm là tiêu thụ bộ nhớ. VSZ đo lường bao nhiêu không gian bộ nhớ * ảo * của quá trình đã được đánh dấu bởi quá trình như bộ nhớ cần được ánh xạ bởi hệ điều hành nếu quá trình xảy ra để chạm vào nó. Nhưng nó không liên quan gì đến việc liệu bộ nhớ đó có thực sự được xúc động và sử dụng hay không. VSZ là một chi tiết nội bộ về cách một tiến trình phân bổ bộ nhớ - một phần lớn bộ nhớ không sử dụng nó lấy cùng một lúc. Xem RSS cho số lượng trang bộ nhớ mà nó đã thực sự bắt đầu sử dụng. –