קייס סטאדי – תקלה 2

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

מבנה הרשת (החלק הרלבנטי לתקלה)

הרשת מבוססת על Clients בטווח כתובות 192.168.200.0/24, שפונה ל- VIP (Virtual IP) של Load balancer מרוחק בכתובת 192.168.3.50. לצורך הדוגמא נתייחס לכתובת זו ככתובת השרת (בבדיקה בפועל נבדק גם צד השרת של המערכת)

מה הייתה הבעיה:

בעבודה של HTTP Client מול HTTP Server, תוכנת תיירות מסוימת, מקבלים תלונות על שבמסכים מסויימים ה- Client "קופא", כלומר עובדים במסך מסויים, ופתאום המסך "קופא" ל-10-15 שניות, ואז המסך "משתחרר" וממשיכים לעבוד כרגיל.

תהליך הפתרון:

  1. שלב ראשון – בדיקות סטנדרטיות.
    1. כשניגשים לפתרון הבעיה, קודם כל ננטרל את בעיות הרשת הפשוטות – עומסים, שגיאות, השהיה ושינויים בהשהייה (Delay/Jitter).
    2. איך נעשה את זה? פשוט מאוד. נבדוק את העומס על קווי התקשורת הרלוונטיים, בכלים של SNMP או ב- Wireshark, ונוודא שאין בעיות כאן (איך לעשות את זה הסברתי במאמרים קודמים)
  2. שלב שני – תופעות היכולות לגרום לבעייה.
    • ניכנס למסך ה- Expert information (תחת תפריט Analyze), וקיבלנו את המסך הבא (את שורת ה- Note של ה- Retransmissions פתחתי כדי לראות מה נמצא שם):
      • ומה שאנחנו רואים זה שהתופעה העיקרית (במקרה הזה היחידה) שיכול ה לגרום לבעייה היא חמש Packet של Retransmissions, ואפילו יותר מעניין, הם מופיעים אחד אחרי השני.
      • מקליק על אחד ה- Packets, מה שמביא אותי למסך ה- Capture הראשי, ואני רואה משהו מעניין.
  • ב- Packet 275 רואים את ה- Retransmission הראשון בהפרש של 0.3 שניות מה- Packet הקודם, ואז רואים שכל Retransmission  מופיע בזמן שהוא בערך כפול מהקודם. זה יכול להיות פי 2, פי 2.5, פי 3 וכן הלאה – תלוי ב- TCP Stack שאיתו עובדים. תופעה זו קוראת ב- TCP כאשר אחד הצדדים לא מגיב והצד השולח, שלא מקבל את ה- Ack, מנסה 5 פעמים רצוף בזמן שהולך ועולה.
  • מה שרואים כאן, שאחרי 5 ניסיונות, שזה הזמן שה- TCP מנסה לשמור על ה- Connection "חי", ב- Packet 280 אנחנו רואים שה- Client שולח Syn חדש, מ- TCP Port 2258 (ה- Connection ש"נתקע" היה מ- TCP Port 2255), נפתח TCP Connection חדש, ומה שהמשתמש רואה זה שהמסך "השתחרר".
  1. איך אנחנו יודעים שזאת לא בעיית תקשורת?
    1. אין תופעות של עומס או Packet Loss
    2. הבעייה קוראת רק במסכים מסויימים, ומסתבר שכולם פונים לאותו מקום בתוכנה/בסיס הנתונים
    3. אין תופעות חריגות נוספות במסך ה- Expert

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