תופעות
נניח שיש לך יישום או כלי שבו פועל ב- Windows 7 או Windows Server 2008 R2, היישום או הכלי מבצע אחת או יותר מהמשימות הבאות:
-
פיקוח על שרת אחר באמצעות ICMP או ping.exe
-
הפעלת תהליכים מרובים לזמן קצר לשם ביצוע משימה, ואת התהליך יופסק לאחר מכן
-
ביצוע כל פעילות רשת, ואת התהליך יופסק לאחר מכן על-ידי יישום אחר או קובץ script
במצב זה, לאחר השרת שלך פועל ברציפות במשך מספר שעות או מספר ימים, אתה מבחין כי השירות ממשק חנות רשת (NSI) דליפת זיכרון. בנוסף, אתה מבחין בתופעות הבאות:
-
אם תפסיק את תוכנת מעקב, מפסיק דליפת הזיכרון.
-
אם להפסיק את היישום ולאחר מכן הפעל מחדש את המחשב, לא דליפת זיכרון מתרחשת בשירות NSI.
-
במקרים מסוימים, אם תבטל ולאחר מכן הפעל את מתאם הרשת, אתה מבחין דקר פתאומי של השימוש ב- CPU על ידי השירות NSI. בנוסף, השימוש בזיכרון מיד מגיע נפילות מ- 1 או 2 ג'יגה-בתים ל- 200 או 300 מגה-בתים.
בעיה זו עלולה להתרחש בכל אחד מהתרחישים הבאים.
תרחיש 1
אם יישום כגון ping.exe בכפייה הופסק, שאפשרי הפונקציה IcmpCloseHandle לא נקרא. במקרה זה, השירות NSI עשויה לזהות כי אין לקוח זמין. לכן, השירות ללא הרף ושלח הודעות אודות הודעות ICMP. מכיוון שהלקוח אינו קיים, רשימת ההודעות ממשיכה להגדיל. לא לקבל לנקות את הרשימה עד הפסקת השירות NSI.
כדי לשלוח איתות (ping) של, עליך לפתוח את נקודת האחיזה של ICMP, ולאחר מכן השתמש בפונקציות אלה עוזר IP אחרים כדי לשלוח ולקבל נתונים ICMP:
לאחר שהיישום שולח האיתות, עליך לקרוא לפונקציה IcmpCloseHandle כדי לסגור את נקודת האחיזה של ICMP.
תרחיש 2
מפתח תוכנה יוצר יישום כדי לשלוח ולקבל הודעות ICMP באמצעות ממשקי Api של IPHlelper. אם רק אחד אחיזה ICMP משמש לשליחת הודעות ICMP עבור לקוחות מרובים, ואינו אם היא עושה זאת אותו בקצב גבוה מאוד, ה-API של IPHelper אשר מקבל הודעה כאשר מתקבלת הודעה לא ניתן לשמור על המהירות. במקרה זה, אתה מבחין הזיכרון שירות NSI ממשיך לגדול המואצת. בנוסף, אתה מבחין גבוה ב- cpu על ידי השירות NSI (nsisvc.dll).
תרחיש 3
יש לך יישום או שירות ישירות או בעקיפין המשתמש בפונקציות של עוזר IP. היישום מפסיק או שהוא נעצר, ולצאת אותו לא באופן תקין כאשר כל רישום הדיווחים אינו מבוטל (CancelMibChangeNotify2). במקרה זה, השרת NSI שומר הרישום ממתינים עבור התהליך הופסק. אם יש מופעים רבים של יישום stoppage, השירות NSI תהיה רישומים lingering רבים. למצב אסינכרונית של RPC ומידע אחר מתוחזק עבור כל רישום. פעולה זו מוסיפה השימוש בזיכרון. בדרך כלל, רישומים אלה מתבצעות עבור שינוי של ממשק או שינוי כתובת ה-IP של שידור ליעד בודד. אם אין שינוי במצב, רישומים אלה עדיין נשמר.
נעשה שימוש בפונקציות ההודעות הבאות במהלך תהליך הרישום:
הסיבה כי יישומים רבים לא להתקשר (CancelMibChangeNotify2) או להפסיק את התהליך הנדונה בנושא הפונקציה NotifyIpInterfaceChange באתר האינטרנט של Microsoft Network מפתחים.
לאחר NotifyIpInterfaceChange הפונקציה נקראת כדי להירשם לקבלת הודעות על שינוי, הודעות אלה ממשיכים להישלח עד unregisters היישום כדי לקבל הודעות על שינויים או עצירות יישום. אם היישום נפסק, המערכת unregisters באופן אוטומטי כל רישום עבור הודעות על שינוי. אנו ממליצים שתגדיר יישום במפורש ביטול רישום להודעות שינוי לפני שהוא מפסיק.
עבור כל רישום עבור דיווח, שתבצע גם להקצות כמות מסוימת של זיכרון מאגר שאינו בקובץ החלפה (NPP) עבור התג NSpc.
סיבה
בעיה זו מתרחשת מאחר שהתהליך אוגרי לדיווח ויוצא ללא ביטול הרישום הראשון מתוך שירות NSI. לכן, דליפת רישום ב- NSI גורמת את דליפת הזיכרון בשירות NSI. בנוסף, NPP דליפת זיכרון ב- NSpc של תג הקשרי באמצעות ה-Proxy NSI (NSI.dll).
פתרון
מידע על תיקונים חמים
תיקון חם נתמך זמין מתוך התמיכה של Microsoft. עם זאת, תיקון חם זה מיועד לפתור רק את הבעיה המתוארת במאמר זה. יש להחיל תיקון חם זה רק במערכות שהתעוררה בהן הבעיה המתוארת במאמר זה. תיקון חם זה עשוי לעבור בדיקות נוספות. לכן, אם המערכת שברשותך לא נפגעה באופן חמור מבעיה זו, מומלץ להמתין לעדכון התוכנה הבא המכיל תיקון חם זה.
אם התיקון החם זמין להורדה, ישנו סעיף "הורדת תיקון חם זמינה" בראש מאמר Knowledge Base. אם מקטע זה אינו מופיע, פנה לשירות הלקוחות והתמיכה של Microsoft כדי לקבל את התיקון החם.
הערה אם בעיות נוספות מתרחשות או אם נדרש פתרון בעיות כלשהו, ייתכן שתצטרך ליצור בקשת שירות נפרדת. דמי התמיכה המקובלים יחולו על שאלות וסוגיות תמיכה נוספות אשר אינן מצריכות את התיקון חם הספציפי הזה. לקבלת רשימה מלאה של מספרי הטלפון של התמיכה ושירות הלקוחות של Microsoft או כדי ליצור בקשת שירות נפרדת, עבור אל אתר האינטרנט הבא של Microsoft:
http://support.microsoft.com/contactus/?ws=support
הערה הטופס "הורדת תיקון חם זמינה" מציג את השפות שעבורן התיקון החם זמין. אם אינך רואה את השפה שלך, הסיבה לכך היא שהתיקון חם אינו זמין עבור שפה זו.
דרישות מוקדמות
כדי להחיל תיקון חם זה, עליך Service Pack 1 עבור Windows 7 או Windows Server 2008 R2, מותקן.
דרישה להפעלה מחדש
עליך להפעיל מחדש את המחשב לאחר החלת תיקון חם זה.
מידע על החלפת התיקון החם
תיקון חם זה אינו מחליף כל תיקון חם שפורסם בעבר.
פרטי הקובץ
הגירסה האנגלית (ארה ב) של תיקון חם זה מתקינה קבצים הכוללים את התכונות המפורטות בטבלאות הבאות. התאריכים והשעות המתייחסים לקבצים הללו רשומים לפי זמן אוניברסלי מתואם (UTC). התאריכים והשעות עבור קבצים אלה במחשב המקומי שלך מוצגים בזמן המקומי, עם הפרש שעון הקיץ (DST) הנוכחי שלך. בנוסף, התאריכים והשעות עשויים אף להשתנות בעת ביצוע פעולות מסוימות על קבצים.
פרטי קובץ Windows 7 ו- Windows Server 2008 R2 והערות
חשוב תיקונים חמים של Windows 7 ו- Windows Server 2008 R2 חמים נכללים בחבילות זהה. עם זאת, תיקונים חמים בדף בקשת תיקון חם מפורטים תחת שתי מערכות ההפעלה. כדי לבקש את חבילת התיקון החם החלה על מערכות הפעלה אחד או שניים, בחר את התיקון החם שמופיע תחת "Windows 7/Windows Server 2008 R2" בדף. עיין תמיד בסעיף 'חל על' במאמרים כדי לקבוע את מערכת ההפעלה בפועל שחלה על כל תיקון חם.
-
ניתן לזהות את הקבצים החלים על מוצר, SR_Level (RTM, SPn), וענף שירות (LDR, GDR) על-ידי בדיקת מספרי גירסת הקובץ כמוצב בטבלה הבאה.
גירסה
מוצר
SR_Level
ענף שירות
6.1.760 0. 16 - xxx
Windows 7 ו- Windows Server 2008 R2
RTM
GDR
6.1.760 1. 22 - xxx
Windows 7 ו- Windows Server 2008 R2
SP1
LDR
-
ענפי שירות של GDR מכילים רק תיקונים שפורסמו בהיקף רחב כדי לטפל בהתפשטות של בעיות חשובות מאוד. ענפי שירות של LDR מכילים תיקונים חמים בנוסף לתיקונים שפורסמו בהיקף רחב.
-
קובצי MANIFEST (. manifest) וקובצי MUM (. mum) המותקנים עבור כל סביבה מפורטים בנפרד במקטע נוספים פרטי קובץ עבור Windows 7 ו- Windows Server 2008 R2".
-
MUM ו- MANIFEST, וקבצים קבצי קטלוג (. cat) המשויכים האבטחה, חשובים במיוחד לשמירה על מצב הרכיבים המעודכנים. קובצי קטלוג האבטחה, שעבורם לא מפורטות תכונות, חתומים בחתימה דיגיטלית של Microsoft.
עבור כל הגירסאות הנתמכות של Windows 7 המבוססות על x86
שם קובץ |
גירסת קובץ |
גודל קובץ |
תאריך |
שעה |
פלטפורמה |
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 |
עבור כל הגירסאות הנתמכות המבוססות על x64 של Windows 7 ו-Windows Server 2008 R2
שם קובץ |
גירסת קובץ |
גודל קובץ |
תאריך |
שעה |
פלטפורמה |
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 |
עבור כל הגרסאות הנתמכות המבוססות IA-64 של Windows Server 2008 R2
שם קובץ |
גירסת קובץ |
גודל קובץ |
תאריך |
שעה |
פלטפורמה |
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 |
מידע קובץ נוסף עבור Windows 7 ו- Windows Server 2008 R2
קבצים נוספים עבור כל הגירסאות מבוססות x86 הנתמכות של Windows 7
שם קובץ |
Package_1_for_kb2847346~31bf3856ad364e35~x86~~6.1.1.0.mum |
גירסת קובץ |
Not Applicable |
גודל קובץ |
1,822 |
תאריך (UTC) |
05-Feb-2014 |
שעה (UTC) |
06:35 |
פלטפורמה |
Not Applicable |
שם קובץ |
Package_2_for_kb2847346~31bf3856ad364e35~x86~~6.1.1.0.mum |
גירסת קובץ |
Not Applicable |
גודל קובץ |
1,805 |
תאריך (UTC) |
05-Feb-2014 |
שעה (UTC) |
06:35 |
פלטפורמה |
Not Applicable |
שם קובץ |
Package_3_for_kb2847346~31bf3856ad364e35~x86~~6.1.1.0.mum |
גירסת קובץ |
Not Applicable |
גודל קובץ |
1,807 |
תאריך (UTC) |
05-Feb-2014 |
שעה (UTC) |
06:35 |
פלטפורמה |
Not Applicable |
שם קובץ |
Package_for_kb2847346_rtm~31bf3856ad364e35~x86~~6.1.1.0.mum |
גירסת קובץ |
Not Applicable |
גודל קובץ |
1,459 |
תאריך (UTC) |
05-Feb-2014 |
שעה (UTC) |
06:35 |
פלטפורמה |
Not Applicable |
שם קובץ |
Package_for_kb2847346_sp1~31bf3856ad364e35~x86~~6.1.1.0.mum |
גירסת קובץ |
Not Applicable |
גודל קובץ |
1,918 |
תאריך (UTC) |
05-Feb-2014 |
שעה (UTC) |
06:35 |
פלטפורמה |
Not Applicable |
שם קובץ |
X86_dfca12963d5c03edca970b29ad513eb4_31bf3856ad364e35_6.1.7601.22590_none_ff32d7aebbbb6891.manifest |
גירסת קובץ |
Not Applicable |
גודל קובץ |
699 |
תאריך (UTC) |
05-Feb-2014 |
שעה (UTC) |
06:35 |
פלטפורמה |
Not Applicable |
שם קובץ |
X86_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_749890603f18301d.manifest |
גירסת קובץ |
Not Applicable |
גודל קובץ |
8,301 |
תאריך (UTC) |
05-Feb-2014 |
שעה (UTC) |
06:38 |
פלטפורמה |
Not Applicable |
קבצים נוספים עבור כל גירסאות מבוססות x64 הנתמכות של Windows 7 ו- Windows Server 2008 R2
שם קובץ |
Amd64_37e172e525713d1718cb98daea282913_31bf3856ad364e35_6.1.7601.22590_none_9888f3a0165278fe.manifest |
גירסת קובץ |
Not Applicable |
גודל קובץ |
1,048 |
תאריך (UTC) |
05-Feb-2014 |
שעה (UTC) |
06:35 |
פלטפורמה |
Not Applicable |
שם קובץ |
Amd64_3839818617f8250fd6f59e35da1df9bd_31bf3856ad364e35_6.1.7601.22590_none_8fbf427f98b0d1cb.manifest |
גירסת קובץ |
Not Applicable |
גודל קובץ |
703 |
תאריך (UTC) |
05-Feb-2014 |
שעה (UTC) |
06:35 |
פלטפורמה |
Not Applicable |
שם קובץ |
Amd64_a9af583825031567fe0548a9c2c728ab_31bf3856ad364e35_6.1.7601.22590_none_59ced916edddc9da.manifest |
גירסת קובץ |
Not Applicable |
גודל קובץ |
703 |
תאריך (UTC) |
05-Feb-2014 |
שעה (UTC) |
06:35 |
פלטפורמה |
Not Applicable |
שם קובץ |
Amd64_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_d0b72be3f775a153.manifest |
גירסת קובץ |
Not Applicable |
גודל קובץ |
8,305 |
תאריך (UTC) |
05-Feb-2014 |
שעה (UTC) |
06:41 |
פלטפורמה |
Not Applicable |
שם קובץ |
Package_1_for_kb2847346~31bf3856ad364e35~amd64~~6.1.1.0.mum |
גירסת קובץ |
Not Applicable |
גודל קובץ |
1,832 |
תאריך (UTC) |
05-Feb-2014 |
שעה (UTC) |
06:35 |
פלטפורמה |
Not Applicable |
שם קובץ |
Package_2_for_kb2847346~31bf3856ad364e35~amd64~~6.1.1.0.mum |
גירסת קובץ |
Not Applicable |
גודל קובץ |
2,237 |
תאריך (UTC) |
05-Feb-2014 |
שעה (UTC) |
06:35 |
פלטפורמה |
Not Applicable |
שם קובץ |
Package_3_for_kb2847346~31bf3856ad364e35~amd64~~6.1.1.0.mum |
גירסת קובץ |
Not Applicable |
גודל קובץ |
2,015 |
תאריך (UTC) |
05-Feb-2014 |
שעה (UTC) |
06:35 |
פלטפורמה |
Not Applicable |
שם קובץ |
Package_4_for_kb2847346~31bf3856ad364e35~amd64~~6.1.1.0.mum |
גירסת קובץ |
Not Applicable |
גודל קובץ |
2,036 |
תאריך (UTC) |
05-Feb-2014 |
שעה (UTC) |
06:35 |
פלטפורמה |
Not Applicable |
שם קובץ |
Package_for_kb2847346_rtm~31bf3856ad364e35~amd64~~6.1.1.0.mum |
גירסת קובץ |
Not Applicable |
גודל קובץ |
1,467 |
תאריך (UTC) |
05-Feb-2014 |
שעה (UTC) |
06:35 |
פלטפורמה |
Not Applicable |
שם קובץ |
Package_for_kb2847346_sp1~31bf3856ad364e35~amd64~~6.1.1.0.mum |
גירסת קובץ |
Not Applicable |
גודל קובץ |
2,830 |
תאריך (UTC) |
05-Feb-2014 |
שעה (UTC) |
06:35 |
פלטפורמה |
Not Applicable |
שם קובץ |
Wow64_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_db0bd6362bd6634e.manifest |
גירסת קובץ |
Not Applicable |
גודל קובץ |
4,690 |
תאריך (UTC) |
05-Feb-2014 |
שעה (UTC) |
02:16 |
פלטפורמה |
Not Applicable |
קבצים נוספים עבור כל הגירסאות המבוססות על IA-64 הנתמכות של Windows Server 2008 R2
שם קובץ |
Ia64_44d491142723affea686ec2fba3cb4ac_31bf3856ad364e35_6.1.7601.22590_none_dc26e555dbabe437.manifest |
גירסת קובץ |
Not Applicable |
גודל קובץ |
1,046 |
תאריך (UTC) |
05-Feb-2014 |
שעה (UTC) |
06:35 |
פלטפורמה |
Not Applicable |
שם קובץ |
Ia64_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_749a34563f163919.manifest |
גירסת קובץ |
Not Applicable |
גודל קובץ |
8,303 |
תאריך (UTC) |
05-Feb-2014 |
שעה (UTC) |
06:35 |
פלטפורמה |
Not Applicable |
שם קובץ |
Package_1_for_kb2847346~31bf3856ad364e35~ia64~~6.1.1.0.mum |
גירסת קובץ |
Not Applicable |
גודל קובץ |
2,029 |
תאריך (UTC) |
05-Feb-2014 |
שעה (UTC) |
06:35 |
פלטפורמה |
Not Applicable |
שם קובץ |
Package_for_kb2847346_sp1~31bf3856ad364e35~ia64~~6.1.1.0.mum |
גירסת קובץ |
Not Applicable |
גודל קובץ |
1,446 |
תאריך (UTC) |
05-Feb-2014 |
שעה (UTC) |
06:35 |
פלטפורמה |
Not Applicable |
שם קובץ |
Wow64_microsoft-windows-usermodensi_31bf3856ad364e35_6.1.7601.22590_none_db0bd6362bd6634e.manifest |
גירסת קובץ |
Not Applicable |
גודל קובץ |
4,690 |
תאריך (UTC) |
05-Feb-2014 |
שעה (UTC) |
02:16 |
פלטפורמה |
Not Applicable |
פתרון
כדי לעקוף בעיה זו, השתמש באחת מהדרכים הבאות לעקיפת הבעיה בהתאם לנסיבות.
דרכים לעקיפת הבעיה עבור תרחיש 1
ודא כי היישום, כגון ping.exe, לא בכפייה מופסק. במקום זאת, אפשר ליישום באופן תקין כיבוי.
לחילופין, השדרוג ל- Windows Server 2012. בעיה זו נפתרת 2012 שרת Windows. תיקון זה מונע את השירות NSI יש דליפת זיכרון ללא קשר כיצד לעצור את היישום.
דרכים לעקיפת הבעיה עבור תרחיש 2
מפתח תוכנה עליך ליצור מספר מטפלים ICMP כדי לשלוח בקשות ICMP. אם עליך לשלוח מספר גדול של מנות ICMP, אתה צריך להשתמש ב- sockets גולמיים ישירות ולשלוח ולקבל מנות ICMP ב- socket גולמיים. דבר זה יעניק הביצועים המהירים ביותר.
דרכים לעקיפת הבעיה עבור תרחיש 3
בתרחיש זה, אם תבטל את מתאם הרשת לזמין השימוש בזיכרון מיד מקטין אך יש דקר קצר של השימוש ב- CPU.
מצב זה מתרחש כאשר מתבצע שינוי כתובת ה-IP או את הממשק, השירות NSI הודעה על-ידי הליבה. שירות NSI לאחר מכן מנסה notifiy כל הלקוחות הרשומים עבור ההודעה. כאשר השירות מנסה להודיע תהליך ללקוח שאינו קיים, RPC דוחות שגיאה. לכן, השירות NSI ימחק את כל המידע מצב שנשמר עבור תהליך לקוח זה. לאחר שמצב זה מתרחש, הזיכרון מתפנה.
במקרה זה, רשומים מספר דיווחים מאות אלף. לאחר שהאירוע מתרחש, מתפנה כל הזיכרון עבור לקוחות אלה לא חוקי.
בעיה זו נפתרה ב- Windows 8.