Section 6.5: 프로세스를 모니터링하고 정보를 수집하기

종합적으로 보았을 때, 리눅스 호스트에서는 프로세스를 모니터링하는 크게 두가지의 방법이 존재한다.

정적 (static) 모니터링

가장 널리 사용되고 있는 명령어는 바로 ps (다른 이름으로는 process status 라고 불린다) 이다. 이 명령어는 현재 실행중인 프로세스에 대해 프로세스 식별자 (PID) 를 포함하는 각종 정보를 제공하는 데에 사용된다.

아래에는 특정 정보를 수집하기 위한 몇가지 유용한 옵션들이 소개되어 있다.

프로세스들을 계층 구조로 표시하기:

$ ps -e -o pid,args --forest

프로세스들을 CPU 사용량 퍼센티지 순으로 정렬하기:

$ ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed '/^ 0.0 /d'

프로세스들을 메모리 사용량 (KB) 순으로 정렬하기:

$ ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS

특정 프로세스 (예제에서는 "firefox-bin" 프로세스가 사용되었다) 의 모든 스레드들을 나열하기:

$ ps -C firefox-bin -L -o pid,tid,pcpu,state

검색하고자 하는 프로세스를 찾았다면 lsof 를 이용하여 해당 프로세스 id 가 open 한 경로 등 관련된 정보를 수집할 수 있다.

$ lsof -p $$

역주 : $$ 는 현재 bash shell 의 PID 를 의미합니다.

혹은 경로에 기반하여 해당 경로를 open 한 프로세스들의 목록을 나열할 수도 있다.

$ lsof ~

대화형 (interactive) 모니터링

동적 모니터링 방면에서 가장 널리 알려진 도구는 바로 아래에 소개된 툴이다:

$ top

이 기본적인 명령어는 필터링을 위한 수많은 옵션과 (ps 명령어에 비해) 실시간으로 정보를 표시하는 기능을 제공하고 있다.

하지만 이 이외에도, 설치를 고려해 볼만한 더욱 향상된 버전의 top 대체품들이 존재한다.

$ htop -d 5

혹은

$ atop

이들은 모든 활동들을 로그파일에 기록할 수 있는 기능을 제공한다 (atop 은 기본적으로 600 초마다 모든 활동들을 기록하게 되어 있다)

이러한 목록에는 iotop 혹은 iftop 과 같은 몇가지 전문화된 명령어도 포함된다.

$ sudo iotop
본 문서는 Linux Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/GitBook/

반응형

+ Recent posts