בדיקת ביצועי רשת עם iperf3 ו-netperf

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

היכולות שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1359
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

כיצד בדיקת ביצועי רשת עם iperf3 ו-netperf מזהה צווארי בקבוק

לפני שנצלול לסיבה לכך ששכפול PostgreSQL בין צמתים מפגר או מדוע העתקת קבצים מניבה 200 MB/s במקום 900 הצפויים, צריך מספרים. לא תחושות בטן, לא "זה מרגיש איטי" — אלא תפוקה, חביון ורעידות מדויקים. ללא כלים שיטתיים, מדידות כאלה הופכות לניחושים. מהנדסי DevOps המוסמכים שלנו עם שבע שנות ניסיון השלימו למעלה מ-50 פרויקטי בדיקת ביצועים ללקוחות בפינטק ובמסחר אלקטרוני. יישום בדיקות ביצועים סדירות מקצר את זמן חיפוש הבעיות ב-80%.

דוגמה עדכנית: בפרויקט של לקוח, שכפול PostgreSQL פיגר ב-20 שניות במצב סינכרוני. iperf3 הראה 8.5 Gbps על קישור 10G — בטווח התקין. אבל netperf TCP_RR החזיר רק 5,000 עסקאות/שנייה במקום 8,000 הצפויים. הסיבה הייתה חלוקת IRQ לא אופטימלית על המכונה הווירטואלית. לאחר קשירת תהליכים לליבות (taskset) והגדרת RPS, הבעיה נפתרה.

בדיקת עומס: הוראות שלב אחר שלב

  1. התקן את iperf3 על שני הצמתים (זמין במאגרי התוכנה).
  2. צד שרת: iperf3 -s -p 5201.
  3. לקוח: תפוקת TCP עם 4 זרמים: iperf3 -c <IP> -t 30 -P 4.
  4. בדיקת UDP עם רוחב פס קבוע: iperf3 -c <IP> -u -b 1G -t 30 --length 1400.
  5. ניתוח: השווה עם קיבולת הקישור הצפויה.

הנה ריצה בסיסית:

# на сервере iperf3 -s -p 5201
# на клиенте — TCP throughput
iperf3 -c 10.0.1.10 -p 5201 -t 30 -P 4
# UDP тест с фиксированной bandwidth (для проверки jitter и packet loss)
iperf3 -c 10.0.1.10 -u -b 1G -t 30 --length 1400

הדגל # на сервере iperf3 -s -p 5201 # на клиенте — TCP throughput iperf3 -c 10.0.1.10 -p 5201 -t 30 -P 4 # UDP тест с фиксированной bandwidth (для проверки jitter и packet loss) iperf3 -c 10.0.1.10 -u -b 1G -t 30 --length 1400 מאפשר זרמים מקבילים. זרם TCP יחיד ממעט לנצל קישור 10G בשל מגבלות גודל חלון TCP. ארבעה זרמים מקבילים נותנים תמונה מציאותית.

טעות נפוצה היא הרצת הבדיקה ללא התחשבות ב-MTU. אם קיים מנהרה (GRE, VXLAN, WireGuard) איפשהו בנתיב, ה-MTU האפקטיבי יורד. בדיקה עם -P 4 (מסגרות ענק) על רשת שאינה תומכת במסגרות ענק תציג פרגמנטציה או נפילות במקום תפוקה אמיתית. שגיאה אופיינית נוספת היא התעלמות מצווארי בקבוק של CPU: בבדיקות 10G+, מכונות וירטואליות נתקלות לעיתים קרובות במגבלות vCPU או בבעיות איזון IRQ. במקרים כאלה, קשירת תהליכים לליבות (taskset) והגדרת RPS/XPS עוזרת.

netperf נוח יותר לבדיקת חביון ודפוסי RPC:

# TCP_RR — request/response latency (критично для БД)
netperf -H 10.0.1.10 -t TCP_RR -l 30 -- -r 1,1
# TCP_STREAM — throughput
netperf -H 10.0.1.10 -t TCP_STREAM -l 30 -- -m 65536

--length 8972 מציג עסקאות/שנייה — מדד ש-iperf3 לא יכול לספק. עבור שכפול PostgreSQL או Redis, חשוב לדעת כמה סבבי תקשורת לשנייה הרשת יכולה לספק.

