Guider는 주로 Python으로 작성된 무료 오픈소스 시스템 전반 성능 분석 도구로, 리눅스 운영체제에서 사용할 수 있습니다.
이 도구는 시스템 자원 사용량을 측정하고 시스템 동작을 추적하도록 설계되어, 성능 문제를 효과적으로 분석하거나 성능 튜닝 작업을 손쉽게 수행할 수 있도록 돕습니다.
CPU, 메모리, 디스크 사용량을 스레드·프로세스·시스템 함수(사용자/커널) 단위까지 상세하게 보여주기 때문에, 비정상적인 시스템 성능 저하의 원인을 파악하거나 전반적인 시스템 성능을 개선하는 작업이 한결 간편해집니다.
시스템 요구 사항
- 리눅스 커널 3.0 이상
- Python 2.7 이상
- 커널 버퍼 크기 40960
이 글에서는 Guider를 소스 코드로부터 빌드하고 설치한 뒤, 이를 활용해 리눅스 시스템 전반의 성능을 분석하고 개선하는 방법을 소개합니다.
Guider 빌드 및 설치 방법
리눅스에 Guider를 설치하려면 먼저 GitHub에서 저장소를 클론합니다.
$ git clone https://github.com/iipeace/guider.git
$ cd guider
$ guider.py [설치 없이 바로 실행]
guider.py는 별도 설치 과정 없이 바로 실행할 수 있습니다. 또는 아래 명령어로 직접 빌드 후 설치할 수도 있습니다.
$ make
$ sudo make install
시스템에 PIP가 설정되어 있다면 다음 명령어 하나로 간단히 설치할 수 있습니다.
$ sudo pip install --pre guider
Guider로 리눅스 시스템 성능 분석하기
기본적으로 Guider는 실행 시 자동으로 버퍼 크기를 설정하지만, 실행 중 오류가 발생한다면 먼저 현재 버퍼 크기를 확인해 보세요.
$ sudo cat /sys/kernel/debug/tracing/buffer_size_kb
값이 40960보다 작다면 아래와 같이 필요한 값으로 변경합니다.
$ echo 40960 | sudo tee /sys/kernel/debug/tracing/buffer_size_kb
이제 다음 문법으로 Guider를 스레드(thread), 함수(function), top, 파일(file), 시스템(system) 모드 중 원하는 모드로 실행할 수 있습니다.
$ guider [ mode | file ] [options]
대부분의 커맨드라인 기반 리눅스 성능 분석 도구와 마찬가지로, 출력 내용을 선명하게 확인하려면 화면 폭이 넓은 터미널 환경을 권장합니다.
스레드 모드에서 CPU 사용량 분석
다음 명령어는 스레드 모드에서 정밀 추적을 시작합니다(추적 종료는 [Ctrl+c]). 추적을 중단하면 데이터가 저장되고 분석이 자동으로 진행된 후 분석 보고서가 화면에 표시됩니다.
$ sudo guider record
분석 보고서에는 일반 시스템 정보, OS 정보, CPU 정보, 메모리 정보, 디스크 정보가 포함되며, 페이지 하단에는 스레드 정보까지 확인할 수 있습니다. 위아래 방향키(Up/Down)로 스크롤하며 내용을 살펴보면 됩니다.
Top 모드로 실시간 리눅스 모니터링
다음 명령어를 실행하면 리눅스 프로세스들의 자원 사용량을 실시간으로 확인할 수 있습니다.
$ sudo guider.py top
-i 옵션을 사용하면 출력 갱신 주기(초 단위)를 지정할 수 있습니다.
$ sudo guider top -i 2
자원 사용 관련 모든 정보를 확인하려면 -a 플래그를 추가하세요.
$ sudo guider top -a
PID로 특정 프로세스 분석하기
먼저 pidof나 ps 명령어로 대상 프로세스의 ID(PID)를 확인합니다.
$ pidof apache2
또는
$ ps -e | grep apache2
그런 다음 아래 명령어로 해당 프로세스의 자원 사용량을 분석합니다. 이 명령은 CPU 사이클, 명령어 수, IPC, 폴트(faults), 캐시 미스, 브랜치 미스 등 다양한 지표를 실시간으로 출력합니다. 여기서 -g 옵션은 필터 역할을 하며, 예시에서는 프로세스 ID를 지정했습니다.
$ sudo guider top -eP -g 1913
출력 결과 파일로 저장하기
추적 데이터나 기타 출력 결과를 파일로 저장해 나중에 분석할 수도 있습니다. 아래 명령은 추적 데이터를 현재 디렉터리의 guider.dat(기본값) 파일에 저장하며, 다른 경로를 지정하는 것도 가능합니다.
$ sudo guider -s .
일반 출력 결과를 파일로 저장하려면 아래처럼 실행하세요. 이 경우 현재 디렉터리의 guider.out(기본값) 파일에 저장됩니다.
$ sudo guider top -o .
저장된 파일은 cat 명령어로 언제든 확인할 수 있습니다.
$ cat guider.dat
$ cat guider.out
Guider의 옵션 목록은 매우 방대해 이 글에서 모두 다룰 수 없습니다. 모든 옵션과 추가 사용 예제는 도움말 페이지에서 확인하세요.
$ guider -h
Guider GitHub 저장소: https://github.com/iipeace/guider
마무리
Guider는 앞으로 더욱 주목받을 만한 훌륭한 시스템 전반 성능 분석 도구입니다. 숙련된 리눅스 사용자에게 특히 적합하며, 다양한 기능을 직접 사용해 보고 인상적인 점을 피드백으로 공유해 주시기 바랍니다. 유사한 기능을 가진 다른 도구를 알고 계시다면 그것도 함께 알려주세요.