Saya mengalami masalah di salah satu server kantor saya. Server Windows 2008 R2 tervirtualisasi dengan memori RAM 6GB. Ini hanya memiliki Microsoft SQL Server (memori yang ditetapkan maksimum = 3GB), dan hanya perangkat lunak yang tidak mengkonsumsi lebih dari 1GB RAM. Namun, memori RAM server hampir penuh, dan melihat proses-proses dalam task manager sepertinya mereka tidak menjumlahkan ini. Saya telah menginstal RamMap, tetapi tidak dapat mengartikannya dengan sangat mudah, adakah "nilai tinggi" yang dapat Anda identifikasi?
windows-server-2008
sql-server
virtual-machines
memory
cache
Guillermo Zooby
sumber
sumber
Jawaban:
Yah, saya melihat ~ 3,2 gigabyte memori Driver Locked, yang langsung terlihat mencurigakan.
Memori jenis ini, memori Driver Locked, adalah memori yang telah dikunci oleh driver mode kernel. Biasanya untuk tujuan mentransfer kecil jumlah data, biasanya untuk singkat periode waktu.
Jadi, jika Anda memiliki sebagian besar memori driver yang terkunci, untuk waktu yang lama , biasanya itu pertanda ada sesuatu yang tidak beres.
Saya akan mengambil tebakan liar di sini dan menebak bahwa karena Anda menyebutkan bahwa itu adalah server tervirtualisasi, bahwa itu adalah driver balon VMware yang melakukan ini. Saya tidak memiliki cukup data untuk dapat memberi tahu Anda mengapa melakukan hal ini, tetapi ada banyak kasus dan VMware mendukung KB, seperti ini , yang secara khusus berbicara tentang driver balon yang secara keliru mempertahankan sejumlah besar memori ketika seharusnya tidak tidak mungkin.
Anda juga harus mempertimbangkan kemungkinan bahwa driver balon berperilaku seperti yang dirancang, dan berusaha membuat halaman server Anda kehabisan memori karena sangat perlu memberikan memori ke VM lain di host yang sama.
Ada kemungkinan lain bahwa itu bukan driver memori dinamis hypervisor sama sekali, tetapi hanya beberapa driver perangkat jahat.
Driver biasanya mengalokasikan memori yang "ditandai" dengan tag 3 atau 4 karakter yang memberikan petunjuk tentang driver apa yang bertanggung jawab untuk membuat alokasi.
poolmon.exe, bagian dari Windows SDK / DDK, dapat membantu mendiagnosis.
Seperti saya katakan, tebakan liar, tapi itu yang terbaik yang bisa saya lakukan dengan data yang saya miliki.
sumber
Yah, saya punya setiap versi SQL Server yang bisa dibayangkan di tempat, dari 2005 hingga 2016, dan saya belum melihat ada kebocoran memori sebesar 100% dari mem digunakan sebenarnya. Lihat apakah Anda memiliki Memori Dinamis untuk Mesin Virtual Anda diaktifkan .
Driver Locked
adalah sosok yang harus Anda konsentrasi. Dalam kasus spesifik Anda,Driver Locked
mungkin salah satu driver Hyper-V, yang mengunci semua memori yang tidak digunakan (ditetapkan untuk VM, tetapi tidak digunakan oleh atm), sehingga dapat "memberikannya" ke beberapa VM lain yang dikonfigurasi dengan Memori Dinamis, atau bahkan untuk host OS, mana yang membutuhkannya saat ini. Anda dapat mengujinya dengan membuka beberapa file besar atau aplikasi yang intensif memori di dalam mesin virtual itu - memori DriverLocked akan turun karena beberapa metrik lainnya meningkat. IMHO ini seharusnya tidak menjadi alasan untuk khawatir jika Anda tidak terlalu banyak menyediakan memori di semua VM.sumber