리눅스 프로세스 스레드 수 확인하는 방법
- 운영체제(OS)
- 2023. 7. 13.
운영체제에 리소스나 성능 문제가 있을 때 프로세스의 스레드 수를 확인하면 문제의 원인을 짐작하는데 도움이 됩니다. 적절한 스레드 수는 작업을 빠르게 만들지만 너무 많은 스레드는 오버헤드를 초래합니다. 프로세스가 많은 수의 스레드를 생성한다는 것은 메모리 사용량이 증가하는 것을 의미하기 때문입니다. 리눅스에서 프로세스의 스레드 수를 확인하려면 ps 명령어를 이용합니다. -L 옵션과 함께 쓰면 확인할 수 있습니다.
프로세스 스레드 개수 확인
구문
ps -efL
- e : 모든 사용자의 모든 프로세스를 출력합니다.
- f : 자세한 포맷으로 출력합니다.
- L : 프로세스의 스레드 정보를 추가하여 출력합니다.
-L 옵션을 추가했을 때 나오는 NLWP 항목이 프로세스의 스레드 개수를 의미합니다. 확인하는 김에 다른 필드명의 의미도 알아보겠습니다.
- UID : 프로세스를 실행하는 사용자의 ID입니다.
- PID : 프로세스의 고유 식별자입니다.
- PPID : 부모 프로세스의 ID입니다.
- C : 프로세스의 CPU 사용량입니다.
- STIME : 프로세스가 시작된 시간입니다.
- TTY : 프로세스와 연결된 터미널 장치입니다.
- TIME : 프로세스가 CPU를 사용한 총시간입니다.
- CMD: 프로세스를 실행하는 명령어 또는 프로세스의 이름입니다.
L 옵션을 추가하면 아래와 같은 필드를 추가로 확인할 수 있습니다.
- LWP : 스레드의 고유한 식별자입니다.
- NLWP : 프로세스에 속한 스레드의 총개수입니다.
- PRI : 스레드의 우선순위입니다.
- NI : 스레드의 nice 값입니다.
- TIME : 스레드가 CPU를 사용한 총시간입니다.
- CMD : 스레드를 실행하는 명령어 또는 스레드의 이름입니다.
특정 프로세스 스레드 확인 방법
ps -efL 명령어를 grep이나 sort 등과 함께 쓰면 좀 더 원하는 정보를 추려서 출력할 수 있습니다.
1. PID 기준으로 프로세스의 스레드 정보 확인
ps -efL | grep PID
예를 들어, 제 OS에서 실행 중인 프로세스인 mongdb의 스레드 수를 확인해 보겠습니다. mongodb의 PID를 이용해 아래와 같이 확인할 수 있습니다.
2. 프로세스명 기준으로 스레드 정보 확인
ps -efL | grep 프로세스명
ps 출력에는 프로세스명도 있기 때문에 mongodb의 프로세스명인 mongod로 스레드를 확인할 수도 있습니다. pid 기준으로 출력한 것과 결과는 같습니다. 하나의 프로세스에는 여러 개의 스레드가 존재할 수 있기 때문에 96244라는 하나의 프로세스에 33개의 스레드가 생성된 것을 볼 수 있습니다.
3. CPU 사용량 기준으로 확인
CPU 사용량이 높은 프로세스를 기준으로 스레드를 확인하고 싶다면 아래와 같이 --sort와 함께 명령할 수 있습니다.
ps -efL --sort=-pcpu
'운영체제(OS)' 카테고리의 다른 글
맥북 아이콘 변경하는 방법 (넷플릭스 바로가기 아이콘 만들기) (0) | 2023.07.24 |
---|---|
맥북 그림판 기능 사용하는 방법 (미리보기) (0) | 2023.07.23 |
윈도우 프로세스 스레드 수 확인하는 방법 (0) | 2023.07.08 |
리눅스 hostname이란? 변경 방법 (0) | 2023.07.06 |
윈도우10 업데이트 다시 제거하는 방법 (0) | 2023.07.03 |