כיצד להקצות תוכנית לליבת מעבד באמצעות מערך המשימות

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

התקן את ערכת המשימות

כלי ערכת המשימות הוא חלק מחבילת "util-linux". רוב הפצות לינוקס מגיעות עם החבילה המותקנת מראש כברירת מחדל. במקרה שמערכת המשימות אינה זמינה, ניתן להתקין אותה באופן הבא:

En דביאן / אובונטו ונגזרות:

sudo apt-get התקנת util-linux

En פדורה ונגזרות:

sudo yum להתקין util-linux

צפה בזיקה של המעבד של תהליך פועל

כדי לאחזר מידע על זיקה של מעבד לתהליך, השתמש בתבנית הבאה:

ערכת משימות -p PID

לדוגמה, כדי לבדוק את הזיקה של המעבד לתהליך עם PID 2915:

מערך המשימות -p 2915

מחזירה את התוצאה:

מסכת הזיקה הנוכחית של pid 2915: ff

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

הסיבית הנמוכה ביותר במסכת סיביות הקסדצימאלית תואמת לליבה מזהה 0, הסיבית השנייה הנמוכה ביותר מימין ללידה מזהה 1, הסיבית הנמוכה השלישית לליבה מזהה 2 וכן הלאה. כך, למשל, זיקת מעבד "0x11" מייצגת מזהי ליבה 0 ו -4.

ערכת המשימות יכולה להראות זיקה למעבד כרשימת מעבדים במקום מסיכת סיביות, וזה הרבה יותר קל לקריאה. כדי להשתמש בפורמט זה, עליך להפעיל מערך משימות עם האפשרות "-c". לדוגמה:

ערכת משימות -cp 2915

מחזירה את התוצאה:

רשימת הזיקה הנוכחית של pid 2915: 0-7

כפה על תהליך להפעלה על גרעין ספציפי

באמצעות מערך המשימות ניתן להקצות תהליך רץ לליבת CPU ספציפית. לשם כך עליך להשתמש בפורמט הבא:

ערכת משימות -p COREMASK PID משימות -cp CORE-LIST PID

לדוגמה, כדי להקצות תהליך ליבות 0 ו -4, תריץ:

ערכת משימות -p 0x11 9030

מה התוצאה מחזירה:

מסכת הזיקה הנוכחית של פיד 9030: ff מסכת הזיקה החדשה של פיד 9030: 11

באופן שווה, אתה יכול לרוץ:

ערכת משימות -cp 0,4 9030

בעזרת האפשרות "-c" תוכלו לציין רשימה של מזהי ליבה מספריים, מופרדים בפסיקים, או שתוכלו לכלול טווחים (למשל, 0,2,5,6-10).

הפעל תוכנית באמצעות גרעין ספציפי

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

ערכת משימות של COREMASK

לדוגמה, כדי להפעיל את תוכנית VLC במעבד מזהה 0 של המעבד, השתמש בפקודה הבאה:

ערכת משימות -c 0 vlc

הקדש ליבה רק לתוכנית מסוימת

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

לשם כך עליך להוסיף את הפרמטר "isolcpus =" בשורת הליבה ב- GRUB. לדוגמא, כדי להזמין ליבות מזהה 0 ו- 1, הוסף "isolcpus = 0,1".

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

מקור: מודול x & דפי גבר משימות.


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   פטרצ'קו דיג'ו

    פוסט טוב :).

  2.   לואיס דיג'ו

    פוסט טוב אבל בלי כוונה לטרול ...

    מה התועלת בהקצאת תוכנית לליבה ספציפית ???

    אני מתכוון; אם יש לך מחשב עם 12 ליבות, הדבר ההגיוני יהיה שתוכנית מסוימת תבוצע באמצעות אותן 12 ליבות ולא תגביל אותה מכיוון שכך אנו משיגים את הביצועים הגבוהים ביותר האפשריים.

    מה שאני כן מועיל היא האפשרות שמאפשרת לנו לא להקצות שום תהליך לליבה מסוימת, ולהשאיר את השימוש הבלעדי בתוכנית מסוימת.

    1.    jvk85321 דיג'ו

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

      atte
      jvk85321

      1.    בואו נשתמש בלינוקס דיג'ו

        מְדוּיָק! תודה, jvk! 🙂

      2.    lf דיג'ו

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

        כדי לגרום לפלאש לעבוד ב- Windows 8.1 x64, AMD ו- Firefox, הומלץ לבחור שפלאש פועל רק על מעבד אחד, אולם זה לא עבד עבורי. זה יהיה נוח גם אם תוסיפו אותו (אם הוא עדיין לא נמצא שם) למנהלי המשימות של ה- DE השונים, או לפחות ל- KDE.

      3.    lf דיג'ו

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

    2.    פרננדו דיג'ו

      משמש ליצירת מחשבי-על גאוניים

  3.   לואיס דיג'ו

    זה מובן.

    תודה על ההבהרה.

  4.   טק דיג'ו

    כאשר אתה שומר גרעין לתוכנית ספציפית, מה קורה עם שרשורי הביצוע? במקרה שאתה עושה את זה עם גרעין עם HT, הוא שומר שני שרשורי ביצוע לתוכנית.

  5.   סוויכר דיג'ו

    פקודה זו אולי לא נראית שימושית במיוחד במחשבים עם מספר ליבות, אך לאלו מאיתנו שיש להם Dual Core זה די מעשי. לדוגמא, יש לי משחק שכשאני פותח הוא משתמש בכל ליבות המעבד ואם יש לי גם תוכניות אחרות שזקוקות למעבד (כמו חיפוש כלשהו עם grep בקבצים גדולים) אז המערכת מאטה. הפיתרון הוא פשוט כמו להגביל את המשחק לשימוש רק באחת מהליבות.
    אני מסכים גם עם lf, הם באמת צריכים לשלב את זה במנהלי משימות (אלה שניסיתי עד כה בג'נטו, אני חושב שאף אחד אין את זה), במיוחד כאשר ב- Windows זה משהו שקיים מאז XP (לחיצה ימנית על תהליך> "הגדר זיקה ...") אך לפני זמן מה מצאתי את התסריט הבא שהופך את ערכת המשימות למשהו קצת יותר אינטואיטיבי (פורסם במקור כאן ואפילו מקרים מסוימים מוצגים בהם יש צורך לנהל את השימוש בליבות):
    #!/bin/bash
    read -p 'Ingrese el ID del proceso en cuestión: ' ID
    read -p 'Ingrese la lista de procesadores separados por comas: ' P
    echo 'Su ID es '$ID' y los procesadores son '$P
    sudo taskset -p -c $P $ID
    read -p 'Listo, presione enter para finalizar' P

    בשינויים מסוימים ניתן היה לציין את שם התהליך במקום ה- PID (או שהוא מקבל את שניהם וכי הוא מחליט מתי פרמטר זה הוא דבר זה או אחר).

  6.   Jorss דיג'ו

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