Baru-baru ini kami memiliki masalah pada server langsung kami yang menyebabkan Aplikasi Web kami berhenti merespons. Yang kami dapatkan hanyalah 503 kesalahan sampai kami mem-boot ulang server lalu itu baik-baik saja. Akhirnya saya melacaknya kembali ke httperr.log dan menemukan banyak kesalahan 1_Connections_Refused.
Penyelidikan lebih lanjut tampaknya menunjukkan bahwa kami telah mencapai batas kolam non-halaman. Sejak itu kami telah memantau memori kumpulan non-halaman menggunakan Poolmon.exe dan kami yakin kami telah mengidentifikasi tag yang menyebabkan masalah.
Tag Type Allocs Frees Diff Bytes Per Alloc
Even Nonp 51,231,806 50,633,533 684,922 32,878,688 48
Jika kita menggunakan poolmon.exe / g itu menunjukkan Driver yang dipetakan sebagai [<tidak diketahui> objek acara].
Ini tidak banyak membantu sama sekali. Tim saya telah menghabiskan banyak waktu untuk meneliti masalah ini dan belum dapat menemukan proses untuk mempersempitnya ke aplikasi atau layanan tertentu. Saya mendapatkan pengertian bahwa kebanyakan orang tampaknya menyelesaikan masalah dengan mematikan proses pada mesin sampai mereka melihat memori non-halaman diatur ulang. Ini bukan apa yang ingin Anda lihat ketika bekerja pada mesin produksi.
Jika saya membuka Pengelola Tugas dan melihat daftar proses. Saya melihat MailService.exe dengan nilai NP Pool 105K ini adalah 36K lebih tinggi dari nilai proses yang tercantum kedua. Karena kami memiliki beberapa masalah dengan Server Surat kami di masa lalu (yang mungkin atau mungkin tidak terkait dengan masalah ini) firasat saya adalah ini yang menyebabkan masalah.
Namun, sebelum kita memulai kembali layanan, saya ingin memiliki sedikit kepastian lebih dari sekedar "firasat".
Saya juga sudah mencoba menggunakan poolmon.exe / c tetapi ini selalu mengembalikan kesalahan:
unable to load msvcr70.dll/msvcp70.dll
dan itu tidak membuat localtag.txt. Rekan saya harus mengunduh pooltag.txt dari internet karena kami tidak tahu di mana ia berada. Kami tidak memiliki win debugger atau win DDK yang diinstal (yang dapat saya lihat). Mungkin kesalahan di atas diberikan karena kita tidak menginstal keduanya - tetapi saya tidak tahu.
Akhirnya saya mencoba:
C:\windows\system32\driver\findstr /m /l Even *.sys
Ini mengembalikan daftar file .sys yang cukup besar dan sekali lagi sama sekali tidak membantu dengan masalah yang dihadapi.
Jadi pertanyaan saya adalah ini: Apakah ada cara lain untuk mempersempit penyebab kebocoran memori ini?
MEMPERBARUI:
Seperti yang disarankan di bawah ini, saya telah mencatat Pool Nonpaged Bytes untuk hari terakhir atau lebih untuk melihat apakah ada proses yang sedang tren. Sebagian besar semua proses tampaknya cukup statis dalam penggunaannya. Dua dari mereka terlihat sedikit berdetak. Saya akan terus memonitor ini selama beberapa hari ke depan.
Saya juga lupa menyebutkan sebelumnya bahwa tidak ada proses yang tampaknya menggunakan terlalu banyak pegangan.
PEMBARUAN 2:
Saya telah memantau ini selama beberapa minggu terakhir. Baik Bytes Nonpaged Pool untuk proses individu dan total Nonpaged Bytes Pool tetap relatif stabil selama waktu itu. Selama ini Windows telah diperbarui dan server reboot jadi saya bertanya-tanya apakah itu telah menyelesaikan masalah. Saya jelas tidak melihat pertumbuhan yang konsisten di Pool Bytes Nonpaged sekarang karena saya sebelum ini.