Image

지식 기반 → 리눅스 콘솔 속도 저하 문제: strace를 사용하여 원인 찾기

[가상 서버]
출판 날짜: 27.08.2026

콘솔이 느리게 작동하면 일반적으로 서버가 높은 부하 상태에서 실행되어 명령이 큰 지연과 함께 수행된다는 느낌을 주지만, 항상 그런 것은 아닙니다.

top, ping, iostat과 같은 기본 명령을 실행할 때 콘솔 응답이 느린 다른 원인도 있습니다.

지연의 정확한 원인을 파악하기 위해 strace 명령을 사용하겠습니다.

1. 설치

apt install strace

2. 사용 예제

2.1 모두 표시

strace -r top -n 1

2.2 결과 요약

strace -r top -c 1

출력이 너무 많은 정보를 포함하므로 더 간결한 버전을 사용할 수 있습니다:

strace -r -e trace=connect,poll,openat,stat -o top_small.log top -n 1

3. 출력 분석

0.000231 poll([{fd=3, events=POLLIN}], 1, 5000) = 0 (Timeout)
5.003045 poll([{fd=3, events=POLLOUT}], 1, 0) = 1 ([{fd=3, revents=POLLOUT}])

타임아웃이 5000ms인 시스템 호출 poll이 DNS 서버(8.8.8.8)로부터 응답을 받지 못했습니다. 이는 정확히 5초가 걸렸습니다.

5.005113 poll([{fd=3, events=POLLOUT}], 1, 0) = 1 ([{fd=3, revents=POLLOUT}])

첫 번째 직후, top은 동일한 DNS 서버를 사용하여 다시 요청을 시도하고 다시 5초를 기다립니다.

4. 결론

명령 실행 시 10초의 지연은 서버 부하와 관련이 있는 것이 아니라 /etc/resolv.conf에 지정된 DNS 서버의 응답을 오래 기다리기 때문입니다.

Google의 글로벌 DNS를 사용하는 경우, 일부 국가에서 차단될 수 있습니다. 저희의 경우도 그랬습니다. 해당 국가에 있는 다른 DNS로 변경하시면 됩니다.





No Comments Yet