새소식

사용팁/System Digging

특정 프로세스가 사용중인 cpu 확인하기

  • -

특정 프로세스가 사용중인 cpu 번호를 알고 싶을 때가 있습니다.

 

taskset -c -p 프로세스id 라고 명령을 내리면 현재 프로세스에 할당된 affinity list 가 나타납니다.

$ taskset -c -p 16015 pid 16015's current affinity list: 0-15

 

하지만 보통 프로세스가 자신의 affinity 를 지정하지 않으면 위에서 볼 수 있듯이 현재 모든 cpu 번호가 나옵니다.(회사 서버라 16코어 입니다)

-c 옵션 없이 실행하면 어떻게 지정되었는지 알 수 있습니다.

$ taskset -p 16015 pid 16015's current affinity mask: ffff

원래 taskset은 특정 프로세스의 affinity를 강제할 수 있는 프로그램입니다.

사용법은 검색하시면 쉽게 확인할 수 있습니다.

 

딱 현재(정확히는 마지막에 사용된) 사용하는 cpu 번호를 알고 싶다면 top 이나 htop 명령을 사용하면 됩니다.

top 에서는 f 키를 누르면 표시할 항목(field)을 고를 수 있습니다.

 

선택된 항목 앞에는 별표(*)가 표시되어 있습니다. 우리는 cpu 번호(id)를 알고 싶기 때문에 p = Last Used CPU 항목으로 커서를 움직여서 d 키나 스페이스 키를 눌러 별표를 붙이고 ESC 키나 q 키를 눌러서 나오면 맨 끝에 p 항목에서 각 프로세스가 사용하는 cpu 번호를 알 수 있습니다.

 

htop 은 출력될 위치까지 지정해 줄 수 있어서 더 좋은 것 같습니다.

F2 키를 눌러 Setup 을 실행시키면 맨 처음에 Setup, Left column, Right column, Available meters 의 4가지 종류의 선택 항목이 나옵니다. Setup에서 Columns 항목으로 이동하면 Setup, Active Columns, Available Columns 항목이 보입니다. Active Columns 항목으로 이동해서 넣고 싶은 위치에 이동한 다음, Available Columns 항목에서 PROCESSOR 를 찾아 이동하고 F5 키를 누르면 추가(Add)됩니다. 이 후에 F10 키를 눌러 저장하고 나오면 CPU란 항목에 cpu 번호가 찍혀 있는 것을 볼 수 있습니다.

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.