תופעות
אתה נתקל בבעיות ביצועים ביישומים ובשירותים בגירסאות שונות של Windows XP, Windows Vista, Windows server 2003, Windows Server 2008 ו-Windows Server 2008 R2. בנוסף, אתה מבחין בתופעות הבאות:
-
הזיכרון הזמין כמעט מותש.
-
מטמון קבצי המערכת צורכ את רוב ה-RAM הפיזי.
-
קיים נפח מתמשך וגבוה של בקשות קריאה במטמון לדיסק הקשיח.
סיבה
ניהול זיכרון במערכות הפעלה של Microsoft Windows משתמשת באלגוריתם מבוסס דרישה. אם ברצונך להשתמש בתהליך כלשהו ומשתמש בכמות גדולה של זיכרון, גודל ערכת העבודה (מספר עמודי הזיכרון ב-RAM הפיזי) של התהליך גדל. אם בקשות אלה הן רציפות ובלתי מסומנות, ערכת העבודה של התהליך תגדל כדי לצרוך את כל הRAM הפיזי. במצב זה, ערכות העבודה עבור כל התהליכים האחרים מועברות אל הדיסק הקשיח. אופן פעולה זה מקטין את הביצועים של יישומים ושירותים מאחר שעמודי הזיכרון נכתבים באופן רציף בדיסק הקשיח ונקראים מהדיסק הקשיח.
אופן פעולה זה חל גם על ערכת העבודה של מטמון קובץ המערכת. אם יש נפח גדול ומתמשך של בקשות קריאה המאוחסנים במטמון מכל תהליך או מכל מנהל התקן, גודל ערכת העבודה של מטמון קובץ המערכת יגדל כדי לעמוד בדרישה זו. מטמון קבצי המערכת צורכ את ה-RAM הפיזי. לכן, כמויות מספיקות של RAM פיזי אינן זמינות עבור תהליכים אחרים.
בגירסאות של 32 סיביות של מערכות ההפעלה של Microsoft Windows הקודמות ל-Windows Vista, ערכות העבודה של מטמון קובץ המערכת כוללות מגבלת זיכרון תיאורטית של פחות מ-1 ג'יגה-בית (GB). המגבלה של טווח הכתובות הווירטואליות מונעת מערכות העבודה של מטמון קבצי המערכת למצות את ה-RAM הפיזי.
בגירסאות של 32 סיביות של מערכות ההפעלה של Windows Vista, משאבי ליבה מוקצים באופן דינאמי. ערכת העבודה של מטמון קבצי המערכת גדלה כדי לצרוך את טווח הכתובות הווירטואליות של מצב הליבה על חשבון משאבי הליבה האחרים. המגבלה של טווח זיכרון זה קטנה מ-2 GB. אם המחשב כולל יותר מ-2 GB של RAM פיזי, למטמון אין אפשרות למצות את כל הram הפיזי. עם זאת, המטמון יכול למצות את שטח הכתובות הווירטואליות בקרנל. פעולה זו עלולה לגרום לכשלי הקצאה עבור רכיבי קרנל אחרים.
בגירסאות של 64 סיביות של מערכות ההפעלה של Windows, הגודל של טווח הכתובות הווירטואליות גדול בדרך כלל מ-RAM הפיזי. במצב זה, ערכת העבודה של מטמון קובץ המערכת יכולה להגדיל כדי לצרוך את רוב ה-RAM הפיזי.
פתרון
אלגוריתמי ניהול הזיכרון במערכות ההפעלה Windows 7 ו-Windows Server 2008 R2 עודכנו כדי לטפל בבעיות רבות במטמון הקבצים שנמצאו בגירסאות קודמות של Windows. קיימים רק מצבים ייחודיים מסוימים שבהם עליך ליישם שירות זה במחשבים שבהם פועל Windows 7 או Windows Server 2008 R2.
כיצד לקבוע אם המערכת שלך מושפעת
כדי לקבוע אם המערכת שלך מושפעת מבעיה זו, התקן את הכלי SysInternals RamMap. באפשרותך להשיג את הכלי מאתר האינטרנט הבא של Windows Sysinternals:
http://technet.microsoft.com/en-us/sysinternals/ff700229
כאשר אתה מפעיל את הכלי, בחר את האפשרות השתמש בספירות . פעולה זו מציגה כמה עמודות המציגות את התבנית הנוכחית של שימוש בזיכרון. לחץ על העמודה הפעילה כדי למיין לפי מספר הבתים הנמצאים בשימוש, ושים לב לשימוש העליון ישירות מתחת לסכום הכולל.
אם מספר השימוש העליון הוא "Metafile" ואם נעשה שימוש בחלק גדול של זיכרון זמין, אתה נתקל בבעיית מטמון קבצי המערכת המתוארת בסעיף ' מאפייני הבעיה '. באפשרותך לאמת זאת על-ידי שימוש ב'צג הביצועים ' כדי לנטר את המונים התושבים של מטמון Memory\System ולראות שהמטמון צומח ברציפות לאורך זמן.
איור 1. דוגמה RamMap פלט שבו המחשב נתקל בבעיה.
איור 2. דוגמה RamMap פלט שבו המחשב אינו נתקל בבעיה.
אם המונה ' בתים תושבי מטמון Memory\System ' בצג הביצועים מציג מגמה כלפי מעלה לאורך זמן, המחשב נתקל בבעיה, כפי שמוצג באיור 3.
איור 3. לדוגמה, פלט צג ביצועים שבו המחשב חווה את הבעיה לאורך זמן.
דרישות הפעלה מחדש
אין צורך להפעיל מחדש את המחשב בעת התקנה, הסרת התקנה או שימוש בשירות זה.
אם אתה קורא מאמר זה מאחר שאתה עובד עם לקוח שמאמין שהבעיה משפיעה על הבעיה, בצע שלבים אלה כדי לסייע בפתרון הבעיה.
-
ודא שנתוני הפלט של RamMap של הלקוח, perfmon או poolmon מאשרים שמטמון קובץ המערכת דורש את רוב ה-RAM הפיזי, כפי שתואר קודם לכן.
-
כדי להשיג את שירות המטמון הדינאמי של Windows, הורד אותו כאן.
-
להלן כמה הגדרות רישום של מטמון דינאמי:
שרתי קבצים, ייתכן שתרצה לנסות 1GB.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
"MaxSystemCacheMBytes" = dword: 00000400
"MinSystemCacheMBytes" = dword: 00000064
"SampleIntervalSecs" = dword: 0000003c
"CacheUpdateThresholdMBytes" = dword: 00000064
Exchange 2007, ייתכן שתרצה לנסות 500 MB:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
"MaxSystemCacheMBytes" = dword: 000001F4
"MinSystemCacheMBytes" = dword: 00000064
"SampleIntervalSecs" = dword: 0000003c
"CacheUpdateThresholdMBytes" = dword: 00000064
SQL 2005 ואילך, בעבר בעת עבודה עם הנדסת חשמל של SQL, השתמשנו ב-2GB:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
"MaxSystemCacheMBytes" = dword: 000007D0
"MinSystemCacheMBytes" = dword: 00000064
"SampleIntervalSecs" = dword: 0000003c
"CacheUpdateThresholdMBytes" = dword: 00000064
מידע נוסף
כדי לעקוף בעיה זו, השתמש בפונקציה GetSystemFileCacheSize API ובפונקציה API של SetSystemFileCacheSize כדי להגדיר את הערך המרבי או המזערי של ערכות העבודה של מטמון קבצי המערכת. השימוש בפונקציות אלה הוא השיטה הנתמכת היחידה כדי להגביל את צריכת הזיכרון הפיזי על-ידי מטמון קובץ המערכת.
שירות המטמון הדינאמי של Microsoft Windows הוא שירות לדוגמה הממחיש אסטרטגיה אחת לשימוש ברכיבי Api אלה כדי למזער את ההשפעות של בעיה זו.
התקנה ושימוש בשירות המטמון הדינאמי של Microsoft אינה גורמת לאי התמיכה של Microsoft Windows. שירות זה וקוד המקור שלו מוצגים כדוגמה לשימוש בממשקי Api נתמכים של Microsoft כדי לצמצם את התפתחותם של מטמון מערכת הקבצים.
באפשרותך להשיג את השירות ואת קוד המקור מאתר האינטרנט הבא של Microsoft:
משאבים נוספים
קרא פרקים 9 (ניהול זיכרון) ו-10 (מנהל מטמון) של Windows פנימיים, המהדורה החמישית.
ניהול זיכרון (בעיות במטמון מערכת גדולות) רשומת בלוג
פרסום בבלוג בנושא העתקת קבצים גדולים ואיטיים
מגבלות זיכרון עבור מהדורות Windows
976618 אתה נתקל בבעיות ביצועים ביישומים ושירותים כאשר המטמון של קבצי מערכת צורכ את רוב ה-RAM הפיסי של ה-RAM
918483 כיצד להפחית את הדפדוף של זיכרון מאגר המאגרים בגירסת 64-bit של SQL server
895932 דברים שכדאי לשקול לפני שאתה
232271
מפעיל את מצב מטמון המערכת ב-windows XP
מצב
Microsoft אישרה שזוהי בעיה במוצרי Microsoft המופיעים בסעיף "חל על".