리눅스 일반

[리눅스] 성능 툴 opensnoop 사용 방법

트리스탄1234 2024. 3. 29. 05:42
728x90
반응형

안녕하세요 이웃님들 ^.^
좋은 아침 입니다.
 
오늘은 리눅스 성능 툴 중 하니인 opensnoop 사용 방법에 대해서 포스팅을 해보려고 합니다.
opensnoop는 리눅스 시스템에서 파일 오픈 이벤트를 실시간으로 모니터링하는 도구입니다. 
 
opensnoop툴을 이용하여 어떤 프로세스가 어떤 파일을 오픈하는지 실시간으로 확인할 수 있거든요. 
그럼 opensnoop를 어떻게 사용하는지 살펴 봅시다.
 
사용을 하기 위해서는 우선 설치를 해야겠지요?
opensnoop는 BPF(Berkeley Packet Filter)를 사용하여 파일 오픈 이벤트를 모니터링하는 도구여서 이 도구는 bcc(BPF Compiler Collection)의 일부이거든요. 그래서 opensnoop를 설치하려면 먼저 bcc를 설치해야 합니다.
 
Ubuntu/Debian 기준으로 설치는 아래의 명령을 통해서 설치가 가능합니다. 

ubuntu@DESKTOP-H5OIPJC:~$ sudo apt-get install bpfcc-tools
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  ieee-data libbpfcc python3-bpfcc python3-netaddr
Suggested packages:
  ipython3 python-netaddr-docs
The following NEW packages will be installed:
  bpfcc-tools ieee-data libbpfcc python3-bpfcc python3-netaddr
0 upgraded, 5 newly installed, 0 to remove and 8 not upgraded.
Need to get 17.4 MB of archives.
After this operation, 74.5 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://archive.ubuntu.com/ubuntu focal/universe amd64 libbpfcc amd64 0.12.0-2 [14.9 MB]
Get:2 http://archive.ubuntu.com/ubuntu focal/universe amd64 python3-bpfcc all 0.12.0-2 [31.3 kB]
Get:3 http://archive.ubuntu.com/ubuntu focal/main amd64 ieee-data all 20180805.1 [1589 kB]
Get:4 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 python3-netaddr all 0.7.19-3ubuntu1 [236 kB]
Get:5 http://archive.ubuntu.com/ubuntu focal/universe amd64 bpfcc-tools all 0.12.0-2 [579 kB]
Fetched 17.4 MB in 12s (1439 kB/s)
Selecting previously unselected package libbpfcc.
(Reading database ... 53666 files and directories currently installed.)
Preparing to unpack .../libbpfcc_0.12.0-2_amd64.deb ...
Unpacking libbpfcc (0.12.0-2) ...
Selecting previously unselected package python3-bpfcc.
Preparing to unpack .../python3-bpfcc_0.12.0-2_all.deb ...
Unpacking python3-bpfcc (0.12.0-2) ...
Selecting previously unselected package ieee-data.
Preparing to unpack .../ieee-data_20180805.1_all.deb ...

 
설치를 했으면 사용을 해봐야겠죠?
실행은 아래의 명령으로 실행을 하면 됩니다.

sudo opensnoop

 
그럼 사용방법을 알아봐겠지요? 
opensnoop은 아래의 옵션을 제공을 합니다.
-n 또는 --name: 모니터링할 파일 이름을 지정합니다.
-p 또는 --pid: 특정 프로세스 ID(PID)만 모니터링합니다.
-t 또는 --timestamp: 이벤트 발생 시간을 표시합니다.
-e 또는 --extended: 더 자세한 정보를 표시합니다.
 
그럼 사용 예제를 보면 
우선 한개의 터미널에서 sudo opensnoop으로 툴을 실행을 시킵니다.

sudo opensnoop

 
터머널을 하나 더 열고.. 파일을 여는 명령을 실행을 해봅니다.

touch test.txt

 
그럼 아래와 같이 opensnoop 터미널 창에서 파일이 열렸다는 메세지가 보일겁니다.

PID    COMM               FD ERR PATH
1000   touch              3   0 /home/user/new_file.txt

이 출력에서 PID는 프로세스 ID, COMM은 프로세스 이름, FD는 파일 디스크립터, PATH는 열린 파일의 경로를 나타냅니다. 위의 예제에서는 touch 명령어로 새 파일을 만든 것이므로 해당 명령어에 대한 정보가 표시됩니다.
 
그럼 유용한 정보가 되었기를 바라면서 오늘은 이만 ~~~
좋은 하루 되세요
 
 

728x90
반응형