none
ASYNC Network IO RRS feed

  • שאלה

  • אתמול נתקלתי בבעיה אצל לקוח,

    הם מתלוננים על בעיות ביצועים של המערכת ובעיקר בשעות עומס.
    תישאול על sys.dm_exec_requests מחזיר לי כ 50 בקשות שכרגע רצות על השרת כולם בסטאטוס Suspended עם wait type : async network io.
    עשינו בדיקה וכאשר מריצים דוח באפליקציה לאחר החזרת תוצאות הבקשה עוברת למצב suspended וכעת כל בקשה במצב זה עדיין מחזיקה בזיכרון שקיבלה וכל שיאלתה אחרת שנכנסת סובלת מזה.

    מדובר באפליקציה Magic, שוחחתי עם היועץ שלהם לMagic הוא אמר שהוא מכיר את הבעיה אבל אין לו איך לפתור אותה כי אין לו גישה לקוד האפליקציה.

    יש למישהו רעיון לפתרון? 
    או אולי רעיון אחר לבעיה?

    יום רביעי 02 אפריל 2014 06:52

תשובות

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

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

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

    בכל מקרה ASYNC_NETWORK_IO היא בעיה מוכרת. תעבור על הקישורים הבאים, הם אמורים לעזור אולי.

    http://www.confio.com/logicalread/sql-server-async-network-io-wait-type/#.Uz2fuXBHJUk

    http://www.slideshare.net/Confio/async-networkio


    [Personal Site] [Blog] [Facebook]signature

    • הוצע כתשובה על-ידי Eran Sharvit יום ראשון 06 אפריל 2014 09:05
    • סומן כתשובה על-ידי Eran Sharvit יום שלישי 08 אפריל 2014 11:18
    יום חמישי 03 אפריל 2014 17:56
    מנחה דיון

כל התגובות

  • בקרוב מומחי הקהילה ינסו לעזור.

    תודה.


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

    יום חמישי 03 אפריל 2014 12:16
  • * אתה מספר לנו על בדיקות ולא מספק לנו תוצאות. אם לך קשה לנטר את הבעיה לוקלית אז לנו בפורום הרבה יותר קשה :-) כל דבר אנחנו צריכים להעביר דרכך.

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

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

    בכל מקרה ASYNC_NETWORK_IO היא בעיה מוכרת. תעבור על הקישורים הבאים, הם אמורים לעזור אולי.

    http://www.confio.com/logicalread/sql-server-async-network-io-wait-type/#.Uz2fuXBHJUk

    http://www.slideshare.net/Confio/async-networkio


    [Personal Site] [Blog] [Facebook]signature

    • הוצע כתשובה על-ידי Eran Sharvit יום ראשון 06 אפריל 2014 09:05
    • סומן כתשובה על-ידי Eran Sharvit יום שלישי 08 אפריל 2014 11:18
    יום חמישי 03 אפריל 2014 17:56
    מנחה דיון
  • היי,

    תודה רבה על התגובה!

    לא שוחחתי עם התמיכה של Magic ישירות אלה עם היועץ שלהם (בעבר עובד Magic) וזה מה שהוא אמר, שהוא לא יכול לגשת לקוד ולעשות שינויים כרצונו, כרגע חברת Magic עצמה מנסה להבין את מקור הבעיה ע''י קבצי לוג שהם אספו אבל עוד לא יצרו איתי קשר.

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

    שיאלתה על requests מביאה לי כ-50 בקשות במצב suspended ושכל בקשה עדיין מחזיקה בכמות הזיכרון שקיבלה, כל שיאלתה אחרת שנכנסת סובלת מזה מכמות זיכרון נמוך ולוקח לה הרבה זמן עד שהיא מחזירה תוצאות (גם ישירות על השרת), רוב הבקשות מחזיקות כ175 - 200mb השאלה שלי האם ההנחה שלי נכונה? יצא למישהו להיתקל בכזה מצב?


    יום ראשון 06 אפריל 2014 13:09
  • היי

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

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


    [Personal Site] [Blog] [Facebook]signature

    יום ראשון 06 אפריל 2014 15:58
    מנחה דיון
  • אהלן 

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

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

    בגדול הרעיון לגרום לשרת לא להמתין לאפליקציה ו/או התעבורה, אם על ידי האטת השרת SQL ואם על ידי האצת הגורמים החיצוניים בין השרת לאפליקציה. הפתרון הנכון הוא לשפר את האפליקציה הרבה פעמים אבל אנחנו יוצאים מנקודת מוצא כרגע שהאפליקציה היא קופסא שחורה: (1) אני ממליץ לנסות להגדיר עבודה עם מעבד בודד ולבדוק מה קורה כשאין עבודה מקבילית. (2) תבדוק את הרשת אם אפשר לשפר בין האפליקציה לשרת (3) במקרה של שימוש ב IIS כחלק מהתהליך נסה לנהל POOL-ים כך שה IIS יעבוד עם פחות. (4) חלוקה לדוחות קטנים יותר אמורה  עזור. (5) אני לא חושב שזה יעזור או קשור אבל נעשה גם ביטול חומת האש לצורך הבדיקה (אולי אתם יכולים לנסות, כאמור לדעתי זה לא קשור אבל אני לא סגור מה וכיצד פועלת האפליקציה של חומת האש). (6) כתיבת קוד C קצר שמפרק את המידע לחבילות קטנות (קוד משולב בתוכנה). (7) יש רכיב בשם Flow Editor שמאפשר לבנות תהליכים שונים (לא רשום לי מה הקשר ומה נעשה אתו ואני לא זוכר אבל הוא היה חלק מהפתרונות שנבדקו לעקוף את הבעיה כנראה).

    * נקודות שלא עלו וכרגע אני זורק באוויר:  (1) שימוש בשרת מקומי היכן שהאפליקציה נמצאת תוך שימוש ברפליקציה למשל. הגישה תהיה אל השרת המקומי. (2) שני קישורים שכדאי לבדוק:

    הפורום הרשמי (אני חושב שזה המקום הרשמי) בו אפשר לשאול מפתחים שעוסקים עם התכנה:
    http://israelforum.magicsoftware.com

    מדיניות התמיכה במוצרים:
    http://www.magicsoftware.com/he/%D7%9E%D7%93%D7%99%D7%A0%D7%99%D7%95%D7%AA-%D7%AA%D7%9E%D7%99%D7%9B%D7%94-%D7%91%D7%9E%D7%95%D7%A6%D7%A8%D7%99%D7%9D

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

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


    [Personal Site] [Blog] [Facebook]signature

    יום שני 07 אפריל 2014 19:18
    מנחה דיון
  • קודם כל רב תודות על התגובות וההצעות לפתרון!

    כפי שאמרתי כבר פנינו לחברת מגיק עם הבעיה ומחכים לתגובה מהם לטיפול בנושא.

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

    תודה!

    יום רביעי 09 אפריל 2014 09:08
  • בכיף , בהצלחה

    אתה מוזמן לספר לנו על הפתרון הסופי שמצאת ואם הוא שונה מאלו שהצעתי.

    מצאתי את כל התכתובות שלנו בנושא בינתיים (היו תחת תיבת מייל ישנה מאוד).


    [Personal Site] [Blog] [Facebook]signature

    יום חמישי 10 אפריל 2014 14:32
    מנחה דיון