며칠전부터 원인을 알 수 없는 워드프레스 로그인이 느려지는 경우가 있어서 원인을 찾아보았습니다. 보통 1초내로 로그인이 되던것이 거의 1분이상 걸리더군요. 딱히 워드프레스나 웹서버, PHP 설정을 건든적이 없는데 참 이상한 일입니다.
하지만 잘 돌던게 문제가 생긴다면 당연히 뭔가 변경한 것 때문에 이상이 생긴게 분명합니다.
일단 애꿎은 서버의 설정파일들을 계속 봐보다가 답이 안나와서 다시 이번에는 mysql 에서 로그인시 process list 를 확인을 해보았습니다.
MariaDB [(none)]> show processlist;
로그인중 계속 확인해봤지만 별다른 특이점은 없었습니다. 딱히 top 에서 mysql 디비 서버에 부하가 걸리는 것도 아니었고요.
이번엔 서버의 프로세스 목록을 살펴봤습니다. 물론 로그인이 오래 걸리는 그 때 말이죠..
$ ps aufx
...
root 13736 0.0 0.2 474124 18552 ? Ss Apr28 0:17 php-fpm: master process (/etc/php/7.3/fpm/php-fpm.conf)
www-data 32532 0.9 1.3 580544 107296 ? S 09:44 0:12 \_ php-fpm: pool www
www-data 32546 1.1 1.1 576400 92532 ? S 09:45 0:14 \_ php-fpm: pool www
www-data 32613 0.9 1.4 593268 121768 ? S 09:47 0:10 \_ php-fpm: pool www
www-data 603 0.0 0.0 4628 836 ? S 10:05 0:00 \_ sh -c /usr/sbin/sendmail -t -i
www-data 604 0.0 0.1 105436 8452 ? S 10:05 0:00 \_ /usr/sbin/sendmail -t -i
프로세스 목록을 보니 이상한 낌새를 찾을 수 있었습니다. 이상하게 저 sendmail 프로세스가 계속 떠있더군요. 혹시나해서 계속해서 ps 를 때려서 목록을 실시간으로 확인해봤는데.. 저 sendmail 프로세스가 사라지자 바로 로그인이 완료되더군요.
이때부터 웹서버나 PHP가 아닌 sendmail 쪽이 문제가 있다는 것을 알게되었습니다.
바로 /var/log/mail.log 와 mail.err 파일을 확인해 보았습니다. (리눅스 배포본 혹은 사용하는 sendmail 서비스 종류에 따라 이 경로는 달라질 수 있습니다. 여기서는 우분투 18.04 64bit sendmail 기준입니다.)
root@doogle:/var/log# tail mail.log
...
May 1 09:45:28 doogle sm-mta[645]: 04117BMp000643: to=<www-data@doogle>, delay=00:00:00, xdelay=00:00:00, mailer=esmtp, pri=123738, relay=doogle [172.18.0.1], dsn=4.0.0, stat=Deferred: Connection refused by doogle
root@doogle:/var/log# tail mail.err
May 1 09:40:01 doogle sm-msp-queue[32432]: My unqualified host name (doogle) unknown; sleeping for retry
May 1 09:41:01 doogle sm-msp-queue[32432]: unable to qualify my own domain name (doogle) -- using short name
May 1 09:44:28 doogle sendmail[32530]: My unqualified host name (doogle) unknown; sleeping for retry
May 1 09:45:28 doogle sendmail[32530]: unable to qualify my own domain name (doogle) -- using short name
결국 원인을 찾았습니다.
/etc/hostname 을 바꾼게 원인이었더군요. 이걸 바꾼이유는 쉘에서 뜨는 값이 어차피 doogle만 나오니 hostname 을 doogle.link 에서 doogle 로 바꿔버렸던 것이 문제였습니다.
제대로 domain name 형식으로 doogle.link 로 바꿔줍니다. ㅜㅜ
# vi /etc/hostname
doogle.link
:wq 로 저장하고 나옵니다.
# 현재 서버에 반영하기 위해 아래와 같이 명령어를 호출합니다.
# hostname -F /etc/hostname
# 이제 hostname 을 쳐보면 바뀌었는지 확인할 수 있습니다.
# hostname
doogle.link
우분투에서는 아래와 같이 간단하게 변경할 수도 있습니다.
# hostnamectl set-hostname doogle.link
이렇게 별것 아닌듯한 설정도 엄청난 문제를 야기할 수도 있습니다. 오늘 또 명심하게 되네요. ^^
답글 남기기
댓글을 달기 위해서는 로그인해야합니다.