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/d99/trackback
List of Articles
번호 제목 글쓴이 날짜 조회 수

<video>의 속성과 메소드

FreeBSD 참고 명령문 ( H/W 정보 확인 방법)

GBIC(지빅) 이 뭘까?? file

GSLB(Global Service Load Balancing)

linux bonding (네트워크 2개를 1개의 인터페이스로 구성)

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

CentOS 4.x 에서 yum 실패 대처

Centos 6.0 사용장비 교체후 eth0,1이 eth2,3으로 밀리거...

스퀴드(squid) 로그 로테이트 방법

Squid 의 캐시 저장 기간 설정 ( refresh_pattern )

rsync 를 이용하여 동기화 할때 특정 폴더 2개 이상 제외하기

allowScriptAccess 설정

  • l2zeo
  • 2012-05-05
  • 조회 수 8424

HTML5 멀티미디어 태그 - <video>,<audio>,<embed>

squid.conf : Reverse Proxy

ssh 특정 ip or 특정대역폭만 접속 허용

lighttpd와 Apache의 성능 차이 file [2]

  • l2zeo
  • 2012-03-08
  • 조회 수 24242

squid.conf

[squid] 캐시 로그 결과 값(access_log)

linux - cp 덮어쓰기옵션

ffmpeg 설치 및 활용

Copyright ADMINPLAY corp. All rights reserved.

abcXYZ, 세종대왕,1234

abcXYZ, 세종대왕,1234