none
SQL server 2016 Wait type MEMORY_ALLOCATION_EXT RRS feed

  • שאלה

  • במהלך ניתור שאילתה "כבדה" על שרת שהוגדר לצורך שדרוג ל-SQL Server 2016(מ-2012), שמתי לב כי רב הזמן ה-Wait type הוא MEMORY_ALLOCATION_EXT. זהו SQL  Wait Type שכמעט לא נתקלתי בו בעבר ובהרצת אותה השאילתה על שרת ה-2012 הוא לא מופיע (או מופיע לפרקים קצרים כך ששאילתת הניטור לא מספיקה להציג).  הזכרון על השרת הוא של 64GB ול-SQL הוגדר maximum server memory של 52GB. האם Wait Type זה הדבר מצביע על  בעיה  בהגדרת השרת ?
    יום שני 27 פברואר 2017 08:02

תשובות

  • אהלן אייל

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

    נתחיל מהסוף, הוא לא מופיע בשרת הקודם מכיוון שהוא לא היה קיים עדיין :-)

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

    בו נתחיל מהתיאוריה והספרות הרשמית:
    https://msdn.microsoft.com/en-us/library/ms179984.aspx

    MEMORY_ALLOCATION_EXT Occurs while allocating memory from either the internal SQL Server memory pool or the operation system.

    ועתה כאשר אנחנו מבינים מתי האירוע קורה, אפשר לחשוב כיצד למטב את מסד הנתונים.

    מידע נוסף תוכל לקבל בקישור הבא אצל Paul Randal
    https://www.sqlskills.com/help/waits/memory_allocation_ext/

    > האם אתה מריץ את השרת תחת מכונה וירטואלית או containers ?

    > מה קורה עם האירוע של RESERVED_MEMORY_ALLOCATION_EXT ?
    הוא לא קפץ לכם באותה היזדמנות? הם בדרך אמורים להגיע ביחד

    > האם אתם עובדים עם פונקציות מובנות של CLR או UDF בצורה חזקה בזמן קפיצת האירוע?

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

    -- clar the waits statistic in order to start monitor
    DBCC SQLPERF ('sys.dm_os_wait_stats', CLEAR);
    GO
    
    -- 
    SELECT * FROM sys.dm_os_wait_stats
    WHERE [wait_type] = N'MEMORY_ALLOCATION_EXT' AND [waiting_tasks_count] > 0
    GO



    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]    [Linkedin]



    יום רביעי 01 מרץ 2017 14:55
    מנחה דיון