ליבת לינוקס היא עמוד השדרה של מערכות ההפעלה לינוקס (OS), והיא הממשק הבסיסי בין החומרה של המחשב לתהליכים שלו.
לפני כמה ימים אנו משתפים כאן בבלוג את החדשות על אחד השינויים מה אנחנו יכולים למצוא בהשקה של ליבת לינוקס 6.9, שנמצא כרגע בפיתוח וכבר נודעו שינויים שונים ומה שהכרזנו הוא ש-EXT2 כבר עבר לקטגוריית המיושן וגם שהשימוש בדריבר ה-NTFS הישן יישאר בצד לטובת ה- מנהל התקן שפותח על ידי Paragon Software.
עכשיו, בחדשות האחרונות לגבי התכונות החדשות שלינוקס 6.9 תציג לנו, הוא זה גרסה זו של הקרנל תביא לשיפור משמעותי בזמן האתחול למשתמשים המנהלים מערכות עם כמויות גדולות של זיכרון RAM, במיוחד אלה הם עושים שימוש בדפי HugeTLB. זה מביא להפחתה ניכרת בזמן שלוקח לאתחול דפים אלה במהלך תהליך האתחול של המערכת.
והשינוי שהתווסף בלינוקס 6.9 יאפשר למערכות עם מספר גדול של דפי HugeTLB לחוות ירידה ניכרת בזמן ההתחלה. לדוגמה, במערכות 2TB שבהן מאתחלים 1800 דפי 1GB, אשר כרגע הם לוקחים בין 1 ל-2 שניות מתוך סך של 10 שניות, שזה ללא ספק שיפור ניכר בזמנים אלו. באופן דומה, במארחי אינטל בנפח 12 טרה-בתים שבהם מאתחלים 11 דפים בנפח 776 ג'יגה-בייט, מה שיכול להימשך למעלה מדקה, תראה הפחתה משמעותית בזמני האתחול הללו.
ההתקדמות הללו התאפשרו בזכות עבודתו המסורה של מפתח לינוקס גנג לי מבית Bytedance, שהטמיע סדרה של תיקונים שעברו ביקורות מרובות כדי להבטיח ביצוע יעיל. תשתית הקרנל הקיימת, כגון padata_do_multithreaded, שימש עם שינויים מינימליים כדי להשיג תוצאות אלה.
שני עדכונים בגרסה 6...
- תיקן באג פוטנציאלי ב- together_bootmem_prealloc_node
היישום padata_do_multithreaded מבטיח שכל אחד
המשימה together_bootmem_prealloc_node מטפלת בצומת. עם זאת, ה-API מתואר
בהערה padata_do_multithreaded מציין שגם padata_do_multithreaded
אתה יכול להקצות מספר צמתים למשימה together_bootmem_prealloc_node.כדי למנוע שגיאות אפשריות משינויים עתידיים ב-padata_do_multithreaded,
יחד_bootmem_prealloc_parallel מוצג כדי לעטוף את
together_bootmem_prealloc_node.
היתרונות מהשיפורים הללו הם במיוחד בולט בסביבות שבהן זמינות השירות וזמן הפעולה של המערכת הם קריטיים, כמו במקרה של hyperscalers וארגונים גדולים שמנהלים שרתים גדולים מאוד. הפחתת זמן האתחול במהלך אתחולים מחדש היא בעלת תועלת רבה כדי להבטיח זמן פעולה מהיר ויעיל יותר.
חוץ מזה, ראוי לציין גם שינוי נוסף שנכללו בלינוקס 6.9 שהוא תיקון של מהנדס לינוקס מנוסה באינטל, אשר מציג טכניקה משופרת להגבלת רוחב פס הזיכרון בעדכוני מטמון x86, בדומה לזה המשמש את אינטל במעבדי RDT ו-AMD EPYC עם קוד resctrl.
מחבר התיקון מזכיר כי:
לולאת המשוב MBA_mbps מגדילה את המצערת כאשר קבוצה משתמשת ברוחב פס גדול יותר מהמשתמש שהוגדר בקובץ הסכימה, ומקטינה את המצערת כאשר היא מתחת ליעד.
ראוי להזכיר כי הטכניקה החדשה להגביל את רוחב הפס של הזיכרון נועד לטפל ביעילות רבה יותר בעומסי עבודה עם רמות עומס לא אחידותs, הימנעות מעונשים מיותרים שהתרחשו בגרסאות קודמות של הליבה.
כדי למנוע תנודות מיותרות בהאצה בכל איטרציה, הדגל "delta_comp" משמש לציון השינויים בפועל ברוחב הפס שיש להקליט באיטרציה הבאה ב-"delta_bw". המצערת מופחתת רק אם רוחב הפס הנוכחי פלוס delta_bw הוא מתחת ליעד המשתמש.
ככזה מוזכר ש האלגוריתם עובד היטב עם עומסי עבודה ברוחב פס קבוע, אבל זה עלול להיכשל אם עומס העבודה משתנה בדיוק כאשר המצערת משתנה. כדי להתמודד עם זה, הוטמעה טכניקה פשוטה יותר המחשבת את הגידול הפוטנציאלי ברוחב הפס אם ההצערה מצטמצמת לרמה הגבוהה הבאה, ומבטיחה שהיא נשארת מתחת ליעד של המשתמש לפני הפחתת המצערת.
אם כן מעוניין לדעת יותר על זה, תוכל לעיין בפרטים בקישורים הבאים: