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.
sumber
Jawaban:
Saya telah memantau ini selama sekitar 6-7 minggu sekarang dan akhirnya dapat memberikan jawaban yang pasti untuk masalah ini.
Pertama, Nonpaged Bytes untuk proses individual tidak benar-benar memberi tahu saya apa pun yang bermanfaat karena semuanya tampak cukup statis dalam penggunaannya. Ada paku tetapi penggunaannya selalu kembali ke garis dasar sesudahnya.
Total Memori Bytes Nonpaged adalah statis untuk sementara juga tetapi kemudian mulai meningkat secara bertahap dan kemudian spiking. Setelah lonjakan sekitar setengah memori dibebaskan dan kemudian tetap statis lagi (pada tingkat yang lebih tinggi) untuk sementara waktu hingga pola berulang. Melihat grafik saya perhatikan bahwa paku-paku ini sepertinya cukup teratur jaraknya dan ternyata mereka terjadi 2 minggu terpisah dan selalu pada hari Minggu.
Jadi pertanyaan selanjutnya adalah: Apa yang berjalan dua mingguan pada hari Minggu? Aku pergi melihat-lihat di Event Viewer dan setiap kali terjadi lonjakan McAfee berlari . Saya juga berpikir dengan masuk ke server secara teratur untuk memantau masalah ini, kami secara tidak sengaja memperburuk masalah karena McAfee memiliki pemindai waktu nyata dan saya percaya ini menyebabkan peningkatan yang lebih kecil yang kami lihat.
Saya berpikir bahwa pemindaian yang dijadwalkan tugas juga menjelaskan mengapa kami melihat Memori NP meningkat melekat pada tag objek Acara di PoolMon, bukan pada tag spesifik McAfee. Ini adalah hal utama yang benar-benar membawa kami menyusuri jalan setapak.
Sekarang kita akhirnya tahu apa yang menyebabkan kebocoran, kita dapat melakukan sesuatu. Sungguh luar biasa bahwa butuh waktu selama ini untuk melacaknya.
UPDATE : Sama seperti catatan akhir. McAfee diperbarui pada akhir pekan dan ini sepenuhnya menyelesaikan masalah Memori Non-Paged kami.
UPDATE 2 : Karena saya baru saja mendapatkan suara untuk ini, saya akan menambahkan pembaruan lebih lanjut untuk ini. Awalnya pembaruan ke McAfee tampaknya memperbaiki masalah kami yaitu kita tidak lagi melihat lonjakan besar dalam Memori NP secara berkala. Saya juga memperhatikan bahwa sejak pembaruan tampaknya McAfee tidak lagi menulis log ke Peraga Peristiwa secara default sekarang, yang bersembunyi ketika sedang memindai secara aktif.
Tapi kami masih melihat peningkatan bertahap dalam penggunaan memori NP. Sudah sampai pada titik di mana kita sekarang perlu me-reboot server kami setiap 2 minggu atau lebih. Sangat buruk bahwa kami baru saja memperoleh server baru dengan harapan bahwa perangkat keras dan perangkat lunak yang diperbarui akan membuat masalah ini hilang. TETAPI server kami yang sepenuhnya baru dengan hanya Windows Server 2008, SQL Server 2008 R2, dan McAfee yang diinstal masih MASIH menunjukkan kebocoran Memori NP . Hanya setelah saya benar-benar menghapus McAfee kebocoran itu berhenti dan tetap statis bahkan setelah kami menyiapkan server dengan semua perangkat lunak kami dalam persiapan untuk beralih ke sana.
Sejak itu saya sudah membaca, dan saya tidak tahu apakah ini benar, bahwa masalahnya bukan pada McAfee, tetapi dengan beberapa rutin Windows yang digunakan McAfee yang menyebabkan NP Memory bocor. Rupanya, aktivitas jaringan adalah penyebab kebocoran yaitu lebih banyak aktivitas jaringan => kebocoran lebih besar. Ini tampaknya konsisten dengan pengalaman kami, karena kebocoran semakin memburuk karena server kami semakin sibuk.
sumber