להכריח תהליך לרוץ על מעבד בודד

אני סובל הרבה מבעייה של cisco vpn אשר לפעמים תוקע לי את המערכת, ופורסם פוסט בנושא של נתנאל שיין.

נתנאל מציג האק שאני לא מוכן להתמודד איתו שהוא לכבות את המעבדים במכונה בזמן ריצת ה VPN. אז חיפשתי דרך אחרת ומצאתי: הפקודה taskset.
הפקודה מאפשרת להגיד לתהליך ספציפי להיות קשור למעבד ספציפי בלבד (או מספר מעבדים ספציפיים) על ידי שיחה עם הcpu scheduler של הקרנל ובכך הבקשות השונות לא יתבזרו (אם בכלל) בכמה מעבדים שונים בו זמנית, דבר שאני מקווה כי יפתור את הבעיה בה נתקלנו (עדיין לא ניסיתי בעצמי).

לפי התעוד עצמו, העבודה היא מאוד פשוטה. מריצים תהליך מסויים ומספקים את הpid שלו לתוכנה בייחד עם 2 שיטות להגדרת מעבדים:

  1. מסיכה של מעבדים (קראו על כך בתעוד להסבר נרחב יותר)
  2. אינדקסים של מעבדים

כך שאם אני מעוניין נגיד להריץ פקודה עם מעבד אחד בלבד:

$ taskset -c 0 ls

וכך אני מריץ את התוכנה ls על מעבד מספר 0 בלבד.

6 מחשבות על “להכריח תהליך לרוץ על מעבד בודד

  1. netsan

    אממ..זה בדיוק מה שרשמתי בתגובה שלי בפוסט, אם ראית… זה לא שהצעתי לך האק אחד בלבד. אמרתי בפירוש, קיימת אפשרות להגביל את הקליינט.

  2. ירון שהרבני

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

    לטענתך ניתן לעשות את זה באמצעות פקודות מסוימות, האם כדאי להציע את זה כתכונה בצג המערכת של GNOME?

    1. ik_5 מאת

      היכן הפדיחה בדיוק ? בזה שלינוקס זו מערכת שבנויה בגישה מודולרית ולא הכל בנוי ואי אפשר לזוז מילמטר או לעבוד בכלל ?

      סביר להניח שיש גם פקודות "גרפיות" עבור זה, אני לא מחפש אותם כי הvpn שאני מפעיל נמצא בטרמינל, ובנוסף העבודה שלי תמיד שם. מה לעשות אבל לעבור 300 אפליקציות רצות בשביל להפעיל אחת בצורה שונה לוקחת יותר אנרגיה מאשר פשוט להפעיל אותה בצורה שאתה רוצה במקום. וזו הפדיחה של מיקרוסופט שמשתילה לך לראש שגרפי זה בהכרח ידידותי יותר וזה בד"כ לא המצב.

  3. a

    קראתי שוב את הפוסט של נתנאל, ומתיאורו נראה שזה לא יעזור.
    הבעיה היא במצב SMP של הקרנל – את זה לא שינית. עדיין הקרנל יכול להחליט להריץ במקביל לתהליך שקיבעת לליבה מסוימת תהליך אחר, וכך עדיין יכולות להיווצר נעילות בעקבות המצב שהוא כינה Preemption.

כתיבת תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s