עבודה עם Onload
בדף הזה מוסבר איך להשתמש ב-Onload במכונות Compute Engine עם זמן אחזור נמוך במיוחד (ULL).
Onload היא חבילת פרוטוקולים לרשת עם ביצועים גבוהים לאפליקציות שרגישות לזמן טעינה ודורשות זמן טעינה נמוך במיוחד, תנודות מינימליות בנתונים וביצועים עקביים. Onload מספקת הטמעה של TCP/IP שעוקפת את ליבת מערכת ההפעלה ופועלת ישירות במרחב המשתמש, תוך מתן אפשרות לאפליקציות להשתמש ב-APIs רגילים של BSD socket.
השימוש ב-Onload עם פתרון ULL כולל תמיכה ב:
- הפניית זרימה: באמצעות ממשקי רשת של ULL, אפשר לעקוף את הגיבוב (hashing) של Receive Side Scaling (RSS) שמוגדר כברירת מחדל על ידי הפניית זרימות תנועה ספציפיות ישירות אל תור קבלה (RX) ייעודי. לתעבורת נתונים של ULL unicast ו-multicast, נתמך ניהול של זרימת נתונים עם 3 טאפלים (פרוטוקול, כתובת IP של היעד, יציאת היעד).
סוג המכונה ותמונת מערכת ההפעלה הנדרשים
כדי להשתמש ב-Onload, צריך ליצור מכונות וירטואליות של ULL Compute Engine (U4P או U4C) באמצעות פרויקט התמונה והתמונה שסופקו על ידי Google לצורך בדיקה, כמו שמתואר במאמר יצירת מכונות וירטואליות של ULL Compute Engine.
כשמשתמשים בתמונה הנדרשת, Onload מותקן מראש ונטען בזמן האתחול. לאחר מכן תוכלו להריץ תהליכים באמצעות Onload כמו שמתואר בהליכים שבדף הזה.
התחלה ועצירה של onload
בקטע הזה מוסבר איך להפעיל ולעצור את Onload. כדי להשלים את התהליכים שמפורטים בקטעים הבאים, צריך להפעיל את Onload.
כדי להפעיל את Onload, מריצים את הפקודה הבאה:
sudo /opt/gcp_tp-scripts/load-onload-and-tune
כדי לעצור את Onload, מריצים את הפקודה הבאה:
sudo /opt/gcp_tp-scripts/unload-onload
הפעלת בדיקת סטטוס של משתמשים
כדי להשיג זמן טעינה קצר במיוחד ולמזער את הג'יטר, מומלץ להפעיל סקרים פעילים.
כדי להפעיל את התכונה 'בדיקת סטטוס':
אם עדיין לא עשיתם זאת, מתחברים למופע באמצעות SSH.
אתם יכולים להפעיל את התכונה 'בדיקת זמינות' לכל התורים או בצורה מפורטת יותר. בוחרים את האפשרות שמתאימה לתרחיש השימוש:
כל התורים:
sudo /opt/gcp_tp-scripts/busypoll-all-queues
תור RX ספציפי שמשמש מחסנית Onload:
אם עדיין לא עשיתם זאת, מריצים את הפקודה הבאה כדי להפעיל את מחסנית Onload:
gcp_tp-onload /opt/neper/tcp_rr &
כדי לקבל את
stack-idשל מחסנית שהפעלתם, מריצים את הפקודה הבאה:onload_stackdump
כדי לקבל את מספרי האינדקס של ממשקי הרשת, מריצים את הפקודה הבאה:
cat /sys/class/net/NIC_NAME/ifindex
מחליפים את
NIC_NAMEבשם של ממשק הרשת במערכת ההפעלה של האורח, למשלeth1,eth2.כדי להפעיל את בדיקת הזמינות, מריצים את הפקודה הבאה:
sudo /opt/gcp_tp-scripts/busypoll-onload-stack STACK_ID enable NIC_INDEX CPU_ID
מחליפים את מה שכתוב בשדות הבאים:
-
STACK_ID: מזהה ה-Stack שקיבלתם קודם -
NIC_INDEX: מספר האינדקס של ממשק הרשת שרוצים להפעיל בו סקר פעיל, לדוגמה1או2.
CPU_ID: המזהה של ה-CPU שעבורו רוצים להפעיל סקר פעיל.- אנחנו ממליצים לא להשתמש במעבד
0או במעבד שנמצא בשימוש של אפליקציה. חשוב לוודא שאתם משתמשים בליבות CPU מקומיות לצומת NUMA של ממשק הרשת שציינתם. לדוגמה:
-
eth1משתמש בצומת NUMA0, שמשתמש בליבות CPU0-29. -
eth2uses NUMA node2. שמשתמש בליבות המעבד60-89.
-
- אנחנו ממליצים לא להשתמש במעבד
-
כדי להשבית את בדיקת הזמינות, משתמשים בפקודה הבאה:
sudo /opt/gcp_tp-scripts/busypoll-onload-stack STACK_ID disable NIC_INDEX CPU_ID
המאמרים הבאים
- כדי לסנכרן את שעון המערכת של המופע עם השעון של כרטיס ה-NIC הפיזי של שרת המארח, אפשר לעיין במאמר בנושא הגדרת זמן מדויק.