사이트가 느려지는 현상 점검

by ADMINPLAY posted Oct 08, 2008
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
아파치 접속이 느려졌을때 일반적으로 참고할 부분
 
1.해당 서버로 ping test를 한다.
time 값이 20이하면 네트워크는 이상이 없다.
(참고) ping test시 ping이 안 될 경우도 있다.
이럴때는 네트워크 이상일 수도 있지만 해당서버에서 ICMP를 차단해 놓았기 때문일 수도
있다.
이런 경우에는 서버관리자에게 문의해 본다.
예) ping yahoo.co.kr

 
2. 아파치 웹로그를 살펴본다
경로 : /usr/local/apache/logs

 
웹로그는 최대 생성할 수 있는 크기가 2G이며, 웹 로그의 크기가 커질수록 로그 파일을 읽어서 제일 하단에 로그를 쌓아야 하므로 로그파일이 클수록 웹 접속속도가 떨어지며, 사이트 접속자가 많은 경우에는 아예 웹사이트 자체에 아예 접속이 되지 않기도 한다.
따라서, 정기적으로 아파치 로그파일을 관리해주어야 한다.
 
⑴ 로그 파일이 쌓였을 때 삭제하는 방법.

 
? 명령어 : rm-rf access_log -> access_log 파일을 삭제.
        rm-rf error_log  -> error_log 파일을 삭제.

 
⑵ 아파치 로그파일이 쌓이지 않게 설정하는 법
로그파일이 쌓이지 않게 설정하기 전에 먼저 아파치 로그파일을 삭제 후 설정한다.
ln -s /dev/null /usr/local/apache/logs/access_log
ln -s /dev/null /usr/local/apache/logs/error_log

 
수정 후 아파치를 다시 시작해 준다.
 명령어 : apachectl restart

 
3. 현재 80번 포트를 사용해서 웹에 접속중인 사용자들의 현황을 살펴본다.
netstat -nap | grep :80 | grep EST | wc -l  등의 명령을 사용하면 현재 웹에 접속되어 있는 프로세서 수를 확인할 수 있다. 이 수가 httpd.conf에서 설정한 Maxclient와 가깝거나 혹은 더 많지는 않은지 살펴본다.
 
max client 256 -> 1024 (아파치 동시접속자 수를 256에서 1024로 늘림)

 

수정후 아파치를 다시 시작해 준다.
 
apachectl restart
 
httpd -V 로 확인 (정상적으로 수정되었는지 확인)

4. top 명령으로 현재 cpu의 사용률이나, 메모리 사용량 등을 체크해본다.
아파치 데몬으로 오랜시간 동안 접속이 유지되어있는 좀비 프로세서가 있는지 확인하다.
있을 경우 해당 프로세서를 강제 종료한다.
명령어 : top
빠져 나올 때 : Ctrl 키 + c 키

프로세서 강제 종료하는 법
명령어 : kill -KILL ‘PID Number’

 
예) top 프로세서를 강제종료 할 경우.
 kill -KILL 13917

 
※ 위의 점검을 위해서는 기본적으로 아파치 데몬 실행명령어에 익숙해야 한다.
? apachectl 이란?
apachectl - 아파치 웹서버 조절 인터페이스.
apachectl은 아파치 하이퍼텍스트 전송 프로토콜 (HTTP) 서버의 앞단이다.
이 프로그램은 관리자가 아파치 httpd 데몬을 조정하도록 돕는다.
 
apachectl command
 
옵션
-start
아파치 httpd 데몬을 시작한다. 이미 실행중이라면 오류를 낸다. apachectl -k start와 같다.
명령어 : apachectl start

 
-stop
아파치 httpd 데몬을 중단한다. apachectl -k stop과 같다.
명령어 : apachectl stop

 
 
 
-restart
아파치 httpd 데몬을 재시작한다. 데몬이 실행중이 아니라면, 시작한다. 데몬이 재시작시 실패하지 않음을 확인하기 위해 재시작 전에 자동으로 configtest 명령과 같이 설정파일을 검사한다. apachectl -k restart와 같다.
 
명령어 : apachectl restart

 
-graceful
아파치 httpd 데몬을 점잖게(gracefully) 재시작한다. 데몬이 실행중이 아니라면, 시작한다. 일반적인 재시작과 달리 현재 열려있는 연결을 끊지 않는다. 또, 이전 로그파일을 즉시 닫지 않는다. 즉, 로그순환 스크립트에서 이 명령을 사용한다면, 이전 로그파일을 처리하기전에 로그파일을 닫혔음을 보장하기 위해 상당히 기다려야 한다. 아파치가 재시작시 실패하지 않음을 확인하기위해 재시작 전에 자동으로 configtest 명령과 같이 설정파일을 검사한다. apachectl -k graceful과 같다.
 
명령어 : apachectl graceful

 
 
-configtest
설정파일의 문법을 검사한다. 설정파일을 읽고 Syntax Ok 혹은 특정 설정오류에 대한 자세한 정보를 알려준다. apachectl -t와 같다.
아래 옵션을 사용할 수 있지만, 앞으로 사라질 것이다.
 
명령어 : apachectl configtest

 
- help : 옵션에 대한 도움말을 보여준다.