시스템을 운영하다보면 어떤 이상한? 문제가 발생하기도 한다.
이런 프로세스의 문제를 분석하기 위하여 사용하는 도구가 trace유틸리티이다.
그럼 사용법을 알아보자
strace는 System-call tracer라는 의미로 프로세스가 호출하는 시스템 콜을 보여준다.
아래의 명령으로 확인 가능하다.
# strace -fFp [수행 중인 서버 PID]
f는 fork되는 자식 프로세스를 포함
F는 vfork에 의해 생성된 자식 프로세스를 포함
p는 PID를 지정한다는 말이다.
예)
# strace -fFp 9563
select(0, NULL, NULL, NULL, {0, 500000}) = 0 (Timeout)
kill(11609, SIG_0) = 0
stat64("/tmp/pth_deamon/11609.pid", {st_mode=S_IFREG|0666, st_size=23, ...}) = 0
time(NULL) = 1243433163
kill(10776, SIG_0) = 0
stat64("/tmp/pth_deamon/10776.pid", {st_mode=S_IFREG|0666, st_size=23, ...}) = 0
time(NULL) = 1243433163
kill(28155, SIG_0) = 0
더욱 자세한것은 man -a strace로 확인가능하다.
추가로...
ltrace를 이용하면 프로세스가 호출하는 공유라이브러리함수를 확인할 수 있다.
좌측은 호출하는 함수 정보이고, 우측 = 다음은 리턴 값이다.
# ltrace -Sp 3454
select(0, 0, 0, 0, 0xbf884b78 <unfinished ...>
SYS__newselect(0, 0, 0, 0, 0xbf884b78) = 0
<... select resumed> ) = 0
__xstat(3, "/tmp/pth_deamon/29534.USR2", 0xbf884bd0 <unfinished ...>
SYS_stat64(0xa053a3c, 0xbf884b20, 0xb0dff4, 3, 0) = -2
<... __xstat resumed> ) = -1
getpid() = 29534
time(NULL <unfinished ...>
SYS_time(0, 0x824c888, 0, 100, 0) = 0x4a1d49b5
<... time resumed> ) = 1243433397
pthread_mutex_lock(0x824fa8c, 0xbf884c65, 0, 0, 0x824c888) = 0
pthread_mutex_unlock(0x824fa8c, 0xbf884c65, 0, 0, 0x824c888) = 0
이런 프로세스의 문제를 분석하기 위하여 사용하는 도구가 trace유틸리티이다.
그럼 사용법을 알아보자
strace는 System-call tracer라는 의미로 프로세스가 호출하는 시스템 콜을 보여준다.
아래의 명령으로 확인 가능하다.
# strace -fFp [수행 중인 서버 PID]
f는 fork되는 자식 프로세스를 포함
F는 vfork에 의해 생성된 자식 프로세스를 포함
p는 PID를 지정한다는 말이다.
예)
# strace -fFp 9563
select(0, NULL, NULL, NULL, {0, 500000}) = 0 (Timeout)
kill(11609, SIG_0) = 0
stat64("/tmp/pth_deamon/11609.pid", {st_mode=S_IFREG|0666, st_size=23, ...}) = 0
time(NULL) = 1243433163
kill(10776, SIG_0) = 0
stat64("/tmp/pth_deamon/10776.pid", {st_mode=S_IFREG|0666, st_size=23, ...}) = 0
time(NULL) = 1243433163
kill(28155, SIG_0) = 0
더욱 자세한것은 man -a strace로 확인가능하다.
추가로...
ltrace를 이용하면 프로세스가 호출하는 공유라이브러리함수를 확인할 수 있다.
좌측은 호출하는 함수 정보이고, 우측 = 다음은 리턴 값이다.
# ltrace -Sp 3454
select(0, 0, 0, 0, 0xbf884b78 <unfinished ...>
SYS__newselect(0, 0, 0, 0, 0xbf884b78) = 0
<... select resumed> ) = 0
__xstat(3, "/tmp/pth_deamon/29534.USR2", 0xbf884bd0 <unfinished ...>
SYS_stat64(0xa053a3c, 0xbf884b20, 0xb0dff4, 3, 0) = -2
<... __xstat resumed> ) = -1
getpid() = 29534
time(NULL <unfinished ...>
SYS_time(0, 0x824c888, 0, 100, 0) = 0x4a1d49b5
<... time resumed> ) = 1243433397
pthread_mutex_lock(0x824fa8c, 0xbf884c65, 0, 0, 0x824c888) = 0
pthread_mutex_unlock(0x824fa8c, 0xbf884c65, 0, 0, 0x824c888) = 0
728x90
댓글