Skip to content

TaskSet 으로 Process의 사용 CPU를 지정해 보자!

조회 수 10221 추천 수 0 2012.06.18 17:14:05
■ 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 지정을 변경하였을 때 입니다.


유용한 정보 되시기를 바랍니다.
profile

일요일은 짜빠게뤼~ 먹는날~^^

엮인글 :
http://adminplay.com/104471/1be/trackback
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
87 vi(Visual) Editor 사용법 ADMINPLAY 2009-05-11 15339
86 Centos 6.0 사용장비 교체후 eth0,1이 eth2,3으로 밀리거... ADMINPLAY 2012-05-29 15122
85 rsync 미러링 백업 ADMINPLAY 2009-05-17 14845
84 [linux][명령어 백그라운드 실행] ADMINPLAY 2015-05-20 14742
83 각종 데몬 이름 및 설명 ADMIN 2008-11-25 13782
82 linux bonding (네트워크 2개를 1개의 인터페이스로 구성) ADMINPLAY 2012-06-26 12454
81 squid.conf : Reverse Proxy ADMINPLAY 2012-04-13 11862
80 Linux 마우스 휠 방향 바꾸기 (mac 처럼 마우스 휠 바꾸기) ADMINPLAY 2014-02-27 11846
79 OS X 10.9 매버릭스의 기본 파일공유 프로토콜은 AFP가 아... ADMINPLAY 2014-03-04 11025
78 GSLB(Global Service Load Balancing) ADMINPLAY 2012-07-30 10892
77 rsync 를 이용하여 동기화 할때 특정 폴더 2개 이상 제외하기 ADMINPLAY 2012-05-09 10736
» TaskSet 으로 Process의 사용 CPU를 지정해 보자! ADMINPLAY 2012-06-18 10221
75 FreeBSD 참고 명령문 ( H/W 정보 확인 방법) ADMINPLAY 2012-10-22 10191
74 스트리밍 서비스 위한 각 회사 와우자,어도비,마이크로 ... ADMINPLAY 2013-05-06 9888
73 Sample rate(샘플레이트)와 Bit rate (비트레이트) ADMINPLAY 2012-12-28 9716
72 파일비교 명령어 diff 사용법 ADMINPLAY 2013-05-03 9646
71 How to Enable EPEL Repository for RHEL/CentOS 6/5 ADMINPLAY 2014-06-13 9532
70 [CentOS] sshfs - 리눅스 윈도우간 데이터 전송을 편리하게 file ADMINPLAY 2014-09-21 9422
69 Adaptec 컨트롤러 StorMan 에러 및 각종 확인 방법 ADMINPLAY 2013-06-12 8986
68 Bigbluebutton Installation Ubuntu ADMINPLAY 2013-04-11 8960

Copyright ADMINPLAY corp. All rights reserved.

abcXYZ, 세종대왕,1234

abcXYZ, 세종대왕,1234