Oprofile

- 실행중인 프로세스의 CPU Usage를 프로파일링

- 실행중인 프로세스의 어떤 함수가 CPU 자원을 많이 사용하는지를 식별

- Database 개발자에게 자주 사용됨

- 특정 함수가 많은 자원을 사용할 경우, 프로그램은 그 함수 콜을 줄일 수 있는 방법으로 재설계될 수 있음

- CPU 사용률이 낮은 장비(I/O 바운딩 서버나 Mutex 대기와 같은)에서는 별로 쓸모가 없음

- How to use

$ opcontrol --start (--no-vmlinux)

   -> 여기에서 실제 벤치마킹 수행

$ opcontrol --dump

$ opcontrol --shutdown

$ opreport -l /usr/local/bin/mysqld

 

 

RHEL5 에서 프로파일링

1. RHEL5.tar.gz 파일 서버 업로드

해당 RHEL5.tar.gz 파일을 RHEL 5 시스템 특정 디렉토리에 업로드 합니다.

2. RHEL5.tar.gz 압축 해제 및 kernel-debuginfo,gcc-debuginfo 패키지 설치

- 아래 명령어로 압축을 해제 한 후 해당 패키지를 설치 합니다.

3. oprofile 시작

3.1 다음 명령을 사용하여 oprofile를 시작합니다.

  • 만약 커널관련 프로파일링을 배제한다면 --vmlinux 옵션은 빼고 --no-vmlinux을 넣는다. (RHEL 6도 동일)

 

3.2 다음과 같이 프로파일러를 종료합니다.

  • 상황에 따라 다르지만 대략 30분 가량 수집을 한다. 아래와 같이 sleep으로 1800초(30분)간 진행 후 shutdown

 

3.3 디버깅에 필요한 디렉토리 tar 파일의 제출을 위해 tar 파일을 저장합니다.

 

3.4  opreport 명령어를 사용하여 아래 2개 명령어 수행 결과를 수집합니다.

 

3.5 수집 된 정보를 압축하여 메일로 보내주시면 됩니다.

 

RHEL 6 에서 프로파일링

1. RHEL6.tar.gz 파일 서버 업로드

해당 RHEL6.tar.gz 파일을 RHEL 6 시스템 특정 디렉토리에 업로드 합니다.

2. RHEL6.tar.gz 압축 해제 및 kernel-debuginfo,gcc-debuginfo 패키지 설치

 

3.oprofile 시작

3.1 다음 명령을 사용하여 oprofile를 시작합니다.

3.2 다음과 같이 프로파일 러를 종료합니다.

 

3.3 디버깅에 필요한 디렉토리 tar 파일의 제출을 위해 tar 파일을 저장합니다.

 

3.4 opreport 명령어를 사용하여 아래 2개 명령어 수행 결과를 수집합니다.

3.5 수집 된 정보를 압축하여 메일로 보내주시면 됩니다.

 

 

Linux - oprofile 이용한 CPU 자원 사용 프로파일링

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

Solve : *
18 + 10 =