반응형

sudo su -가 느려지는 현상은 리눅스에서 꽤 고전적인 미스터리다. 겉으로 보면 단순히 root로 전환하는 명령인데, 내부에서는 꽤 많은 일이 벌어진다. 대부분의 경우 병목은 네트워크 조회나 PAM 인증 과정에서 발생한다. 차근차근 좁혀보면 원인을 찾을 수 있다.
먼저 가장 흔한 원인부터 보자. DNS 조회 지연이다.
sudo와 su는 실행될 때 현재 시스템의 hostname을 확인하고 이를 DNS로 조회하려는 경우가 있다. 이때 /etc/hosts에 hostname이 없거나 DNS가 느리면 몇 초씩 지연된다.
확인 방법은 간단하다.
hostname
cat /etc/hosts
cat /etc/hosts
보통 다음과 같은 줄이 있어야 한다.
127.0.0.1 localhost
127.0.1.1 myhostname
127.0.1.1 myhostname
여기서 myhostname은 hostname 명령 결과와 동일해야 한다.
두 번째 흔한 원인은 reverse DNS lookup이다.
SSH나 sudo는 종종 IP 주소를 hostname으로 변환하려고 한다. DNS 서버가 응답을 안 하면 타임아웃이 발생한다.
테스트는 이렇게 한다.
time sudo -l
여기서 몇 초 이상 걸리면 DNS 문제 가능성이 높다.
728x90
반응형