en-UShe-IL
You are here:   Blog
Register   |  Login

Blog Archive:

Maximize
* Can be used in order to search for older blogs Entries

Search in blogs


Blog Categories:

Maximize
* Can be used in order to search for blogs Entries by Categories

Blog Tags:

Maximize
* Can be used in order to search for blogs by keywords

TNWikiSummit


Awared MVP 


 


Microsoft® Community Contributor 


Microsoft® Community Contributor


 Read first, before you you use the blog! Maximize
פבר14

Written by: ronen ariely
14/02/2012 11:16 RssIcon

בקריאה לפתרון מצב שקובץ הלוג התמלא בקריאות התברר לי כבר במבט ראשון שכל הודעות האזהרה והשגיאה מוכרות וידועות והפתרון בהתאם. בשבוע הקרוב אכתוב בלוג אחד או יותר לגבי שגיאות נפוצות שנראות בקובץ הלוגים של שרת ה SQL ונתחיל עם ההודעה:

A significant part of sql server process memory has been paged out. This may result in a performance degradation. Duration: 0 seconds. Working set (KB): 58868 committed (KB): 115472 memory utilization: 50%.

מעט הסבר ורקע

במצב ברירת המחדל שרת ה SQL משנה את צריכת הזיכרון שלו בצורה דינמית על בסיס הזיכרון שקיים במערכת ההפעלה. כאשר השרת צריך יותר זכרון אז הוא בודק מה הזכרון הזמין כרגע במערכת ההפעלה. על סמך נתון זה השרת מחליט בכמה מהזכרון הזמין הוא יכול לעשות שימוש. כאשר השרת אינו צריך את הזכרון שמוקצה לו כרגע הוא ישחרר אותו חזרה לטובת מערכת ההפעלה.

עם זה אנו יכולים לעקוף את התנהגות ברירת המחדל על ידי הגדרת זכרון מינימלי וזכרון מקסימלי לשימוש בהגדרות שרת ה SQL.

מקור הודעת השגיאה שלנו היא בעיה הקשורה לזכרון. למעשה הודעה זו אומרת לנו שהיתה לשרת בעיה בעקבותיה הוא נאלץ להעביר אינפורמציה מהזיכרון הפיזי הזמין RAM אל זכרון קשיח. שם אחר לזכרון הקשיח הוא "זכרון וירטואלי" או בשם שבו גם ההודעה משתמשת Paging"" (ראה קישור למטה). השרת מודע לכך שהעבודה עם הזכרון הפיזי שלנו הרבה יותר מהירה, ולכן מודיע לנו שעכשיו כשהוא יעשה שמוש בזכרון הוירטואלי תהיה פגיעה משמעותית באופן העבודה של השרת.

שרת ה SQL יודע לבצע חיתוך של הזכרון בכמה דרכים/סוגים:

1.      Signaled Trim

2.      Self Trim

3.      Hard Trim

ניתן לנטר את המצב של החזרת זכרון מהשרת אל מערכת ההעפלה בעזרת השאילתה הבאה:

select * from sys.dm_os_ring_buffers

החלק שיעניין אותנו בניטור הוא הטור ring_buffer_type של סוג חיתוך הזיכרון בו נעשה שימוש. אנו יכולים להתעלם מהרשומות בהם הנתון היה "RING_BUFFER_RESOURCE_MONITOR ". מקרים אלו מייצגים עבודה תקינה של השרת בו הזיכרון המיותר מוחזר אל מערכת ההפעלה. הגעה למצב של חיתוך קשיח (Hard Trim ) הוא מצב קיצוני של תקלה המצביע על חוסר קיצוני בזכרון. במקרה זה יש לנטר מה הגורם למצב הנוכחי (האם זו אפליקציה לקויה הזוללת את הזכרון או שפשוט הגיע הזמן לשדרג את הזכרון ולהוסיף כמה גיגה) 

חומר עזר:

מה זה זיכרון קשיח?

http://en.wikipedia.org/wiki/Paging