Gejala
Mengasumsikan bahwa Anda memiliki aplikasi atau alat yang menjalankan Windows 7 atau Windows Server 2008 R2, dan aplikasi atau alat melakukan salah satu atau lebih tugas-tugas berikut:
-
Pemantauan server lain menggunakan ICMP atau ping.exe
-
Mulai proses multi proses singkat untuk melakukan pekerjaan dan kemudian berhenti
-
Melakukan kegiatan jaringan, dan proses kemudian berhenti dengan aplikasi atau skrip yang lain
Dalam situasi ini, setelah server Anda berjalan terus-menerus selama beberapa jam atau beberapa hari, Anda akan memperhatikan bahwa layanan jaringan penyimpanan Interface (NSI) kebocoran memori. Selain itu, Anda melihat gejala berikut ini:
-
Jika Anda menghentikan perangkat lunak pemantauan, kebocoran memori berhenti.
-
Apabila Anda menghentikan aplikasi dan kemudian restart komputer, terjadi kebocoran memori tidak ada dalam Layanan NSI.
-
Dalam beberapa kasus, jika Anda menonaktifkan dan mengaktifkan kemudian adaptor jaringan, Anda melihat tiba-tiba lonjakan penggunaan CPU oleh layanan NSI. Selain itu, penggunaan memori segera muncul tetes dari 1 atau 2 gigabyte (GB) 200 atau 300 megabyte (MB).
Masalah ini dapat terjadi pada salah satu dari skenario berikut ini.
Skenario 1
Jika aplikasi seperti ping.exe paksa berhenti, ada kemungkinan bahwa fungsi IcmpCloseHandle tidak disebut. Dalam hal ini, Layanan NSI akan mendeteksi bahwa ada klien yang tersedia. Oleh karena itu, Layanan terus-menerus mengirimkan pemberitahuan tentang setiap pesan ICMP. Karena tidak ada klien, daftar pemberitahuan terus meningkat. Daftar tidak membersihkan hingga layanan NSI dihentikan.
Untuk mengirim ping, Anda harus membuka menangani ICMP, dan kemudian menggunakan fungsi IP Helper lain untuk mengirim dan menerima ICMP data:
Setelah aplikasi mengirimkan ping, harus memanggil fungsi IcmpCloseHandle untuk menutup ICMP handle.
Skenario 2
Pengembang perangkat lunak menciptakan aplikasi untuk mengirim dan menerima pesan ICMP menggunakan api IPHlelper. Jika hanya satu handle ICMP digunakan untuk mengirim pesan ICMP untuk banyak klien, dan jika hal ini tidak pada tingkat yang sangat tinggi, API IPHelper yang telah diberitahu ketika pesan yang diterima tidak mempertahankan kecepatan. Dalam hal ini, Anda memperhatikan bahwa NSI Layanan memori terus tumbuh pesat. Selain itu, Anda akan memperhatikan penggunaan CPU yang tinggi oleh layanan NSI (nsisvc.dll).
Skenario 3
Anda memiliki aplikasi atau layanan yang langsung menggunakan IP Helper fungsi. Aplikasi berhenti atau telah dihentikan, itu tidak keluar dari anggun saat registrasi pemberitahuan setiap tidak dibatalkan (CancelMibChangeNotify2). Dalam hal ini, NSI server terus-menerus pendaftaran ditunda untuk proses yang berhenti. Jika ada banyak contoh aplikasi terhentinya, Layanan NSI akan memiliki banyak hidup pendaftaran. Keadaan asinkron RPC dan informasi lainnya dikelola untuk setiap registrasi. Ini menambah penggunaan memori. Biasanya, pendaftaran ini dibuat untuk mengubah antarmuka atau mengubah alamat Unicast IP. Jika tidak ada perubahan dalam status, pendaftaran ini masih dipertahankan.
Fungsi pemberitahuan berikut ini digunakan selama proses registrasi:
Alasan bahwa banyak aplikasi tidak panggilan (CancelMibChangeNotify2) atau menghentikan proses dibahas dalam topik NotifyIpInterfaceChange fungsi di situs web Microsoft Developer Network.
Setelah NotifyIpInterfaceChange fungsi dipanggil untuk mendaftar pemberitahuan perubahan, pemberitahuan ini terus dikirim sampai aplikasi unregisters untuk menerima pemberitahuan perubahan atau aplikasi berhenti. Jika aplikasi berhenti, sistem secara otomatis unregisters pendaftaran pemberitahuan perubahan apa pun. Kami menyarankan Anda mengonfigurasi aplikasi secara eksplisit unregister untuk pemberitahuan perubahan sebelum berhenti.
Untuk setiap registrasi pemberitahuan, Anda membuat juga mengalokasikan beberapa memori non-halaman kumpulan (NPP)NSpc tag.
Penyebab
Masalah ini terjadi karena proses yang didaftarkan untuk pemberitahuan keluar tanpa membatalkan pendaftaran pertama dari layanan NSI. Oleh karena itu, kebocoran pendaftaran di NSI menyebabkan kebocoran memori di NSI layanan. Selain itu, NPP kebocoran memori di NSI Proxy konteks Tag NSpc (NSI.dll).
Pemecahan Masalah
Informasi Hotfix
Tersedia hotfix yang didukung dari Microsoft Support. Namun, hotfix ini ditujukan untuk memperbaiki masalah yang dijelaskan di artikel ini. Hotfix ini hanya berlaku untuk sistem yang mengalami masalah yang dijelaskan di artikel ini. Hotfix ini mungkin akan menerima pengujian tambahan. Oleh karena itu, jika Anda tidak terlalu dipengaruhi oleh masalah ini, kami sarankan Anda menunggu pemutakhiran perangkat lunak berikutnya yang berisi perbaikan terbaru ini.
Apabila hotfix tersedia untuk diunduh, ada bagian "Tersedia unduhan Hotfix" di bagian atas artikel Pangkalan Pengetahuan ini. Jika bagian ini tidak muncul, hubungi layanan pelanggan Microsoft dan dukungan untuk mendapatkan hotfix.
Catatan Jika terjadi masalah tambahan atau apabila pemecahan masalah apa pun diperlukan, Anda mungkin harus membuat permintaan layanan secara terpisah. Biaya dukungan biasa akan berlaku untuk dukungan tambahan pertanyaan dan masalah yang tidak memenuhi syarat untuk hotfix ini. Untuk daftar lengkap nomor telepon layanan pelanggan Microsoft dan dukungan atau untuk membuat permintaan layanan terpisah, kunjungi situs web Microsoft berikut:
http://support.microsoft.com/contactus/?ws=support
Catatan Formulir "Tersedia Unduhan Hotfix" menampilkan bahasa hotfix tersedia. Jika Anda tidak melihat bahasa Anda, hal ini karena hotfix tidak tersedia untuk bahasa tersebut.
Prasyarat
Untuk menerapkan hotfix ini, Anda harus memiliki Paket Layanan 1 untuk Windows 7 atau Windows Server 2008 R2 yang diinstal.
Persyaratan mulai ulang
Anda harus memulai ulang komputer setelah menerapkan hotfix ini.
Informasi penggantian hotfix
Hotfix ini tidak menggantikan hotfix yang diedarkan sebelumnya.
Informasi berkas
Versi bahasa Inggris (Amerika Serikat) dari hotfix ini menginstal berkas yang memiliki atribut yang tercantum dalam tabel berikut. Tanggal dan waktu untuk berkas-berkas tersebut dicantumkan dalam Coordinated Universal Time (UTC). Tanggal dan waktu untuk berkas-berkas tersebut di komputer lokal Anda ditampilkan dalam waktu setempat sekaligus dengan selisih waktu daylight saving time (DST) saat ini. Selain itu, tanggal dan waktu dapat berubah saat Anda melakukan pengoperasian tertentu pada berkas.
Catatan informasi berkas Windows 7 dan Windows Server 2008 R2 dan
Penting Windows 7 dan hotfix Windows Server 2008 R2 disertakan dalam paket yang sama. Namun, hotfix pada halaman Permintaan Hotfix dicantumkan pada kedua sistem operasi. Untuk meminta paket hotfix yang berlaku untuk salah satu atau kedua sistem operasi, pilih hotfix yang tercantum di bawah "Windows 7/Windows Server 2008 R2" di halaman tersebut. Selalu rujuk ke bagian "Berlaku untuk" di artikel untuk menentukan sistem operasi aktual yang diterapkan untuk setiap hotfix.
-
Berkas yang berlaku untuk produk tertentu, SR_Level (RTM, SPn), dan cabang layanan (LDR, GDR) dapat diidentifikasi dengan memeriksa nomor versi berkas seperti yang ditunjukkan pada tabel berikut.
Versi
Produk
SR_Level
Cabang Layanan
6.1.760 0. 16xxx
Windows 7 dan Windows Server 2008 R2
RTM
GDR
6.1.760 1. 22xxx
Windows 7 dan Windows Server 2008 R2
SP1
LDR
-
Cabang Layanan GDR hanya berisi hotfix yang dirilis secara luas untuk mengatasi masalah yang tersebar luas dan sangat penting. Cabang layanan LDR berisi hotfix selain perbaikan yang diedarkan secara luas.
-
Berkas MANIFEST (.manifest) dan berkas MUM (.mum) yang diinstal untuk setiap lingkungan dicantumkan secara terpisah di bagian "Informasi file tambahan untuk Windows 7 dan Windows Server 2008 R2".
-
Berkas MUM dan berkas MANIFEST, dan terkait keamanan berkas Katalog (.cat), yang sangat penting untuk mempertahankan status komponen pemutakhiran. File Katalog keamanan, di mana atribut tidak dicantumkan, ditandai dengan tanda tangan digital Microsoft.
Untuk semua versi Windows 7 berbasis-x86 yang didukung
Nama file |
Versi file |
Ukuran file |
Tanggal |
Waktu |
Platform |
Nsi.dll |
6.1.7600.16385 |
8,704 |
14-Jul-2009 |
01:16 |
x86 |
Nsiproxy.sys |
6.1.7600.16385 |
16,896 |
13-Jul-2009 |
23:12 |
x86 |
Nsisvc.dll |
6.1.7601.22590 |
20,480 |
05-Feb-2014 |
02:03 |
x86 |
Winnsi.dll |
6.1.7600.16385 |
16,896 |
14-Jul-2009 |
01:16 |
x86 |
Untuk semua x64 versi yang didukung Windows 7 dan Windows Server 2008 R2
Nama file |
Versi file |
Ukuran file |
Tanggal |
Waktu |
Platform |
Nsi.dll |
6.1.7600.16385 |
13,824 |
14-Jul-2009 |
01:41 |
x64 |
Nsiproxy.sys |
6.1.7601.22590 |
24,576 |
05-Feb-2014 |
01:15 |
x64 |
Nsisvc.dll |
6.1.7601.22590 |
26,624 |
05-Feb-2014 |
02:42 |
x64 |
Winnsi.dll |
6.1.7600.16385 |
26,112 |
14-Jul-2009 |
01:41 |
x64 |
Nsi.dll |
6.1.7601.22590 |
8,704 |
05-Feb-2014 |
02:03 |
x86 |
Winnsi.dll |
6.1.7601.22590 |
16,896 |
05-Feb-2014 |
02:04 |
x86 |
Untuk semua versi Windows Server 2008 R2 berbasis IA-64 yang didukung
Nama file |
Versi file |
Ukuran file |
Tanggal |
Waktu |
Platform |
Nsi.dll |
6.1.7600.16385 |
18,944 |
14-Jul-2009 |
01:48 |
IA-64 |
Nsiproxy.sys |
6.1.7601.22590 |
53,760 |
05-Feb-2014 |
00:50 |
IA-64 |
Nsisvc.dll |
6.1.7601.22590 |
60,928 |
05-Feb-2014 |
01:48 |
IA-64 |
Winnsi.dll |
6.1.7600.16385 |
38,912 |
14-Jul-2009 |
01:50 |
IA-64 |
Nsi.dll |
6.1.7601.22590 |
8,704 |
05-Feb-2014 |
02:03 |
x86 |
Winnsi.dll |
6.1.7601.22590 |
16,896 |
05-Feb-2014 |
02:04 |
x86 |
Informasi berkas tambahan untuk Windows 7 dan Windows Server 2008 R2
Berkas tambahan untuk semua Windows 7 versi x86 yang didukung
Nama file |
Package_1_for_kb2847346~31bf3856ad364e35~x86~~6.1.1.0.mum |
Versi file |
Tidak Dapat Diterapkan |
Ukuran file |
1,822 |
Tanggal (UTC) |
05-Feb-2014 |
Waktu (UTC) |
06:35 |
Platform |
Tidak Dapat Diterapkan |
Nama file |
Package_2_for_kb2847346~31bf3856ad364e35~x86~~6.1.1.0.mum |
Versi file |
Tidak Dapat Diterapkan |
Ukuran file |
1,805 |
Tanggal (UTC) |
05-Feb-2014 |
Waktu (UTC) |
06:35 |
Platform |
Tidak Dapat Diterapkan |
Nama file |
Package_3_for_kb2847346~31bf3856ad364e35~x86~~6.1.1.0.mum |
Versi file |
Tidak Dapat Diterapkan |
Ukuran file |
1,807 |
Tanggal (UTC) |
05-Feb-2014 |
Waktu (UTC) |
06:35 |
Platform |
Tidak Dapat Diterapkan |
Nama file |
Package_for_kb2847346_rtm~31bf3856ad364e35~x86~~6.1.1.0.mum |
Versi file |
Tidak Dapat Diterapkan |
Ukuran file |
1,459 |
Tanggal (UTC) |
05-Feb-2014 |
Waktu (UTC) |
06:35 |
Platform |
Tidak Dapat Diterapkan |
Nama file |
Package_for_kb2847346_sp1~31bf3856ad364e35~x86~~6.1.1.0.mum |
Versi file |
Tidak Dapat Diterapkan |
Ukuran file |
1,918 |
Tanggal (UTC) |
05-Feb-2014 |
Waktu (UTC) |
06:35 |
Platform |
Tidak Dapat Diterapkan |
Nama file |
X86_dfca12963d5c03edca970b29ad513eb4_31bf3856ad364e35_6.1.7601.22590_none_ff32d7aebbbb6891.manifest |
Versi file |
Tidak Dapat Diterapkan |
Ukuran file |
699 |
Tanggal (UTC) |
05-Feb-2014 |
Waktu (UTC) |
06:35 |
Platform |
Tidak Dapat Diterapkan |
Nama file |
X86_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_749890603f18301d.manifest |
Versi file |
Tidak Dapat Diterapkan |
Ukuran file |
8,301 |
Tanggal (UTC) |
05-Feb-2014 |
Waktu (UTC) |
06:38 |
Platform |
Tidak Dapat Diterapkan |
Berkas tambahan untuk semua versi x64 berbasis Windows 7 dan Windows Server 2008 R2 yang didukung
Nama file |
Amd64_37e172e525713d1718cb98daea282913_31bf3856ad364e35_6.1.7601.22590_none_9888f3a0165278fe.manifest |
Versi file |
Tidak Dapat Diterapkan |
Ukuran file |
1048 |
Tanggal (UTC) |
05-Feb-2014 |
Waktu (UTC) |
06:35 |
Platform |
Tidak Dapat Diterapkan |
Nama file |
Amd64_3839818617f8250fd6f59e35da1df9bd_31bf3856ad364e35_6.1.7601.22590_none_8fbf427f98b0d1cb.manifest |
Versi file |
Tidak Dapat Diterapkan |
Ukuran file |
703 |
Tanggal (UTC) |
05-Feb-2014 |
Waktu (UTC) |
06:35 |
Platform |
Tidak Dapat Diterapkan |
Nama file |
Amd64_a9af583825031567fe0548a9c2c728ab_31bf3856ad364e35_6.1.7601.22590_none_59ced916edddc9da.manifest |
Versi file |
Tidak Dapat Diterapkan |
Ukuran file |
703 |
Tanggal (UTC) |
05-Feb-2014 |
Waktu (UTC) |
06:35 |
Platform |
Tidak Dapat Diterapkan |
Nama file |
Amd64_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_d0b72be3f775a153.manifest |
Versi file |
Tidak Dapat Diterapkan |
Ukuran file |
8,305 |
Tanggal (UTC) |
05-Feb-2014 |
Waktu (UTC) |
06:41 |
Platform |
Tidak Dapat Diterapkan |
Nama file |
Package_1_for_kb2847346~31bf3856ad364e35~amd64~~6.1.1.0.mum |
Versi file |
Tidak Dapat Diterapkan |
Ukuran file |
1,832 |
Tanggal (UTC) |
05-Feb-2014 |
Waktu (UTC) |
06:35 |
Platform |
Tidak Dapat Diterapkan |
Nama file |
Package_2_for_kb2847346~31bf3856ad364e35~amd64~~6.1.1.0.mum |
Versi file |
Tidak Dapat Diterapkan |
Ukuran file |
2,237 |
Tanggal (UTC) |
05-Feb-2014 |
Waktu (UTC) |
06:35 |
Platform |
Tidak Dapat Diterapkan |
Nama file |
Package_3_for_kb2847346~31bf3856ad364e35~amd64~~6.1.1.0.mum |
Versi file |
Tidak Dapat Diterapkan |
Ukuran file |
2,015 |
Tanggal (UTC) |
05-Feb-2014 |
Waktu (UTC) |
06:35 |
Platform |
Tidak Dapat Diterapkan |
Nama file |
Package_4_for_kb2847346~31bf3856ad364e35~amd64~~6.1.1.0.mum |
Versi file |
Tidak Dapat Diterapkan |
Ukuran file |
2,036 |
Tanggal (UTC) |
05-Feb-2014 |
Waktu (UTC) |
06:35 |
Platform |
Tidak Dapat Diterapkan |
Nama file |
Package_for_kb2847346_rtm~31bf3856ad364e35~amd64~~6.1.1.0.mum |
Versi file |
Tidak Dapat Diterapkan |
Ukuran file |
1,467 |
Tanggal (UTC) |
05-Feb-2014 |
Waktu (UTC) |
06:35 |
Platform |
Tidak Dapat Diterapkan |
Nama file |
Package_for_kb2847346_sp1~31bf3856ad364e35~amd64~~6.1.1.0.mum |
Versi file |
Tidak Dapat Diterapkan |
Ukuran file |
2,830 |
Tanggal (UTC) |
05-Feb-2014 |
Waktu (UTC) |
06:35 |
Platform |
Tidak Dapat Diterapkan |
Nama file |
Wow64_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_db0bd6362bd6634e.manifest |
Versi file |
Tidak Dapat Diterapkan |
Ukuran file |
4.690 |
Tanggal (UTC) |
05-Feb-2014 |
Waktu (UTC) |
02:16 |
Platform |
Tidak Dapat Diterapkan |
Berkas tambahan untuk semua Windows Server 2008 R2 versi IA-64 yang didukung
Nama file |
Ia64_44d491142723affea686ec2fba3cb4ac_31bf3856ad364e35_6.1.7601.22590_none_dc26e555dbabe437.manifest |
Versi file |
Tidak Dapat Diterapkan |
Ukuran file |
1,046 |
Tanggal (UTC) |
05-Feb-2014 |
Waktu (UTC) |
06:35 |
Platform |
Tidak Dapat Diterapkan |
Nama file |
Ia64_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_749a34563f163919.manifest |
Versi file |
Tidak Dapat Diterapkan |
Ukuran file |
8,303 |
Tanggal (UTC) |
05-Feb-2014 |
Waktu (UTC) |
06:35 |
Platform |
Tidak Dapat Diterapkan |
Nama file |
Package_1_for_kb2847346~31bf3856ad364e35~ia64~~6.1.1.0.mum |
Versi file |
Tidak Dapat Diterapkan |
Ukuran file |
2,029 |
Tanggal (UTC) |
05-Feb-2014 |
Waktu (UTC) |
06:35 |
Platform |
Tidak Dapat Diterapkan |
Nama file |
Package_for_kb2847346_sp1~31bf3856ad364e35~ia64~~6.1.1.0.mum |
Versi file |
Tidak Dapat Diterapkan |
Ukuran file |
1,446 |
Tanggal (UTC) |
05-Feb-2014 |
Waktu (UTC) |
06:35 |
Platform |
Tidak Dapat Diterapkan |
Nama file |
Wow64_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_db0bd6362bd6634e.manifest |
Versi file |
Tidak Dapat Diterapkan |
Ukuran file |
4.690 |
Tanggal (UTC) |
05-Feb-2014 |
Waktu (UTC) |
02:16 |
Platform |
Tidak Dapat Diterapkan |
Penyelesaian Masalah
Untuk mengatasi masalah ini, gunakan salah satu dari penyelesaian berikut yang sesuai untuk situasi Anda.
Penyelesaian untuk skenario 1
Pastikan bahwa aplikasi, seperti ping.exe, tidak paksa dihentikan. Sebaliknya, biarkan aplikasi anggun pematian.
Selain itu, upgrade ke Windows Server 2012. Masalah ini diperbaiki di Windows Server 2012. Perbaikan ini mencegah Layanan NSI kebocoran memori terlepas dari bagaimana aplikasi berhenti.
Pemecahan masalah untuk skenario 2
Pengembang perangkat lunak harus membuat beberapa ICMP penanganan untuk mengirim permintaan ICMP. Jika Anda harus mengirim sejumlah besar paket ICMP, Anda harus menggunakan soket mentah dan langsung mengirim dan menerima paket ICMP pada soket mentah. Ini akan memberikan kinerja yang lebih cepat.
Pemecahan masalah untuk skenario 3
Dalam skenario ini, jika Anda menonaktifkan dan mengaktifkan adaptor jaringan, penggunaan memori segera mengurangi tetapi memiliki tangkai pendek penggunaan CPU.
Ini terjadi karena saat perubahan yang terjadi di alamat IP atau antarmuka, Layanan NSI diberitahu oleh kernel. Layanan NSI kemudian mencoba untuk notifiy semua klien yang terdaftar untuk pemberitahuan. Saat Layanan mencoba untuk memberi tahu proses klien yang tidak ada, RPC melaporkan kesalahan. Oleh karena itu, Layanan NSI menghapus semua informasi status yang disimpan untuk proses klien tersebut. Setelah ini terjadi, memori dibebaskan.
Dalam hal ini, beberapa ratusan ribu pemberitahuan yang terdaftar. Setelah peristiwa terjadi, memori untuk klien ini tidak valid dibebaskan.
Masalah ini diperbaiki di Windows 8.