כוונון ביצועים ב SQL Server ל- DBA העסוק – חלק 4 - ilDBA Portal

כוונון ביצועים ב SQL Server ל- DBA העסוק – חלק 4

19/02/2014 | פורסם על ידי

מאמר זה הוא מאמר רביעי בנושא. בחלק זה של המאמר נדגים איך מנתחים את הפלט של השאילתה שמביאה את ה-Wait Events הארוכים ביותר הקשורים ל-Network waits, כלומר רשת.

תזכורת למאמרים הקודמים בסדרהחלק 1, חלק 2, חלק 3.

רשימת Wait Events נפוצים ופתרונות- רשת

Events מסוג ASYNC_NETWORK_IO ו\או NET_WAITFOR_PACKET – מצביעים על כך שרוחב פס הרשת הגיע לרוויה או שה-throughput של הרשת לא מספיק. לחילופין ה-Client לא צורך את התוצאות הנשלחות ע"י SQL Server באופן מידי, למשל בגלל חישובים מורכבים (למשל ע"י Datareader של ADO.NET).

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

בשביל לבצע אופטימיזציה של תנועת הרשת בן האפליקציה לבסיס הנתונים בצע את השינויים הבאים:

  • בדוק שרוחב הפס בכרטיסי הרשת של ה- Client והשרת זהים ואנו משתמשים ב full duplex.
  • שימוש בקריאה ל- Stored Procedures במקום שימוש במחרוזות. כמובן עדיף גם מבחינת אבטחה.
  • לבקש רק את המידע שצריך ולא את עמודות הטבלה שלא נדרשות.
  • לוגיקה שהיא אינטנסיבית מבחינת שימוש בנתונים, להעביר ל- SQL Server כ- Stored Procedures, בשביל לצמצם תעבורת רשת.

בשביל לבדוק בעיות רשת נשתמש ב- Performance Monitor, (הפעלה ע"י הפקודה perfmon) בשרת ה- SQL. נבחר את האובייקט Network adapter וב- Counter הוא Bytes Total/sec, שמשמעותו מספר ה- Bytes לשנייה שעוברים דרך כרטיס הרשת. נבצע ניטור לאורך פרק זמן כלשהו כאשר המערכת מועמסת.

monitor_input monitor_output

הגרף המתקבל פחות מעניין אלא השורה מתחת לגרף של מינימום, ממוצע ומקסימום Bytes Total/sec ומהו משך הזמן (Duration) של הניטור.

monitor_output

הכלל : הערך הממוצע (Average בצילום מסך) צריך להיות קטן ב 50% מקיבולת כרטיס הרשת. דוגמא: אם לשרת פיסי כרטיס רשת יעודי של 1G, אזי הערך הממוצע צריך לנוע בן Bytes 0 ל500 מליון Bytes. שימו לב שאם מדובר בשרת להב (blade) שמכיל עוד 3 שרתים, ויש כרטיס רשת אחד של 1G ,שמשרת את שלושת השרתים אזי קיבולת כרטיס הרשת המקסימלית של כל שרת תהיה 1G/3 Bytes. כ330 מליון Bytes. לכן גודלו המקסימלי של הערך הממוצע יהיה לא יותר מ150 מליון Bytes.

עד כאן למאמר זה.

להתראות,

ד. יצחק.

The following two tabs change content below.

דוד יצחק

דוד יצחק , DBA אפליקטיבי ותשתיתי של SQL Server, Oracle ,Sybase Anywhere מזה 17 שנה עם התמחות בשיפור ביצועים, שרידות, זמינות גבוהה, רפלקציה, תוספים גיאוגרפיים, אבטחת מידע ו-Business Intelligence. הוא מרכז את פורום DBA צפון של ilOUG ומרצה בפורום משתמשי SQL Server.

השאר תגובה:

שם (חובה):
אימייל (לא יפורסם) (חובה):
תגובה (חובה):

*



מאמרים קשורים

איך לבצע Sizing DB ב-Datacenter בארגונך בקלות (חלק א')

כחלק מהטמעות מוצרי IT תשתיתיים (כגון FWDB, מוצרי גיבוי, חוות Storage, מוצרי שו"ב ועוד…) בארגוני, אנו נדרשים המון פעמים לענות על שאלות לספקים כגון : מה גודל הכולל של ה –  Datacenter  ? מה חלוקת גודל ה [...]
מבוא

מבוא לבעיות ביצועים באורקל

The following two tabs change content below.BioLatest Posts עודד רז עודד רז, מנכ"ל חברת בריליקס ומייסד אתר זה. עודד הוא Oracle ACE Director ואחד מה-DBA-ים הבכירים ביותר בישראל, עם מעל 15 שנות ניסיון כ-DBA תשתיתי ואפליקטיבי. לעודד [...]

ה-SQL Performance Analyzer ב-Real Application Testing

בפוסט הקודם הזכרתי בקצרה את ה-SQL Performance Analyzer, בפוסט הזה אני אציג את ה-SPA, יתרונות וחסרונות של המוצר ואיך כדאי להשתמש [...]

מבוא ל- Real Application Testing

הפעם רציתי לסקור feature שלם שנקרא RAT (או בשמו המלא Real Application Testing). ה- feature הזה הוא database option של Oracle Enterprise Edition והוא לא חדש בכלל. הוא הוצג ב- 11gR1 וגם נמצא בשימוש לא מועט בעולם. משום מה, אצלנו בארץ לא יוצא [...]
Copyright 2019 ilDBA Portal. Brought to you by Brillix - Israel Leading DBA company. Sponsored by: DBSnaps - Database Video Tutorialss
Website Security Test
%d בלוגרים אהבו את זה: