Sử dụng bộ nhớ máy ảo không xuất hiện trong Trình quản lý tác vụ


28

Có điều gì đó về quản lý bộ nhớ Windows và đó là mối quan hệ với Trình quản lý tác vụ mà tôi không hiểu và tôi hy vọng ai đó có thể khai sáng cho tôi.

Nếu tôi đang chạy một máy ảo (không quan trọng nếu đó là Virtual PC 2007, Virtual Server 2005 hoặc VirtualBox vì chúng hoạt động theo cùng một cách) và đưa lên Trình quản lý tác vụ, tôi có thể thấy trên tab quy trình một số mục nhập cho VM nhưng giá trị bộ nhớ khá nhỏ (khoảng 30 MB). Rõ ràng là nó không bao gồm bộ nhớ thực sự bị tiêu thụ bởi chính VM. Không có cột nào liên quan đến Bộ nhớ mà bạn có thể nhìn thấy có vẻ hoạt động khác nhau. Việc sử dụng Bộ nhớ trên tab Hiệu suất có vẻ đúng với tổng mức sử dụng bộ nhớ bao gồm cả VM.

Vì vậy, câu hỏi của tôi là tại sao việc sử dụng bộ nhớ của VM (sẽ là 100 MB) không hiển thị trên tab Processes?

Câu trả lời:


30

VirtualPC, HyperV và các sản phẩm tương tự có thể sử dụng thứ gọi là bộ nhớ bị khóa trình điều khiển, không hiển thị trong Process Explorer, Trình quản lý tác vụ, v.v. RAMMap sẽ hiển thị cho bạn bộ nhớ bị khóa bởi trình điều khiển.


1
Đối với bản ghi RAMMap là Vista hoặc cao hơn.
Tim Abell

1
RAMMap không hiển thị bộ nhớ bị khóa trong một quá trình, nó đã hiển thị toàn bộ bộ nhớ bị khóa
NeDark

Chỉ để chỉ ra cho người khác, ông không nói quá trình khóa bộ nhớ. Anh nói lái xe bị khóa bộ nhớ. Đó là cách bộ nhớ động hoạt động. Nếu bạn không thích nó hoặc nghĩ rằng nó đang gây rối với ứng dụng của bạn, thì bạn chỉ có thể định cấu hình VM cho bộ nhớ tĩnh thay vì động. Tôi đã thấy một số ứng dụng java có vấn đề khi sử dụng bộ nhớ động trong máy ảo, đặt chúng thành tĩnh cố định trục trặc .
John C

Quá trình nào thực sự phân bổ bộ nhớ đó? Tôi đã thử VMMap của SysIternals và khi bạn chọn đúng VBoxHeadless.exequy trình (đó là một chiếc lá trên nhánh cây quy trình, tức là nó không có bất kỳ đứa trẻ nào khác, bạn có thể sử dụng ví dụ Process Explorer để tìm nó), bộ nhớ "bị mất" xuất hiện dưới cả byte riêng và bộ làm việc của quy trình đó (mặc dù Process Explorer đang hiển thị ít hơn nhiều cho cả hai giá trị). Vì vậy, tôi hơi bối rối tại sao chúng hiển thị các giá trị khác nhau nhưng VMMap dường như hiển thị số thực .
Dawid Ferenczy Rogožan

6

Bất kỳ hệ thống ảo hóa được lưu trữ nào như hệ thống bạn đã liệt kê sẽ bao gồm trình điều khiển thiết bị chạy trong nhân của hệ điều hành máy chủ. Điều này là cần thiết vì các chương trình chế độ người dùng không thể đưa ra các hướng dẫn cần thiết để tạo một máy ảo.

Lý do bạn không thấy bộ nhớ trong trình quản lý tác vụ là vì bạn đang xem bộ nhớ cho các chương trình chế độ người dùng được liên kết với các máy ảo chứ không phải trình điều khiển thiết bị chế độ nhân thực sự cấp phát bộ nhớ cho máy ảo.


Quá trình nào thực sự phân bổ bộ nhớ đó? Tôi đã thử VMMap của SysIternals và khi bạn chọn đúng VBoxHeadless.exequy trình (đó là một chiếc lá trên nhánh cây quy trình, tức là nó không có bất kỳ đứa trẻ nào khác, bạn có thể sử dụng ví dụ Process Explorer để tìm nó), bộ nhớ "bị mất" xuất hiện dưới cả byte riêng và bộ làm việc của quy trình đó (mặc dù Process Explorer đang hiển thị ít hơn nhiều cho cả hai giá trị). Vì vậy, tôi hơi bối rối tại sao chúng hiển thị các giá trị khác nhau nhưng VMMap dường như hiển thị số thực .
Dawid Ferenczy Rogožan

5

Để xem dung lượng bộ nhớ mà VM sử dụng, bạn cần đảm bảo rằng bạn có cột Bộ công việc hiển thị trong Trình quản lý tác vụ. Thường chỉ có Bộ riêng là hiển thị.

Để kích hoạt cột này:

1) Bắt đầu quản lý tác vụ

2) Chuyển đến tab Processes

3) Xem> Chọn Cột

4) Đảm bảo rằng "Bộ nhớ - Bộ làm việc" được đánh dấu

Ví dụ: Bộ riêng của VM tôi đang chạy hiện tại là 43mb, trong khi Bộ làm việc là 2,3Gb


1
Số lượng đầy đủ của ứng dụng bộ nhớ sử dụng là gì? Tập làm việc + Tập riêng hay chỉ Tập làm việc?
zWiki

2
Có lẽ nó khác với các phiên bản Windows khác nhau, nhưng trong Windows 7 không phải là thứ tôi đang thấy. Số "Bộ làm việc" lớn hơn số "Bộ làm việc riêng", nhưng không đủ xa để chiếm bộ nhớ của VM. Tôi đã thử tất cả các cột liên quan đến bộ nhớ và không có cột nào trong số chúng làm được. Điều này là với cả Windows Virtual PC và VirtualBox. Phiên bản nào của Windows và máy chủ VM nào bạn đang sử dụng?
Scott Bussinger

Thật không may, không có một con số nào cho biết "quá trình sử dụng bộ nhớ" là bao nhiêu, vì bạn gặp phải các vấn đề phức tạp như bộ nhớ dùng chung, bộ nhớ ánh xạ tệp, bộ nhớ phân trang và một vài thứ khác. Đây là một lời giải thích tốt về một vài khái niệm: stackoverflow.com/questions/1984186/
Kẻ

Tôi không nghĩ Bộ công việc đang nói với bạn bất cứ điều gì hữu ích trong trường hợp này. Trong VM, nó báo cáo rằng nó sử dụng khoảng 6 GB bộ nhớ trong khi các quy trình của VirtualBox không tiêu thụ hơn 100 MB trong Bộ công việc của họ .
Dawid Ferenczy Rogožan
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.