השוואה של רוחב פס גבוה יותר ברשת למכונות וירטואליות

במאמר הזה מוסבר איך לבדוק את הביצועים של רשתות Tier_1 לכל מכונה וירטואלית. כדי לעשות זאת, יוצרים שתי מכונות וירטואליות ומזרימים תעבורה הלוך ושוב כדי לבחון את ביצועי הרשת. כדי להשתמש בתכונה הזו, צריך ליצור את המכונה הווירטואלית עם מערכות הפעלה שתומכות ב-Google Virtual NIC (gVNIC). כדי להשתמש בביצועי הרשת של מכונות וירטואליות ברמה 1, צריך מכונות וירטואליות גדולות יותר. לכן, חשוב לוודא שיש לכם מספיק מכסת מעבדים כדי ליצור את המכונות הווירטואליות.

לפני שמתחילים

  • חשוב לוודא שאתם משתמשים באימג' ציבורי שתומך ב-gVNIC או ליצור אימג' בהתאמה אישית בפרויקט.
  • מוודאים שיצרתם כללים של חומת אש ב-VPC שמאפשרים תעבורת נתונים נכנסת (ingress) ביציאה TCP:5001, או ביציאה אחרת לבחירתכם, כדי לאפשר בדיקת ביצועים של iperf.
  • כדי לבצע את הבדיקה, צריך להשתמש ב-iPerf גרסה 2 ולא בגרסה 3.
  • אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות. אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים האלה:

    צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:

    המסוף

    כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים Google Cloud ולממשקי ה-API, לא צריך להגדיר אימות.

    gcloud

    1. התקינו את ה-CLI של Google Cloud. אחר כך, מאתחלים את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

      gcloud init

      אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  • הגדרת אזור ותחום כברירת מחדל
  • REST

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

      התקינו את ה-CLI של Google Cloud.

      אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

    מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .

הגדרת מכונות וירטואליות להשוואה לשוק

יוצרים שתי מכונות עם n2-standard-64 מעבדי vCPU, עם ביצועי רשת ברמה 1 לכל מכונה וירטואלית, וההגדרה הכי גבוהה של יחידת שידור מקסימלית (MTU). כך המכונות הווירטואליות מקבלות רוחב פס מקסימלי של עד 75Gbps לתעבורת נתונים יוצאת (באמצעות כתובות IP פנימיות).

gcloud

  1. כדי ליצור תמונה, משתמשים בפקודה gcloud compute images create.

      gcloud compute images create IMAGE_NAME \
       --project=PROJECT_ID \
       --source-image-family=SOURCE_IMAGE_FAMILY \
       --source-image-project=SOURCE_IMAGE_PROJECT \
       --guest-os-features=GVNIC
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫PROJECT_ID: שם הפרויקט.
    • ‫IMAGE_NAME: השם של התמונה שרוצים ליצור.
    • ‫SOURCE_IMAGE_FAMILY: הגרסה הנדרשת של תמונה ציבורית. בבדיקה הזו, צריך להשתמש ב-ubuntu-2004-lts.
    • ‫SOURCE_IMAGE_PROJECT: השם של הפרויקט שמכיל את תמונת המקור. לצורך הבדיקה הזו, משתמשים ב-ubuntu-os-cloud.

    דוגמה

    gcloud compute images create benchmark-image-test \
      --project=my-project \
      --source-image-family=ubuntu-2004-lts \
      --source-image-project=ubuntu-os-cloud \
      --guest-os-features=GVNIC
    
  2. יוצרים רשת VPC במצב אוטומטי שמשתמשת בהגדרת ה-MTU המקסימלית:

      gcloud compute networks create NETWORK_NAME \
      --project=PROJECT_ID \
      --subnet-mode=AUTO --mtu=8896
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫PROJECT_ID: שם הפרויקט.
    • ‫NETWORK_NAME: שם לרשת.
  3. יוצרים שתי מכונות זהות:

      gcloud compute instances create \
          VM_NAME_1 VM_NAME_2 \
          --project=PROJECT_ID \
          --zone=ZONE \
          --machine-type=n2-standard-64 \
          --image=projects/PROJECT_ID/global/images/IMAGE_NAME \
          --network-interface=network=NETWORK_NAME,nic-type=GVNIC \
          --network-performance-configs=total-egress-bandwidth-tier=TIER_1
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫VM_NAME_1, ‏ VM_NAME_2: השמות של המכונות הווירטואליות שרוצים ליצור.
    • ‫PROJECT_ID: שם הפרויקט.
    • ‫ZONE: האזור של המכונה הווירטואלית. שתי המכונות הווירטואליות צריכות להיות באותו אזור.
    • ‫PROJECT_NAME‎/global/images/IMAGE_NAME‎: שם הפרויקט ושם קובץ האימג'.
    • ‫NETWORK_NAME: השם של הרשת שהגדרתם עם הגדרת ה-MTU המקסימלית.

