Penggunaan memori Mesin Virtual tidak muncul di TaskManager

28

Ada sesuatu tentang manajemen memori Windows dan hubungannya dengan TaskManager yang tidak saya mengerti dan saya berharap seseorang dapat mencerahkan saya.

Jika saya menjalankan mesin virtual (tidak masalah apakah itu Virtual PC 2007, Virtual Server 2005, atau VirtualBox karena mereka bertindak dengan cara yang sama) dan membuka TaskManager saya dapat melihat pada tab proses beberapa entri untuk VM tetapi nilai memori cukup kecil (sekitar 30 MB). Jelas itu tidak termasuk memori yang sebenarnya dikonsumsi oleh VM itu sendiri. Tak satu pun dari berbagai kolom yang berhubungan dengan Memori yang dapat Anda buat tampak bekerja dengan cara yang berbeda. Penggunaan memori pada tab Performance tampaknya benar untuk total penggunaan memori termasuk VM.

Jadi pertanyaan saya adalah mengapa tidak penggunaan memori VM (yang akan menjadi 100-an MB) muncul di tab Proses?

Scott Bussinger
sumber

Jawaban:

30

VirtualPC, HyperV, dan mungkin produk sejenis menggunakan sesuatu yang disebut memori terkunci driver, yang tidak terlihat di Process Explorer, Task Manager, dll. RAMMap akan menunjukkan kepada Anda memori terkunci driver yang digunakan oleh suatu proses.

Sajee
sumber
1
Sebagai catatan, RAMMap adalah Vista atau lebih tinggi saja.
Tim Abell
1
RAMMap tidak menunjukkan memori terkunci untuk suatu proses, itu memang menunjukkan total memori terkunci terkunci
NeDark
Hanya untuk menunjukkan kepada orang lain, dia tidak mengatakan proses memori terkunci. Katanya sopir terkunci ingatan. Begitulah cara kerja memori dinamis. Jika Anda tidak menyukainya, atau menganggapnya mengacaukan aplikasi Anda, maka Anda bisa mengonfigurasi VM untuk memori statis alih-alih dinamis. Saya telah melihat beberapa aplikasi java memiliki masalah ketika menggunakan memori dinamis dalam VM, mengaturnya untuk memperbaiki kesalahan statis .
John C
Proses apa yang sebenarnya mengalokasikan memori itu? Saya telah mencoba VMMap SysInternals dan ketika Anda memilih VBoxHeadless.exeproses yang tepat (itu adalah daun pada cabang pohon proses, yaitu tidak memiliki anak lain, Anda dapat menggunakan misalnya Process Explorer untuk menemukannya), bahwa memori "hilang" muncul di bawah Private Bytes dan Working Set dari proses itu (meskipun Process Explorer menunjukkan lebih sedikit untuk kedua nilai). Jadi saya agak bingung mengapa mereka menunjukkan nilai yang berbeda tetapi VMMap tampaknya menunjukkan bilangan real .
Dawid Ferenczy Rogožan
6

Sistem virtualisasi yang dihosting seperti yang Anda daftarkan akan menyertakan driver perangkat yang berjalan di dalam kernel OS host. Ini diperlukan karena program mode pengguna tidak dapat mengeluarkan instruksi yang diperlukan untuk membuat mesin virtual.

Alasan Anda tidak melihat memori dalam task manager adalah karena Anda mencari memori untuk program mode pengguna yang terkait dengan mesin virtual, dan bukan driver perangkat mode kernel yang sebenarnya mengalokasikan memori untuk VM.

Jake Oshins
sumber
Proses apa yang sebenarnya mengalokasikan memori itu? Saya telah mencoba VMMap SysInternals dan ketika Anda memilih VBoxHeadless.exeproses yang tepat (itu adalah daun pada cabang pohon proses, yaitu tidak memiliki anak lain, Anda dapat menggunakan misalnya Process Explorer untuk menemukannya), bahwa memori "hilang" muncul di bawah Private Bytes dan Working Set dari proses itu (meskipun Process Explorer menunjukkan lebih sedikit untuk kedua nilai). Jadi saya agak bingung mengapa mereka menunjukkan nilai yang berbeda tetapi VMMap tampaknya menunjukkan bilangan real .
Dawid Ferenczy Rogožan
5

Untuk melihat jumlah memori yang digunakan oleh VM, Anda perlu memastikan bahwa Anda memiliki kolom Set Kerja yang terlihat di Task Manager Anda. Seringkali hanya Set Pribadi yang terlihat.

Untuk mengaktifkan kolom ini:

1) Mulai Pengelola Tugas

2) Buka tab Proses

3) Lihat> Pilih Kolom

4) Pastikan "Memory - Working Set" dicentang

Sebagai contoh, Perangkat Pribadi dari VM yang saya jalankan saat ini adalah 43mb, sedangkan Perangkat Kerja adalah 2.3Gb

Mark Henderson
sumber
1
Berapa jumlah penuh penggunaan aplikasi memori? Perangkat kerja + Perangkat pribadi atau hanya perangkat kerja?
zendar
2
Mungkin berbeda di versi Windows yang berbeda, tetapi di bawah Windows 7 bukan itu yang saya lihat. Angka "Working Set" lebih besar dari angka "Private Working Set", tetapi tidak cukup jauh untuk menjelaskan memori VM. Saya sudah mencoba semua kolom yang terkait dengan memori dan tidak ada yang melakukannya. Ini dengan Windows Virtual PC dan VirtualBox. Versi Windows dan host VM apa yang Anda gunakan?
Scott Bussinger
Sayangnya, tidak ada angka tunggal yang menunjukkan "berapa banyak memori" yang digunakan suatu proses, karena Anda mengalami komplikasi seperti memori bersama, memori yang dipetakan file, memori paged-out dan beberapa lainnya. Berikut adalah penjelasan yang bagus dari beberapa konsep: stackoverflow.com/questions/1984186/…
tylerl
Saya tidak berpikir Perangkat Kerja memberi tahu Anda apa pun yang berguna dalam kasus ini. Di dalam VM, itu melaporkan bahwa ia menggunakan sekitar 6 GB memori sementara proses VirtualBox tidak mengkonsumsi lebih dari 100 MB di Set Kerja mereka .
Dawid Ferenczy Rogožan