READPROFILE(8)

이름
readprofile - kernel profiling 정보를 읽기 위한 연장

사용법
readprofile [ 옵션 ]

버전
이 매뉴얼 페이지는 readprofile 버전 1.1에 대한 것이다.

설명

readprofile 풀그림은 /proc/profile 파일을 읽어 그 정보를 표준 출력으로 보여준다. 출력은 세칸으로 나뉘어 출력되는데, 첫째칸에는 clock ticks의 숫자, 둘째칸에는 많은 틱스(ticks)가 발생되는 커널 안의 C 함수 이름, 셋째칸에는 프로시져의 일반화된(normalized) `load(사용량)'를 보여준다. 그 프로시져의 `load' 틱스의 숫자와 프로시져의 길이 사이 비율로 계산된다. 이렇게 각 정보를 읽기 쉽게 공백문자를 채워서 보여준다.

사용할 수 있는 옵션은 다음과 같다.

-m 맵파일
    맵파일을 지정한다. 초기값은 /usr/src/linux/System.map. 커널 버전 1.1.7x 종류에서는 readprofile 명령이 이 초기 맵 파일을 열지 못하는 경우가 있다. 이럴때는, 이 옵션을 사용해서 맵 파일을 /usr/src/linux/zSystem.map 으로 지정한다. 한번도 스스로 커널을 컴파일 한적이 없다면, 이 옵션을 사용해야한다. 파일 이름에서 `.gz'로 끝나는 압축파일을 지정할 수도 있으며, 이때는 이 풀그림에서 자동으로 풀어서 사용한다.

-p 프로파일
    읽을 profile 파일을 지정한다. 초기값은 /proc/profile 파일이다. 이 옵션은 커널을 바꾸었을 때 이전 커널의 프로파일을 보려고 할때 유용하게 쓰인다. /proc/profile 파일은 `cat', `cp' 명령으로 사용자가 원하는 복사본 파일을 만들 수 있다. 이 파일이 `.gz' 확장자가 있어 압축되어 있으면, 자동으로 풀어서 보여준다. 프로파일은 gzip 명령으로 압축을 하면 50-100배 가량 크기를 줄일 수 있다.

-i  Info. 이 옵션은 커널에 의해서 사용되는 profiling 단계만 보여준다. profiling 단계란 profiling 버퍼의 resolution이며, 커널 환경설정(`make config')하는 동안 선택된다. -t (terse) 옵션이 -i 옵션과 함께 사용되면 10진수만 보여진다.

-a  맵 파일의 모든 심블를 보여준다. 초기값으로 틱스값이 0인 프로시져는 보여주지 않는다.

-r  profiling 버퍼를 리셋한다. 이 옵션은 root만 사용할 수 있다. 왜냐하면 /proc/profile 파일에 쓰기를 할 수 있는 권한이 root에게만 있기 때문이다.

-t  Terse(간략하게 보여주기). 이 옵션은 공백문자 채움을 하지 않고 보여준다. 이것은 readprofile 명령이 실행될 때의 원시적인 포멧 방식이다.

-v  자세하기 보여주기. 이 옵션은 네칸으로 보여주는데, 첫번째는 커널 함수들의 RAM 주소, 둘번째는 함수 이름, 세번째는 클럭 틱스값, 네번째는 사용량.

-V  버전 정보를 보여주고 마친다.

EXAMPLES
클럭 틱스 순서로 프로파일링 버퍼 보기:
   readprofile | sort -nr | less
프로시져 크기가 큰 것 순으로 20개만 보기:
   readprofile | sort -nr +2 | head -20
파일시스템에 관한 프로파일만 보기:
   readprofile | grep _ext2
메모리 주소와 함께 모든 커널 정보 보기:
   readprofile -av | less
예전에 작성해둔 압축된 프로파일 보기(현재 커널 정보가 아님):
   readprofile -p ~/profile.freeze.gz -m /zImage.map

벌레

readprofile 풀그림은 커널 버전이 1.1.73 이상 버전에서 사용이 가능한다. 그 이전 버전에서는 /proc/profile 파일이 없기 때문이다.

이 풀그림을 사용하기 위해서는 먼저 커널을 다시 환경설정하고, 다시 컴파일 하고, 다시 부팅해야한다. No profiling module is available, and it wouldn't be easy to build. So this can be construed as a feature.

Profiling is disabled when interrupts are inhibited. This means that many profiling ticks happen when interrupts are re-enabled. Watch out for misleading information.

만든이
Readprofile and /proc/profile are by Alessandro Rubini (rubini@ipvvis.unipv.it)

관련 파일
/proc/profile              프로파일링 버퍼의 이진파일.
/usr/src/linux/System.map  커널의 심블 테이블
/usr/src/linux/zSystem.map 심블 테이블의 옛이름
/usr/src/linux/*           프로파일 정보로 나타날 모든 파일