הרצת הערכת הביצועים

שתי המכונות הווירטואליות צריכות להיות באותו אזור ובאותה רשת VPC. במהלך הבדיקה, שתי המכונות הווירטואליות האלה מבצעות בדיקה דו-כיוונית של נתיב רשת ה-VPC.

אימות הגדרת ה-MTU

כדי לוודא שהגדרת ה-MTU המקסימלית מוגדרת ברשת של הענן הווירטואלי הפרטי (VPC), משתמשים ב-ifconfig במערכת ההפעלה של האורח באחת מהמכונות הווירטואליות.

  1. מתחברים לאחת ממכונות ה-VM.

  2. בחלון הטרמינל, מריצים את הפקודה הבאה:

     /sbin/ifconfig | grep mtu
    

    ערך ה-MTU שדווח צריך להיות 8896.

     ens4: flags=4163  mtu 8896
     lo: flags=73  mtu 65536
    

אימות ההגדרה של מכונה וירטואלית

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

gcloud

כדי להציג את המכונות, משתמשים בפקודה gcloud compute instances describe.

gcloud compute instances describe VM_NAME_1 \
    --project=PROJECT_ID \
    --zone=ZONE \
    --format="text(networkPerformanceConfig)"
gcloud compute instances describe VM_NAME_2 \
    --project=PROJECT_ID \
    --zone=ZONE \
    --format="text(networkPerformanceConfig)"

מחליפים את מה שכתוב בשדות הבאים:

  • ‫VM_NAME_1: השמות של המכונות הווירטואליות שרוצים להציג.
  • ‫VM_NAME_2: השמות של המכונות הווירטואליות שרוצים להציג.
  • ‫PROJECT_ID: שם הפרויקט.
  • ‫ZONE: האזור של ה-VM. שתי המכונות הווירטואליות צריכות להיות באותו אזור.

בתגובה אמורים להופיע הפרטים הבאים:

networkPerformanceConfig.totalEgressBandwidthTier: TIER_1

שימוש ב-iPerf לביצוע בדיקת הביצועים במערכות מבוססות Debian

