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

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

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

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

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

    המסוף

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

    gcloud

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

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

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

      התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.

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

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

יוצרים שתי מכונות עם n2-standard-64 vCPU עם ביצועי רשת Tier_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_NAME/global/images/IMAGE_NAME \
          --network=NETWORK_NAME \
          --network-interface=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. מתחברים לאחת מהמכונות הווירטואליות.

  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: האזור של המכונה הווירטואלית. שתי המכונות הווירטואליות צריכות להיות באותו אזור.

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

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 לא מצליח להגיע למכונה הווירטואלית השנייה, יכול להיות שתצטרכו לשנות את הרשת או את הגדרות חומת האש במכונות הווירטואליות, או אולי במסוף Cloud de Confiance .

      התוצאות אמורות להיראות כמו בדוגמה הבאה. הוא מציג את מגבלת רוחב הפס של יציאת הנתונים של 75Gbps עבור n2-standard-64 עם Tier_1 networking מופעל, מעבר למגבלת רוחב הפס של יציאת הנתונים של 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: האזור של המכונה הווירטואלית. שתי המכונות הווירטואליות צריכות להיות באותו אזור.
  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: שם הפרויקט.

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