Ä¿ÇǴнº, ½Ã½ºÅÛ ¿£Áö´Ï¾îÀÇ ½°ÅÍ
  TaskSet À¸·Î ProcessÀÇ »ç¿ë CPU¸¦ ÁöÁ¤ÇØ º¸ÀÚ! ÀÛ¼ºÀÏ : 2010/03/04 17:48
 
  • ±Û¾´ÀÌ : ¹ü³ÃÀÌ
  • Á¶È¸¼ö : 29615
     
    ¡á Taskset À̶õ?
      TaskSetÀº ÇÁ·Î¼¼½º°¡ »ç¿ëÇÒ CPU(CPU affinity) ¸¦ º¸¿©Áְųª ÁöÁ¤ÇØÁØ´Ù.

    ¡á »ç¿ë ¹æ¹ý

      taskset [options] [mask | list ] [pid | command [arg]...]

      mask´Â Process°¡ »ç¿ëÇÒ CPU °ªÀ» ³ªÅ¸³»¸ç 16Áø¼ö·Î Ç¥ÇöÀÌ µÈ´Ù.

       0x00000001 ´Â 0¹ø ÇÁ·Î¼¼½º(CPU)ÀÇ »ç¿ëÀ» ³ªÅ¸³»¸ç
      
       0x00000003 ´Â 0¹ø°ú 1¹ø ÇÁ·Î¼¼½º(CPU)ÀÇ »ç¿ëÀ» ³ªÅ¸³»¸ç

       0xFFFFFFFF ´Â ¸ðµç ÇÁ·Î¼¼½º(CPU)ÀÇ »ç¿ëÀ» ³ªÅ¸³À´Ï´Ù.(0 ~ 31¹ø..)

      
      ¹°·Ð, mask¸¦ ÇÁ·Î¼¼¼­(CPU)ÀÇ ¼ýÀڷΠǥÇöÇÒ ¼öµµ ÀÖ´Ù. mask¸¦ ÇÁ·Î¼¼¼­(CPU)ÀÇ ¼ýÀÚ·Î ³ªÅ¸³»±â À§Çؼ­´Â ÁÖ¿ä ¿É¼ÇÀÇ "-c, --cpu-list " ¿É¼ÇÀ» »ç¿ëÇØÁÖ¸é µÈ´Ù.


    ¡á ÁÖ¿ä ¿É¼Ç

      -p, --pid
        operate on an existing PID and not launch a new task

      -c, --cpu-list
        specifiy  a  numerical  list of processors instead of a bitmask.
        The list may contain multiple items,  separated  by  comma,  and
        ranges.  For example, 0,5,7,9-11


    * À§ÀÇ ¿É¼ÇµéÀº º¸¿©ÁÖ°£, ¼¼ÆÃÇÒ¶§ µ¿ÀÏÇÏ°Ô »ç¿ëµÇ¾î Áø´Ù.  


    ¡á ¸í·É¾îÀÇ ´Ù¾ç ÇÑ ¿¹

      1) ÇØ´ç ÇÁ·Î¼¼½ºÀÇ ÁöÁ¤µÈ CPU º¸±â (CPU affinity)
         # taskset -p pid
           ====================
           # taskset -p 4444
           pid 4444's current affinity mask: 9  <-- -c ¿É¼ÇÀÌ ¾øÀ¸¸é mask´Â 16Áø¼ö·Î ³ª¿Â´Ù.
          
           # taskset -pc 4444
           pid 4444's current affinity list: 0,3 <-- -c ¿É¼ÇÀ» ³ÖÀ¸´Ï cpu number ·Î Ç¥Çö.
          =====================

      2) ÇØ´ç ÇÁ·Î¼¼½ºÀÇ ÁöÁ¤µÈ CPU º¯°æ Çϱâ
        # taskset -pc "processor number" pid
           ====================
           # taskset -pc 0-7 4444  <-- 0,3 // 0-7(0,1,2,3,4,5,6,7) ÇüÅ·ΠÁöÁ¤ ÇÒ¼ö ÀÖ´Ù.
           pid 4444's current affinity list: 0,3
           pid 4444's new affinity list: 0-7

           (16 Áø¼ö´Â º¸±â Èûµå´Ï ¿¹Á¦¿¡¼­ Á¦¿Ü)
           ====================

      3) command »ç¿ëÇÏ¿© ±¸µ¿½Ã º¯°æÇϱâ
       # taskset -c "process nuber" "command"
          =====================
          # taskset -c 0,1,2,3,4 /etc/init.d/httpd start
          
          ½ÇÁö·Î´Â -pc ¿É¼ÇÀ» ½áµµ Á¤»óÀûÀ¸·Î ±¸µ¿µÈ´Ù.)
          =====================


    ¡á °í·Á »çÇ×
      1) ÀÚ½Ä Process ¿¡ ÇØ´ç ¼³Á¤ ½Â°è ¿©ºÎ
         * ºÎ¸ðÀÇ Á¤º¸¸¦ ±×´ë·Î µû¶ó °©´Ï´Ù.
         ´Ü, ÇØ´ç CPUÀÇ ÁöÁ¤Àü¿¡ ±¸µ¿µÈ ÀÚ½Ä ÇÁ·Î¼¼½ºÀÇ ¼³Á¤Àº º¯°æµÇÁö ¾Ê½À´Ï´Ù.
         Ȥ, º¯°æÀü¿¡ ±¸µ¿µÈ ÀÚ½Ä ÇÁ·Î¼¼½º°¡ ÀÖ´Ù¸é °°ÀÌ(ÀÏÀÏÀÌ) º¯°æÇØ Áà¾ß ÇÕ´Ï´Ù.

    ** taskset -c "process nuber" "command" ÇüÅ·Π±¸µ¿ÇÏ¿´À»¶§¿¡´Â »ó°ü ¾ø½À´Ï´Ù. ¿©±â¼­ ¹®Á¦½Ã µÇ´Â °ÍÀº ±¸µ¿ ÈÄ¿¡ CPU ÁöÁ¤À» º¯°æÇÏ¿´À» ¶§ ÀÔ´Ï´Ù.


    À¯¿ëÇÑ Á¤º¸ µÇ½Ã±â¸¦ ¹Ù¶ø´Ï´Ù.


    Ä¿ÇǴнº, ½Ã½ºÅÛ ¿£Áö´Ï¾îÀÇ ½°ÅÍ / URL : http://coffeenix.net/board_view.php?bd_code=1702