gcloud

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

  2. אחרי ששתי המכונות הווירטואליות פועלות, משתמשים ב-SSH כדי להתחבר לאחת מהן.

    gcloud compute ssh VM_NAME_1 \
      --project=PROJECT_ID
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫VM_NAME_1: השם של המכונה הווירטואלית הראשונה.
    • ‫PROJECT_ID: שם הפרויקט.
  3. במכונה הווירטואלית הראשונה, מבצעים את השלבים הבאים:

    1. מתקינים את iperf.

      sudo apt-get update && sudo apt-get install iperf
      
    2. משיגים את כתובת ה-IP הפנימית של המכונה הווירטואלית. שימו לב לכתובת ה-IP הפנימית, כי תצטרכו להשתמש בה בהמשך.

      ip a
      
    3. מפעילים את שרת iPerf.

      iperf -s
      

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

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

    gcloud compute ssh VM_NAME_2 \
       --project=PROJECT_ID
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫VM_NAME_2: השם של המכונה הווירטואלית השנייה.
    • ‫PROJECT_ID: שם הפרויקט.
  5. במכונה הווירטואלית השנייה, מבצעים את הפעולות הבאות:

    1. מתקינים את iPerf.

      sudo apt-get update && sudo apt-get install iperf
      
    2. מריצים את בדיקת iperf ומציינים את כתובת ה-IP של המכונה הווירטואלית הראשונה כיעד.

      iperf -t 30 -c internal_ip_of_instance_1 -P 16
      

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

      התוצאות אמורות להיראות בערך כמו בדוגמה הבאה. הוא מציג את מגבלת רוחב הפס של תעבורת נתונים יוצאת (egress) של 75Gbps עבור n2-standard-64 עם Tier_1 networking מופעל, מעבר למגבלת רוחב הפס של תעבורת נתונים יוצאת (egress) של 32Gbps כברירת מחדל.

      ------------------------------------------------------------
      Client connecting to 10.128.0.10, TCP port 5001
      TCP window size: 1.59 MByte (default)
      ------------------------------------------------------------
      [ 12] local 10.128.0.11 port 57722 connected with 10.128.0.10 port 5001
      [ 11] local 10.128.0.11 port 57720 connected with 10.128.0.10 port 5001
      [ 16] local 10.128.0.11 port 57730 connected with 10.128.0.10 port 5001
      [  6] local 10.128.0.11 port 57710 connected with 10.128.0.10 port 5001
      [ 13] local 10.128.0.11 port 57724 connected with 10.128.0.10 port 5001
      [  8] local 10.128.0.11 port 57712 connected with 10.128.0.10 port 5001
      [  9] local 10.128.0.11 port 57716 connected with 10.128.0.10 port 5001
      [ 14] local 10.128.0.11 port 57726 connected with 10.128.0.10 port 5001
      [ 15] local 10.128.0.11 port 57728 connected with 10.128.0.10 port 5001
      [ 10] local 10.128.0.11 port 57718 connected with 10.128.0.10 port 5001
      [  4] local 10.128.0.11 port 57706 connected with 10.128.0.10 port 5001
      [  5] local 10.128.0.11 port 57708 connected with 10.128.0.10 port 5001
      [  3] local 10.128.0.11 port 57704 connected with 10.128.0.10 port 5001
      [ 17] local 10.128.0.11 port 57732 connected with 10.128.0.10 port 5001
      [  7] local 10.128.0.11 port 57714 connected with 10.128.0.10 port 5001
      [ 18] local 10.128.0.11 port 57734 connected with 10.128.0.10 port 5001
      [ ID] Interval       Transfer     Bandwidth
      [ 12]  0.0-30.0 sec  7.63 GBytes  2.19 Gbits/sec
      [ 11]  0.0-30.0 sec  17.7 GBytes  5.07 Gbits/sec
      [ 16]  0.0-30.0 sec  9.15 GBytes  2.62 Gbits/sec
      [  6]  0.0-30.0 sec  43.8 GBytes  12.6 Gbits/sec
      [ 13]  0.0-30.0 sec  23.6 GBytes  6.76 Gbits/sec
      [  8]  0.0-30.0 sec  13.3 GBytes  3.80 Gbits/sec
      [  9]  0.0-30.0 sec  9.29 GBytes  2.66 Gbits/sec
      [ 14]  0.0-30.0 sec  19.6 GBytes  5.62 Gbits/sec
      [ 15]  0.0-30.0 sec  12.5 GBytes  3.58 Gbits/sec
      [ 10]  0.0-30.0 sec  11.1 GBytes  3.19 Gbits/sec
      [  4]  0.0-30.0 sec  19.0 GBytes  5.43 Gbits/sec
      [  5]  0.0-30.0 sec  7.32 GBytes  2.10 Gbits/sec
      [  3]  0.0-30.0 sec  8.78 GBytes  2.51 Gbits/sec
      [ 17]  0.0-30.0 sec  17.5 GBytes  5.02 Gbits/sec
      [  7]  0.0-30.0 sec  33.4 GBytes  9.57 Gbits/sec
      [ 18]  0.0-30.0 sec  7.64 GBytes  2.19 Gbits/sec
      [SUM]  0.0-30.0 sec   261 GBytes  74.9 Gbits/sec
      

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

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

gcloud

  1. משתמשים בפקודה gcloud compute instances delete כדי להסיר את המכונות שיצרתם לבדיקת הביצועים.

    gcloud compute instances delete \
      VM_NAME_1 VM_NAME_2 \
       --project=PROJECT_ID \
       --zone=ZONE
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫VM_NAME_1, ‏ VM_NAME_2: השמות של שני המופעים של מכונות וירטואליות שרוצים למחוק.
    • ‫PROJECT_ID: שם הפרויקט.
    • ‫ZONE: האזור של ה-VM. שתי המכונות הווירטואליות צריכות להיות באותו אזור.
  2. משתמשים בפקודה gcloud compute networks delete כדי להסיר את הרשת שיצרתם לבדיקות השוואתיות.

    gcloud compute networks delete NETWORK_NAME  \
       --project=PROJECT_ID
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫NETWORK_NAME: שם הרשת שרוצים למחוק.
    • ‫PROJECT_ID: שם הפרויקט.
  3. משתמשים בפקודה gcloud compute images delete כדי להסיר את התמונה שיצרתם לבדיקת ביצועים.

     gcloud compute images delete IMAGE_NAME  \
        --project=PROJECT_ID
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫IMAGE_NAME: השם של התמונה שרוצים למחוק.
    • ‫PROJECT_ID: שם הפרויקט.

המאמרים הבאים