Sự khác biệt và mối quan hệ giữa VIRT và USED trong sản lượng hàng đầu?


9

Từ trang của top

VIRT  --  Virtual Memory Size (KiB)
           The total amount of virtual memory used by the task.  It includes
           all code, data and shared libraries plus pages that have been
           swapped out and pages that have been mapped but not used.

USED  --  Memory in Use (KiB)
           This field represents the non-swapped physical memory a task has
           used (RES) plus the non-resident portion of its address space
           (SWAP).

Dường như đối với tôi, VIRT và USED có nghĩa giống nhau, nghĩa là cả hai đều là tổng của những gì một quá trình chiếm giữ trong bộ nhớ vật lý và những gì trong trao đổi. Vậy sự khác biệt và quan hệ của họ là gì?

Nhân tiện, theo mặc định, topkhông hiển thị USED. Làm thế nào tôi có thể làm cho nó hiển thị?

Câu trả lời:


16
  • RES là dung lượng RAM hiện đang được sử dụng bởi quy trình. Giá trị này có thể thay đổi vì các trang bộ nhớ có thể được hoán đổi vào hoặc ra. Nó thậm chí có thể là 0 cho một quá trình đã ngủ trong một thời gian dài, ví dụ như một daemon không được yêu cầu.

  • VIRT là kích thước đầy đủ của tất cả bộ nhớ mà quá trình đang sử dụng, cho dù trong RAM hoặc trên đĩa (đối tượng dùng chung, tệp được chia nhỏ, vùng trao đổi) để VIRT luôn lớn hơn hoặc bằng RES. Một quá trình luôn luôn xử lý (tức là phân bổ / truy cập / giải phóng) bộ nhớ ảo. Tùy thuộc vào hệ điều hành để ánh xạ một số hoặc tất cả các trang này vào RAM.

  • USED ít hơn VIRT vì nó không bao gồm bộ nhớ được hỗ trợ bởi thứ gì khác ngoài trao đổi, ví dụ mã và thư viện.


+1 nhưng đố tôi điều này .. các đối tượng dùng chung (và tương tự) không phải nằm trong RAM hoặc trao đổi? Họ có thể chỉ đơn giản là trên đĩa và tham chiếu đến vị trí đĩa?
heemayl

@heemayl Chúng nằm trong RAM hoặc trong tệp ban đầu chứa chúng, không cần sao chép bộ nhớ của chúng trong trao đổi.
jlliagre

Xin lỗi vì đã là một người mới ở đây, nhưng trước khi sử dụng chúng nên được đưa vào RAM, phải không?
heemayl

@heemayl Chỉ một phần của các tệp này thực sự cần thiết (nghĩa là được giải quyết) cần được đưa vào RAM.
jlliagre

1
@heemayl chúng cần phải có RAM khi chúng được sử dụng tích cực (ít nhất là các trang đang sử dụng), nhưng chúng có thể bị đuổi bất cứ lúc nào và được tải từ đĩa sau. Điều này khác với các trang ẩn danh không thể bị xóa khỏi RAM mà không được viết để trao đổi trước.
hobbs

1

RES có nghĩa là bộ nhớ thực được gán hiện tại cho quá trình chạy trong (bộ nhớ vật lý) trong RAM .

VIRT hiển thị bộ nhớ ảo (được gán trên đĩa cứng và / hoặc RAM) cho quy trình (như được giải thích trong trang hướng dẫn).

USED = RES + là một phần của tệp thực thi hiện không nằm trong RAM. pshiển thị VIRTbằng cách sử dụng vszcờ.


Bộ nhớ trong RAM (RES) có thể được hoán đổi trong tương lai.
jlliagre

Phải, sửa câu trả lời!
coffeMug

1
và VIRT không nhất thiết phải được gán trên đĩa cứng, có thể chỉ đơn giản là trong RAM và đó là nó.
jlliagre
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.