CPUTool – הגבלת ושליטה על שימוש במעבד ב־Linux

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

A number of these tools simply output the system state/statistics while a few others provide you means of managing system performance. One such tool called CPUTool.

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

כיצד CPUTool פועל?

כדי להגביל את שימוש המעבד, cputool שולח את האותות SIGSTOP ו־SIGCONT לתהליכים וזה נקבע על ידי עומס המערכת. הוא תלוי ב־מערכת הפסאודו־קבצים /proc לקריאת PIDs ומדידות שימוש המעבד שלהם.

ניתן להשתמש בו כדי להגביל את שימוש המעבד או את עומס המערכת שנגרם על ידי תהליך יחיד או קבוצת תהליכים למגבלה נתונה ו/או להשהות תהליכים אם עומס המערכת עובר עבר סף מסוים.

קריאה מומלצת: הבנת ממוצעי העומס ב־Linux וניטור ביצועי Linux

התקן את CPUTool כדי להגביל את שימוש ה-CPU ואת העומס הממוצע

A CPUTool is only available to install on Debian/Ubuntu and its derivatives from the default system repositories using package management tool.

$ sudo apt install cputool

הגבלת שימוש ב-CPU של תהליך עם CUPTool

עכשיו נבחן איך cputool באמת עובד. כדי להדגים את זה, נריץ את פקודת dd שצריכה לגרום לאחוז גבוה של CPU, ברקע ולהציג את ה-PID שלו.

# dd if=/dev/zero of=/dev/null &

כדי לעקוב אחרי שימוש ב-CPU אנו יכולים להשתמש בכלי top או glances שמאפשרים לנו לראות מצב מעודכן בזמן אמת של תהליכי מערכת Linux שפועלים:

# top
Monitor dd Command CPU Usage

מהפלט לעיל, אנו רואים שה-פקודת dd תופסת את האחוז הגבוה ביותר של זמן CPU 99.7%) עכשיו אנו יכולים להגביל זאת באמצעות cputool כפי שמוצג למטה.

הדגל --cpu-limit או -c משמש להגדיר אחוז שימוש עבור תהליך או קבוצת תהליכים ו--p לציין PID. הפקודה הבאה תגביל את פקודת dd (PID 8275) ל-50% שימוש בליבת CPU אחת:

# cputool --cpu-limit 50 -p 8275 

לאחר הרצת cputool, אנו יכולים לבדוק שוב את שימוש ה-CPU החדש לתהליך (PID 8275). כעת שימוש ה-CPU של dd צריך להתנהג בטווח של (49.0%-52.0%).

# top
Limit Process CPU to 50% Usage

כדי להגביל עוד יותר את שימוש ה-CPU של dd ל-20%, אנו יכולים להריץ את cputool לפעם שנייה:

# cputool --cpu-limit 20 -p 8275 

אז בדוק מייד באמצעות כלים כגון top או glances ככה (שימוש במעבד עבור dd צריך עכשיו להסתכם בין 19.0%-22.0% או קצת מעבר לזה):

# top
Limit Process CPU Usage to 20%

שימו לב שהשאל של הפצל לא מצפה לקלט מהמשתמש כשcputool פועל; לכן הוא נעשה לא מגיב. כדי להרוג אותו (זה יפסיק את פעולת מגבלת שימוש במעבד), הקש Ctrl + C.

בעיקרון, כדי לציין קבוצת תהליך (תכנית אחת עם מספר פעילויות רבות כל אחת עם מספר תיאום שונה) למשל שרת אינטרנט HTTP:

# pidof apache2
9592 3643 3642 3641 3640 3638 3637 1780

השתמש בסימן -P ככה:

# cputool --cpu-limit 20 -P 1780

הגבלת עומס המערכת עם CUPTool

האופציה -l משמשת לציון העומס המרבי שהמערכת עשויה לעבור עבור התהליך או קבוצת התהליכים כדי להמשיך לפעול. אנו יכולים להשתמש בערך שברי (למשל 2.5).

הדוגמה שלהלן אומרת לרוץ rsync עבור חפש מקומי רק כאשר העומס של המערכת אינו עולה על 3.5:

# cputool --load-limit 3.5 --rsync -av /home/tecmint /backup/`date +%Y-%m-%d`/

למידע נוסף ושימוש ב- CPUTool, צפו בדף האנציקלופדיה של CPUTool:

# man cputool

אל תפספסו את המדריכים השימושיים הבאים למציאת מידע על המעבד וניטור ביצועים המעבד:

  1. 9 פקודות שימושיות לקבלת מידע על המעבד ב-Linux
  2. Cpustat – צובר מידע על תפוקת ה-CPU של תהליכים שרצים ב-Linux
  3. CoreFreq – כלי עקרי למעקב אחר המעבד במערכות Linux
  4. מציאת התהליכים הפועלים ביותר לפי שימוש בזיכרון וב-CPU הגבוה ביותר ב-Linux

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

Source:
https://www.tecmint.com/cputool-limit-linux-process-cpu-usage-load/