והפעם גם משהו קליל ומהיר, ונראה גם איך מתוך תופעות של TCP אנחנו יכולים לאתר בעיות תוכנה.
מבנה הרשת (החלק הרלבנטי לתקלה)
הרשת מבוססת על Clients בטווח כתובות 192.168.200.0/24, שפונה ל- VIP (Virtual IP) של Load balancer מרוחק בכתובת 192.168.3.50. לצורך הדוגמא נתייחס לכתובת זו ככתובת השרת (בבדיקה בפועל נבדק גם צד השרת של המערכת)
מה הייתה הבעיה:
בעבודה של HTTP Client מול HTTP Server, תוכנת תיירות מסוימת, מקבלים תלונות על שבמסכים מסויימים ה- Client "קופא", כלומר עובדים במסך מסויים, ופתאום המסך "קופא" ל-10-15 שניות, ואז המסך "משתחרר" וממשיכים לעבוד כרגיל.
תהליך הפתרון:
- שלב ראשון – בדיקות סטנדרטיות.
- כשניגשים לפתרון הבעיה, קודם כל ננטרל את בעיות הרשת הפשוטות – עומסים, שגיאות, השהיה ושינויים בהשהייה (Delay/Jitter).
- איך נעשה את זה? פשוט מאוד. נבדוק את העומס על קווי התקשורת הרלוונטיים, בכלים של SNMP או ב- Wireshark, ונוודא שאין בעיות כאן (איך לעשות את זה הסברתי במאמרים קודמים)
- שלב שני – תופעות היכולות לגרום לבעייה.
- ניכנס למסך ה- Expert information (תחת תפריט Analyze), וקיבלנו את המסך הבא (את שורת ה- Note של ה- Retransmissions פתחתי כדי לראות מה נמצא שם):
- ומה שאנחנו רואים זה שהתופעה העיקרית (במקרה הזה היחידה) שיכול ה לגרום לבעייה היא חמש Packet של Retransmissions, ואפילו יותר מעניין, הם מופיעים אחד אחרי השני.
- מקליק על אחד ה- Packets, מה שמביא אותי למסך ה- Capture הראשי, ואני רואה משהו מעניין.
- ניכנס למסך ה- Expert information (תחת תפריט Analyze), וקיבלנו את המסך הבא (את שורת ה- Note של ה- Retransmissions פתחתי כדי לראות מה נמצא שם):
- ב- 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 חדש, ומה שהמשתמש רואה זה שהמסך "השתחרר".
- איך אנחנו יודעים שזאת לא בעיית תקשורת?
- אין תופעות של עומס או Packet Loss
- הבעייה קוראת רק במסכים מסויימים, ומסתבר שכולם פונים לאותו מקום בתוכנה/בסיס הנתונים
- אין תופעות חריגות נוספות במסך ה- Expert
ובכלל, כדאי בבדיקות תוכנה לבדוק אם הבעייה קוראת בפעולות מסוימות, במסכים מסוימים או בזמנים מסוימים. בהרבה מאוד מקרים נאתר את התקלה כבר בשלב הזה.