Mengapa kolam memori non-halaman berkembang di Windows

Dalam beberapa kasus, komputer dan server Windows mungkin mengalami masalah dengan kehabisan memori bebas yang disebabkan oleh kebocoran beberapa driver sistem yang menyimpan datanya dalam kumpulan memori sistem non-paged.. Pool Memori Non-Halaman (Memori tanpa halaman) adalah data dalam RAM komputer yang digunakan oleh kernel dan driver dari sistem operasi, yang tidak pernah diunggah ke disk (ke file swap / swap), mis. selalu dalam ingatan fisik.

Ukuran saat ini dari kumpulan memori non-paged dapat dilihat di task manager pada tab Perfomance (Performa) di bawah Memori (Memori) Tangkapan layar di bawah ini menunjukkan bahwa hampir semua memori pada server terisi, dan sebagian besar milik kolam non-paged sebesar 4,2 GB (Non-paged pool / Non-paged pool). Dalam kondisi normal, ukuran kumpulan non-halaman jarang melebihi 200-400 MB. Ini biasanya menunjukkan kebocoran memori pada beberapa komponen sistem atau driver..

po

Dengan kehabisan memori di server, pesan formulir dapat muncul di log peristiwa:

Server tidak dapat mengalokasikan dari sistem kolam Non-Paged karena kolam itu kosong

Dalam sebagian besar kasus, penyebab kebocoran memori yang dijelaskan adalah masalah dengan driver pihak ketiga yang diinstal pada sistem. Biasanya, ini adalah driver jaringan. Perhatikan bagaimana perilaku pool ketika mengunduh file besar (kemungkinan besar itu akan tumbuh dengan cepat hingga 128 GB atau 75% dari memori fisik pada sistem x64). Hanya reboot yang membantu membersihkan kolam, dan jika masih dapat diterima untuk komputer di rumah, disarankan untuk menemukan solusi normal pada server 24 jam..

Konten:

  • Instal driver terbaru untuk adapter jaringan
  • Menonaktifkan Driver Pemantau Aktivitas Jaringan Windows
  • Menonaktifkan Peran Hyper-V
  • Kami menggunakan utilitas Poolmon untuk menemukan driver yang menyebabkan kebocoran memori.

Instal driver terbaru untuk adapter jaringan

Coba unduh dan instal driver terbaru untuk adapter jaringan Anda dari situs web pabrikan.

Jika Anda memiliki pembaruan driver otomatis yang diaktifkan, pastikan masalah belum mulai setelah menginstal driver baru. Coba putar kembali versi driver ke yang lebih lama dan periksa apakah masalahnya mereproduksi. Jika masalah teratasi, nonaktifkan driver pembaruan otomatis.

Menonaktifkan Driver Pemantau Aktivitas Jaringan Windows

Cukup sering, kebocoran memori di kolam non-paged disebabkan oleh ketidakcocokan driver Network Data Usage (NDU) dengan driver adaptor jaringan komputer. Layanan ini dapat dinonaktifkan tanpa banyak kehilangan fungsionalitas Windows.

Layanan dapat dihentikan dengan perintah:

sc config NDU start = dinonaktifkan

Atau melalui registry

  1. Buka Penyunting Registri regedit.exe
  2. Pergi ke cabang HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services \ Ndu \
  3. Ubah nilainya parameter Mulai jam 4.

Setelah melakukan perubahan, Anda harus me-restart komputer Anda

Menonaktifkan Peran Hyper-V

Dalam beberapa kasus, peran Hyper-V yang diinstal memicu kebocoran memori ke kumpulan non-halaman. Jika tidak diperlukan, kami sarankan menonaktifkannya.

Kami menggunakan utilitas Poolmon untuk menemukan driver yang menyebabkan kebocoran memori.

Jika metode yang dijelaskan di atas tidak membantu, Anda dapat mencoba mencari tahu driver mana yang menyebabkan kebocoran memori di kumpulan non-halaman..

Untuk ini kita memerlukan utilitas konsol Poolmoon.exe, termasuk dalam kit pengembangan Kit driver Windows (WDK). Dari situs web MSFT, unduh dan instal WDK untuk versi Windows Anda dan jalankan utilitas Poolmon.exe (di WDK untuk Windows 10, utilitasnya terletak di C: \ Program Files (x86) \ Windows Kits \ 10 \ Tools \.

Setelah memulai utilitas, tekan tombol P. Di kolom kedua akan tetap ada proses tag yang menggunakan memori non-swapping (atribut Nonp), lalu dengan menekan B, mari kita urutkan berdasarkan kolom byte.

Dalam contoh kita, kita dapat melihat bahwa sebagian besar RAM di kolam nonpaged menggunakan driver dengan tag Nr22, ConT, dan smNp.

Anda dapat menemukan file driver khusus yang terkait dengan proses ini menggunakan perintah:

findstr / m / l / s Nr22% Systemroot% \ System32 \ drivers \ *. sys
findstr / m / l / s CONT% Systemroot% \ System32 \ drivers \ *. sys
findstr / m / l / s smNp% Systemroot% \ System32 \ drivers \ *. sys

Dengan demikian, kami mendapat daftar file driver yang mungkin menyebabkan masalah. Sekarang dengan nama file yang Anda butuhkan untuk menentukan driver dan komponen sistem mana mereka berhubungan. Anda dapat menggunakan utilitas untuk ini. sigcheck dari sysinternals.

sigcheck C: \ Windows \ System32 \ drivers \ rdyboost.sys

Utilitas mengembalikan nama, deskripsi, dan versi driver.

Sekarang Anda dapat mencoba menghapus / memperbarui / menginstal ulang driver masalah atau layanan.
Manual ini berlaku untuk Windows Server 2008 - 2016 dan klien Windows 10, 8, dan 7..