במאמר הזה מוסבר איך לפתור בעיות שקשורות לנעילות רכות של vCPU. נעילת תוכנה מתרחשת כשמעבד וירטואלי (vCPU) של מכונה וירטואלית (VM) לא מצליח להריץ משימה חדשה במשך יותר מ-20 שניות. רוב המקרים של נעילה רכה נגרמים בגלל באגים בתוכנות של האפליקציות.
נעילות רכות עלולות לגרום למכונות וירטואליות להפסיק להגיב לפרקי זמן קצרים, לשבש את הגישה למכונות וירטואליות דרך SSH ולהפעיל פסק זמן או מעבר לגיבוי בעת כשל באפליקציה. יכול להיות שבמכונות וירטואליות שחווות נעילה רכה יהיה גם ניצול מעבד (CPU) גבוה באופן חריג או נמוך באופן חריג, בהתאם לסיבה המדויקת לנעילה הרכה.
זיהוי נעילות רכות
כדי לזהות אם יש נעילה רכה במכונה הווירטואלית, מבצעים אחת מהפעולות הבאות:
- אם הפעלתם בעבר רישום ביומן של פלט יציאה טורית ב-VM, בדקו את הפלט של היציאה הטורית כדי לראות את מעקב המחסנית של נעילה רכה.
- בודקים את יומני מערכת ההפעלה של המכונה הווירטואלית (
/var/log/messages) כדי לראות אם יש עקבות של מחסנית נעילה רכה.
דוגמה לדוח קריסות של נעילה רכה
watchdog: BUG: soft lockup - CPU#3 stuck for 22s!
כדי לזהות בעתיד מצבים של נעילה רכה, אפשר:
יצירת מדיניות התראות שמבוססת על יומן עבור היומן הבא:
resource.type="gce_instance" log_id("serialconsole.googleapis.com/serial_port_1_output") textPayload=~"watchdog.*lockup"
פתרון בעיות שקשורות לנעילות רכות
אחרי שמזהים שהמערכת נתקעת באופן זמני, מנסים את השלבים הבאים לפתרון הבעיה:
- כדאי לבדוק באתר של ספק מערכת ההפעלה אם יש שגיאות ידועות בגרסה של מערכת ההפעלה שלכם. לפעמים יכול להיות שתמצאו הפניה למודולים ספציפיים של ליבת המערכת ב-דוח קריסות, שמצביעה על פונקציה או פעולה מסוימת שמעורבת בכך.
- בודקים אם הנעילה הרכה חוזרת בתדירות מסוימת, למשל אם היא מתרחשת כשיש עומס גבוה או פעילויות מסוימות. אם יש קורלציה בין נעילות רכות לבין עומס גבוה, יכול להיות שתצטרכו להגדיר מחדש את עומס העבודה, למשל באמצעות מכונה וירטואלית גדולה יותר או פיצול העומס בין יותר מכונות וירטואליות.
- בודקים אם יש קשר בין התופעה לבין שינויים בסביבת זמן הריצה, כמו פריסות חדשות של תוכנה או עדכונים של תמונות מערכת ההפעלה.
- בודקים אם התרחשו אירועי תחזוקה בסביבות הזמן של הנעילה הרכה, על ידי בדיקת יומני ביקורת של אירועים במערכת.
אם השלבים הקודמים לפתרון בעיות לא עזרו לפתור את הבעיה, אפשר להגיש בקשת תמיכה ולכלול בה את כל המידע שאספתם במהלך פתרון הבעיות.
שיטות מומלצות למניעת מצבים של נעילה רכה
כדי למנוע מצבים של נעילה רכה במכונות הווירטואליות, מומלץ לפעול לפי השיטות המומלצות הבאות:
- כדי לספק יכולת מעבר לגיבוי במקרה של נעילה רכה ממושכת של מכונה וירטואלית מסוימת, חשוב לוודא שהגדרתם רכיבים מיותרים מתאימים למערכת, כמו אשכולות של זמינות גבוהה. מידע נוסף זמין במאמר בנושא תכנון מערכות עמידות.
- לעומסי עבודה שדורשים הרבה משאבי מחשוב, מומלץ להשתמש במשפחות של מכונות מותאמות לצריכת מעבד גבוהה.
- כדאי לבדוק את עומס העבודה באמצעות אירועי תחזוקה מדומה כדי להבין איך עומס העבודה מתפקד במהלך מיגרציה פעילה (אם היא מופעלת), במיוחד במהלך בדיקות עומס.
- אם אתם מריצים ליבת Linux מותאמת אישית או מודולים מותאמים אישית במכונה הווירטואלית, כדאי לבדוק שינויים חדשים בעומס לפני שפורסים אותם בסביבת הייצור. מוודאים שהשינויים המותאמים אישית לא פוסלים אתכם מקבלת תמיכה מספק מערכת ההפעלה.
- חשוב לוודא שמערכת ההפעלה מעודכנת. מידע נוסף על מערכת ההפעלה