מה למדוד וכיצד לפרש

מדד כלי נורמה (Ethernet 10G, אותו מדף)
תפוקת TCP iperf3 # TCP_RR — request/response latency (критично для БД) netperf -H 10.0.1.10 -t TCP_RR -l 30 -- -r 1,1 # TCP_STREAM — throughput netperf -H 10.0.1.10 -t TCP_STREAM -l 30 -- -m 65536 9.2-9.8 Gbps
תפוקת TCP (מסגרות ענק 9k) iperf3 TCP_RR 9.7-9.9 Gbps
רעידות UDP iperf3 -P 4 < 0.1 ms
חביון TCP_RR netperf < 0.1 ms RTT
אובדן מנות @ 1G UDP iperf3 -P 4 --length 8972 0%

אם התפוקה בין שני שרתים באותו VLAN מראה 4-5 Gbps במקום 9+, אבחן ברצף: -u לבדיקת המהירות המוסכמת, -u -b 1G למונה שגיאות, ethtool eth0 על החיבור הפעיל לבדיקת שידורים חוזרים של TCP ואירועי zero-window.

תעד תוצאות בפורמט מובנה — iperf3 תומך בפלט JSON (ip -s link show eth0), נוח לאוטומציה ולאחסון קו בסיס:

iperf3 -c 10.0.1.10 -t 60 -P 4 -J > baseline_$(date +%Y%m%d).json 

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

מדוע כלים סטנדרטיים (ping, traceroute) אינם מתאימים להערכת ביצועים

ss -tin מציג את זמן ההקפה של מנת ICMP בודדת אך אינו מספק מידע על תפוקה או התנהגות תחת עומס מלא של הקישור. -J מציג רק את המסלול. להערכת ביצועים אמיתית, נדרשות בדיקות עומס המדמות תעבורה בפועל — TCP ו-UDP עם גדלי מנות ודפוסים שונים.

כיצד לפרש תוצאות ומתי לדאוג

בסס את ההערכה על קו בסיס שנלקח לאחר הגדרת הרשת. אם התפוקה יורדת ב-20%, בדוק הגדרות מתג, מנהרות חדשות או שינויים בהגדרות הווירטואליזציה. אם הרעידות עולות על 1 ms, חפש בעיות באגירה או עומס CPU. עבור יישומים קריטיים (מאגרי נתונים, VoIP), אנו משתמשים ב-SLOs: חביון < 0.5 ms RTT, אובדן מנות = 0%. יישום ניטור סדיר עם iperf3 ו-netperf עוזר לזהות בעיות לפני שהן מתבטאות — העלות של פתרון כזה נמוכה משמעותית מחלופות.

באיזו תדירות לבצע בדיקות ביצועים

התדירות תלויה בקריטיות המערכת. עבור סביבות ייצור, אנו ממליצים להריץ בדיקות בסיסיות (תפוקה + חביון) פעם ביום — זה תופס הידרדרות לפני תקלות. עבור dev/stage, פעם בשבוע מספיק. אוטומציה באמצעות cron ופלט ה-JSON של iperf3 הופכת את התהליך לפשוט.

השוואת כלים: iperf3 לעומת netperf

פרמטר iperf3 netperf
מטרה עיקרית תפוקה, רעידות, אובדן מנות חביון בדפוסי בקשה/תגובה
תמיכה ב-UDP כן באמצעות בדיקות UDP_STREAM
פלט JSON מובנה (iperf3 -c 10.0.1.10 -t 60 -P 4 -J > baseline_$(date +%Y%m%d).json ) רק באמצעות סקריפטים
זרמים מקבילים ping באמצעות מספר מופעים
בדיקות RPC לא TCP_RR, UDP_RR

מה כלול בעבודה

התקנה והגדרה של iperf3/netperf על הצמתים היעדיים. פיתוח ערכת בדיקות המותאמת לדפוסי עומס ספציפיים (תפוקה, חביון, RPC). ביצוע מדידות וקביעת קווי בסיס. פרשנות תוצאות ומתן המלצות לסילוק צווארי בקבוק. במידת הצורך, סקריפט לניטור סדיר עם שמירת היסטוריה.

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

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

לפי iperf3, זרמים מקבילים מגבירים תפוקה על מערכות מרובות מעבדים.