Triệu chứng
Giả sử rằng bạn có một ứng dụng hoặc công cụ đang chạy Windows 7 hoặc Windows Server 2008 R2, là ứng dụng hoặc công cụ thực hiện một hoặc nhiều tác vụ sau:
-
Giám sát máy chủ khác bằng cách sử dụng ICMP hoặc ping.exe
-
Khởi động nhiều ngắn quá trình thực hiện công việc và quy trình rồi dừng
-
Thực hiện bất kỳ hoạt động mạng và trình rồi dừng lại bởi một ứng dụng hoặc tập lệnh
Trong trường hợp này, sau khi máy chủ chạy liên tục trong vài giờ hoặc vài ngày, bạn nhận thấy rằng các dịch vụ mạng lưu trữ giao diện (NSI) rò rỉ bộ nhớ. Ngoài ra, bạn sẽ thấy các hiện tượng sau:
-
Nếu bạn dừng lại theo dõi phần mềm, rò rỉ bộ nhớ dừng.
-
Nếu bạn dừng ứng dụng và sau đó khởi động lại máy tính, không có rò rỉ bộ nhớ xảy ra tại NSI.
-
Trong một số trường hợp, nếu bạn vô hiệu hoá và sau đó bật bộ điều hợp mạng, bạn thấy tăng đột biến bất ngờ của việc sử dụng CPU bởi dịch vụ NSI. Ngoài ra, sử dụng bộ nhớ ngay đến giảm khoảng 1 hoặc 2 gigabyte (GB) 200 hoặc 300 megabyte (MB).
Sự cố này có thể xảy ra ở một trong những trường hợp sau.
Tình huống 1
Nếu một ứng dụng như ping.exe bị dừng lại, có thể IcmpCloseHandle chức năng được gọi là không. Trong trường hợp này, Dịch vụ NSI có thể phát hiện rằng không có máy khách. Do đó, các dịch vụ liên tục gửi thông báo về bất kỳ thông báo ICMP. Do khách hàng không tồn tại, danh sách thông báo tiếp tục tăng. Danh sách không được làm sạch lên cho đến khi dừng dịch vụ NSI.
Để gửi một ping, bạn phải mở điều khiển ICMP, và sau đó sử dụng các chức năng trợ giúp IP khác để gửi và nhận dữ liệu ICMP:
Sau khi ứng dụng gửi ping, nó phải gọi chức năng IcmpCloseHandle đóng ICMP xử lý.
Tình huống 2
Người phát triển phần mềm tạo ra một ứng dụng để gửi và nhận thư ICMP bằng cách sử dụng API IPHlelper. Nếu chỉ một ICMP xử lý được sử dụng để gửi thư ICMP cho nhiều khách hàng và nếu có này hiện tại rất cao, API IPHelper được thông báo khi nhận được thông báo không thể duy trì tốc độ. Trong trường hợp này, bạn sẽ thấy bộ nhớ dịch vụ NSI tiếp tục phát triển theo. Ngoài ra, bạn sẽ thấy sử dụng CPU cao NSI dịch vụ (nsisvc.dll).
Tình huống 3
Bạn có một ứng dụng hoặc dịch vụ trực tiếp hay gián tiếp sử dụng chức năng trợ giúp IP. Ứng dụng dừng hoặc dừng lại, nó không thoát tốt khi mỗi đăng ký thông báo không bị hủy bỏ (CancelMibChangeNotify2). Trong trường hợp này, máy chủ NSI tiếp tục đăng ký đang chờ xử lý quá trình dừng. Nếu có nhiều phiên bản của ứng dụng ngừng, Dịch vụ NSI sẽ có nhiều ký kéo dài. Trạng thái RPC không đồng bộ và thông tin khác được duy trì cho mỗi đăng ký. Điều này thêm để sử dụng bộ nhớ. Thông thường, các đăng ký cho một thay đổi giao diện hoặc thay đổi địa chỉ Unicast IP. Nếu không có thay đổi trạng thái, đăng ký này vẫn được duy trì.
Chức năng thông báo sau được sử dụng trong quá trình đăng ký:
Nguyên nhân gây ra nhiều ứng dụng không gọi (CancelMibChangeNotify2) hoặc ngừng quá trình được thảo luận trong chủ đề NotifyIpInterfaceChange chức năng trên trang web Microsoft Developer Network.
Sau khi NotifyIpInterfaceChange chức năng được gọi là đăng ký thông báo thay đổi các thông báo tiếp tục được gửi cho đến khi ứng dụng unregisters để nhận được thông báo thay đổi hoặc dừng ứng dụng. Nếu ứng dụng dừng, Hệ thống tự động unregisters đăng ký thông báo thay đổi. Chúng tôi khuyên bạn nên cấu hình ứng dụng rõ ràng huỷ đăng ký thông báo thay đổi trước khi nó dừng lại.
Mỗi đăng ký thông báo, bạn hãy cũng phân bổ một số nhớ phần chung phân trang không (NPP) cho các máyNSpc thẻ.
Nguyên nhân
Sự cố này xảy ra do quá trình đăng ký thông báo thoát mà không cần huỷ đăng ký đầu tiên dịch vụ NSI. Do đó, rò rỉ đăng ký trong NSI gây rò rỉ bộ nhớ trong dịch vụ NSI. Ngoài ra, NPP rò rỉ bộ nhớ NSI Proxy cảnh thẻ NSpc (NSI.dll).
Giải pháp
Thông tin về cập nhật nóng
Một hotfix được hỗ trợ có sẵn từ Microsoft Support. Tuy nhiên, cập nhật nóng này chỉ được dùng để khắc phục sự cố được mô tả trong bài viết này. Chỉ áp dụng cập nhật nóng này cho hệ thống đang gặp sự cố được mô tả trong bài viết này. Cập nhật nóng này có thể được kiểm tra thêm. Vì vậy, nếu bạn không bị ảnh hưởng nghiêm trọng bởi sự cố này, chúng tôi khuyên bạn đợi bản cập nhật phần mềm tiếp theo có chứa cập nhật nóng này.
Nếu cập nhật nóng này sẵn có để tải xuống thì sẽ có phần "Cập nhật nóng có sẵn để tải xuống" ở đầu bài viết Cơ sở Kiến thức này. Nếu phần này không xuất hiện, hãy liên hệ với Dịch vụ Khách hàng và Bộ phận Hỗ trợ của Microsoft để nhận được các cập nhật nóng.
Chú ý Nếu sự cố khác xảy ra hoặc nếu cần khắc phục sự cố, bạn có thể phải tạo một yêu cầu dịch vụ riêng. Chi phí hỗ trợ thông thường sẽ tính cho các câu hỏi hỗ trợ bổ sung và các sự cố không phù hợp với cập nhật nóng cụ thể này. Để có danh sách đầy đủ số điện thoại hỗ trợ và dịch vụ khách hàng của Microsoft hoặc để tạo yêu cầu dịch vụ riêng, hãy truy cập website sau của Microsoft:
http://support.microsoft.com/contactus/?ws=support
Chú ý Mẫu "Tải xuống cập nhật nóng sẵn có" hiển thị các ngôn ngữ mà cập nhật nóng này sẵn có. Nếu bạn không thấy ngôn ngữ của mình thì đó là do cập nhật nóng này hiện không có ngôn ngữ đó.
Điều kiện tiên quyết
Để áp dụng cập nhật nóng này, bạn phải cài đặt Gói Dịch vụ 1 cho Windows 7 hoặc Windows Server 2008 R2.
Yêu cầu khởi động lại
Bạn phải khởi động lại máy tính sau khi áp dụng bản sửa lỗi này.
Thông tin thay thế hotfix
Hotfix này không thay thế bất kỳ hotfix nào phát hành trước đó.
Thông tin về tệp
Phiên bản tiếng Anh (Hoa Kỳ) của hotfix này cài đặt các tệp có các thuộc tính được liệt kê trong bảng sau. Ngày và giờ của các tệp này được liệt kê theo Giờ Chuẩn Quốc tế (UTC). Ngày và giờ của các tệp này trên máy tính cục bộ của bạn được hiển thị theo giờ địa phương cùng với độ lệch quy ước giờ mùa hè (DST) hiện tại của bạn. Ngoài ra, ngày và giờ có thể thay đổi khi bạn thực hiện một số thao tác nhất định đối với tệp.
Thông tin tệp Windows 7 và Windows Server 2008 R2 và ghi chú
Quan trọng Các hotfix Windows 7 và Windows Server 2008 R2 được cung cấp trong cùng gói. Tuy nhiên, các bản hotfix trên trang Yêu cầu Hotfix được liệt kê dưới cả hai hệ điều hành. Để yêu cầu gói hotfix áp dụng cho một hoặc cả hai hệ điều hành, hãy chọn hotfix được liệt kê trong "Windows 7/Windows Server 2008 R2" trên trang này. Luôn tham khảo phần "Áp dụng cho" trong bài viết để xác định hệ điều hành thực tế mà mỗi bản hotfix được áp dụng.
-
Các tệp áp dụng cho một sản phẩm cụ thể, SR_Level (RTM, SPn), và chi nhánh dịch vụ (LDR, GDR) có thể được xác định bằng cách kiểm tra các số phiên bản tệp như trình bày ở bảng sau.
Phiên bản
Sản phẩm
SR_Level
Nhánh dịch vụ
6.1.760 0. 16xxx
Windows 7 và Windows Server 2008 R2
RTM
GDR
6.1.760 1. 22xxx
Windows 7 và Windows Server 2008 R2
SP1
LDR
-
Chi nhánh dịch vụ GDR chỉ chứa các bản vá lỗi được phát hành rộng rãi để phục các sự cố phổ biến, đặc biệt quan trọng. Ngoài các bản vá được phát hành rộng rãi, nhánh dịch vụ LDR còn chứa các hotfix.
-
Tệp MANIFEST (.manifest) và các tệp MUM (.mum) được cài đặt cho từng môi trường được liệt kê riêng trong phần "Thông tin dành cho Windows 7 và Windows Server 2008 R2 tệp bổ sung".
-
MUM và tệp MANIFEST cũng như các bảo mật liên quan (.cat) các tệp danh mục là rất quan trọng để duy trì trạng thái của cấu phần được Cập Nhật. Các tệp danh mục bảo mật không được liệt kê thuộc tính được ký bằng chữ ký số của Microsoft.
Đối với tất cả các phiên bản dựa trên x86 được hỗ trợ của Windows 7
File name |
File version |
File size |
Ngày |
Giờ |
Nền |
Nsi.dll |
6.1.7600.16385 |
8.704 người |
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 |
Đối với tất cả phiên bản dựa trên x64 được hỗ trợ của Windows 7 và Windows Server 2008 R2
File name |
File version |
File size |
Ngày |
Giờ |
Nền |
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 người |
05-Feb-2014 |
02:03 |
x86 |
Winnsi.dll |
6.1.7601.22590 |
16,896 |
05-Feb-2014 |
02:04 |
x86 |
Đối với tất cả phiên bản dựa trên IA-64 được hỗ trợ của Windows Server 2008 R2
File name |
File version |
File size |
Ngày |
Giờ |
Nền |
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 người |
05-Feb-2014 |
02:03 |
x86 |
Winnsi.dll |
6.1.7601.22590 |
16,896 |
05-Feb-2014 |
02:04 |
x86 |
Thông tin tệp bổ sung dành cho Windows 7 và Windows Server 2008 R2
Các tệp bổ sung cho tất cả các phiên bản dựa trên x86 được hỗ trợ của Windows 7
File name |
Package_1_for_kb2847346~31bf3856ad364e35~x86~~6.1.1.0.mum |
Phiên bản tệp |
Not Applicable |
Kích thước tệp |
1.822 người |
Date (UTC) |
05-Feb-2014 |
Time (UTC) |
06:35 |
Nền |
Not Applicable |
Tên tệp |
Package_2_for_kb2847346~31bf3856ad364e35~x86~~6.1.1.0.mum |
Phiên bản tệp |
Not Applicable |
Kích thước tệp |
1.805 người |
Date (UTC) |
05-Feb-2014 |
Time (UTC) |
06:35 |
Nền |
Not Applicable |
Tên tệp |
Package_3_for_kb2847346~31bf3856ad364e35~x86~~6.1.1.0.mum |
Phiên bản tệp |
Not Applicable |
Kích thước tệp |
1,807 |
Date (UTC) |
05-Feb-2014 |
Time (UTC) |
06:35 |
Nền |
Not Applicable |
Tên tệp |
Package_for_kb2847346_rtm~31bf3856ad364e35~x86~~6.1.1.0.mum |
Phiên bản tệp |
Not Applicable |
Kích thước tệp |
1.459 |
Date (UTC) |
05-Feb-2014 |
Time (UTC) |
06:35 |
Nền |
Not Applicable |
Tên tệp |
Package_for_kb2847346_sp1~31bf3856ad364e35~x86~~6.1.1.0.mum |
Phiên bản tệp |
Not Applicable |
Kích thước tệp |
1,918 |
Date (UTC) |
05-Feb-2014 |
Time (UTC) |
06:35 |
Nền |
Not Applicable |
Tên tệp |
X86_dfca12963d5c03edca970b29ad513eb4_31bf3856ad364e35_6.1.7601.22590_none_ff32d7aebbbb6891.manifest |
Phiên bản tệp |
Not Applicable |
Kích thước tệp |
699 |
Date (UTC) |
05-Feb-2014 |
Time (UTC) |
06:35 |
Nền |
Not Applicable |
Tên tệp |
X86_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_749890603f18301d.manifest |
Phiên bản tệp |
Not Applicable |
Kích thước tệp |
8,301 |
Date (UTC) |
05-Feb-2014 |
Time (UTC) |
06:38 |
Nền |
Not Applicable |
Tệp bổ sung cho tất cả phiên bản x64 dựa trên Windows 7 và Windows Server 2008 R2
Tên tệp |
Amd64_37e172e525713d1718cb98daea282913_31bf3856ad364e35_6.1.7601.22590_none_9888f3a0165278fe.manifest |
Phiên bản tệp |
Not Applicable |
Kích thước tệp |
1.048 |
Date (UTC) |
05-Feb-2014 |
Time (UTC) |
06:35 |
Nền |
Not Applicable |
Tên tệp |
Amd64_3839818617f8250fd6f59e35da1df9bd_31bf3856ad364e35_6.1.7601.22590_none_8fbf427f98b0d1cb.manifest |
Phiên bản tệp |
Not Applicable |
Kích thước tệp |
703 |
Date (UTC) |
05-Feb-2014 |
Time (UTC) |
06:35 |
Nền |
Not Applicable |
Tên tệp |
Amd64_a9af583825031567fe0548a9c2c728ab_31bf3856ad364e35_6.1.7601.22590_none_59ced916edddc9da.manifest |
Phiên bản tệp |
Not Applicable |
Kích thước tệp |
703 |
Date (UTC) |
05-Feb-2014 |
Time (UTC) |
06:35 |
Nền |
Not Applicable |
Tên tệp |
Amd64_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_d0b72be3f775a153.manifest |
Phiên bản tệp |
Not Applicable |
Kích thước tệp |
8.305 người |
Date (UTC) |
05-Feb-2014 |
Time (UTC) |
06:41 |
Nền |
Not Applicable |
Tên tệp |
Package_1_for_kb2847346~31bf3856ad364e35~amd64~~6.1.1.0.mum |
Phiên bản tệp |
Not Applicable |
Kích thước tệp |
1,832 |
Date (UTC) |
05-Feb-2014 |
Time (UTC) |
06:35 |
Nền |
Not Applicable |
Tên tệp |
Package_2_for_kb2847346~31bf3856ad364e35~amd64~~6.1.1.0.mum |
Phiên bản tệp |
Not Applicable |
Kích thước tệp |
2,237 |
Date (UTC) |
05-Feb-2014 |
Time (UTC) |
06:35 |
Nền |
Not Applicable |
Tên tệp |
Package_3_for_kb2847346~31bf3856ad364e35~amd64~~6.1.1.0.mum |
Phiên bản tệp |
Not Applicable |
Kích thước tệp |
2,015 |
Date (UTC) |
05-Feb-2014 |
Time (UTC) |
06:35 |
Nền |
Not Applicable |
Tên tệp |
Package_4_for_kb2847346~31bf3856ad364e35~amd64~~6.1.1.0.mum |
Phiên bản tệp |
Not Applicable |
Kích thước tệp |
2,036 |
Date (UTC) |
05-Feb-2014 |
Time (UTC) |
06:35 |
Nền |
Not Applicable |
Tên tệp |
Package_for_kb2847346_rtm~31bf3856ad364e35~amd64~~6.1.1.0.mum |
Phiên bản tệp |
Not Applicable |
Kích thước tệp |
1,467 |
Date (UTC) |
05-Feb-2014 |
Time (UTC) |
06:35 |
Nền |
Not Applicable |
Tên tệp |
Package_for_kb2847346_sp1~31bf3856ad364e35~amd64~~6.1.1.0.mum |
Phiên bản tệp |
Not Applicable |
Kích thước tệp |
2.830 người |
Date (UTC) |
05-Feb-2014 |
Time (UTC) |
06:35 |
Nền |
Not Applicable |
Tên tệp |
Wow64_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_db0bd6362bd6634e.manifest |
Phiên bản tệp |
Not Applicable |
Kích thước tệp |
4,690 |
Date (UTC) |
05-Feb-2014 |
Time (UTC) |
02:16 |
Nền |
Not Applicable |
Các tệp bổ sung cho tất cả phiên bản dựa trên IA-64 được hỗ trợ của Windows Server 2008 R2
Tên tệp |
Ia64_44d491142723affea686ec2fba3cb4ac_31bf3856ad364e35_6.1.7601.22590_none_dc26e555dbabe437.manifest |
Phiên bản tệp |
Not Applicable |
Kích thước tệp |
1.046 |
Date (UTC) |
05-Feb-2014 |
Time (UTC) |
06:35 |
Nền |
Not Applicable |
Tên tệp |
Ia64_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_749a34563f163919.manifest |
Phiên bản tệp |
Not Applicable |
Kích thước tệp |
8,303 |
Date (UTC) |
05-Feb-2014 |
Time (UTC) |
06:35 |
Nền |
Not Applicable |
Tên tệp |
Package_1_for_kb2847346~31bf3856ad364e35~ia64~~6.1.1.0.mum |
Phiên bản tệp |
Not Applicable |
Kích thước tệp |
2,029 |
Date (UTC) |
05-Feb-2014 |
Time (UTC) |
06:35 |
Nền |
Not Applicable |
Tên tệp |
Package_for_kb2847346_sp1~31bf3856ad364e35~ia64~~6.1.1.0.mum |
Phiên bản tệp |
Not Applicable |
Kích thước tệp |
1,446 |
Date (UTC) |
05-Feb-2014 |
Time (UTC) |
06:35 |
Nền |
Not Applicable |
Tên tệp |
Wow64_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_db0bd6362bd6634e.manifest |
Phiên bản tệp |
Not Applicable |
Kích thước tệp |
4,690 |
Date (UTC) |
05-Feb-2014 |
Time (UTC) |
02:16 |
Nền |
Not Applicable |
Giải pháp
Để khắc phục sự cố này, sử dụng một trong các giải pháp sau đây là trường hợp của bạn.
Giải pháp cho tình huống 1
Đảm bảo rằng các ứng dụng, chẳng hạn như ping.exe, không bị dừng. Thay vào đó, để ứng dụng tốt tắt.
Ngoài ra, nâng cấp lên Windows Server 2012. Vấn đề này được khắc phục trong Windows Server 2012. Khắc phục sự cố này ngăn dịch vụ NSI rò rỉ bộ nhớ bất kể cách ứng dụng bị dừng.
Giải pháp cho tình huống 2
Người phát triển phần mềm sẽ tạo nhiều ICMP xử lý để gửi yêu cầu ICMP. Nếu bạn phải gửi nhiều gói ICMP, bạn nên sử dụng khe cắm nguyên và trực tiếp gửi và nhận gói ICMP trên ổ cắm nguyên. Điều này sẽ cho hiệu suất nhanh nhất.
Giải pháp cho tình huống 3
Trong trường hợp này, nếu bạn vô hiệu hoá và kích hoạt mạng, sử dụng bộ nhớ ngay lập tức giảm nhưng đã tăng đột biến ngắn sử dụng CPU.
Điều này xảy ra vì khi thay đổi thì địa chỉ IP hoặc giao dịch vụ NSI được thông báo của lõi. Dịch vụ NSI rồi cố gắng notifiy tất cả các khách hàng đăng ký thông báo. Dịch vụ cố gắng thông báo cho trình khách không tồn tại, RPC thông báo lỗi. Do đó, Dịch vụ NSI xóa tất cả thông tin trạng thái đã lưu cho quá trình khách hàng. Sau khi điều này xảy ra, bộ nhớ được loại bỏ.
Trong trường hợp này, một số 100.000 thông báo được đăng ký. Sau khi sự kiện xảy ra, tất cả bộ nhớ cho các khách hàng không hợp lệ được loại bỏ.
Vấn đề này được khắc phục trong Windows 8.