[초오보]님이 남기신 글:
>-----------------------------------------
>답변자가 기본적으로 참고할 내용입니다.
>- 배포판(옵션) : redhat 7.3
>- 커널버전(옵션)
: 2.4.20
>- 데몬버전(예:apache
1.3.27) : 1.3.27
>- 데몬설치유형(RPM/컴파일/기타)
: 컴파일
>-----------------------------------------
>
>안녕하세요..산이님
>
>현재 keepalive off 로 서비스 중인데요..
>
>httpd 가 cpu 점유율 99.9 를 잡아먹으면서..
>
>로드를 올리네요..
>
>그냥 가만히 놔두려다가 kill로 죽이긴 했는데..
>
>어떤페이지인지
알아볼수는 없는지요..( 1번 질문..)
>
관련 명령어 : ps, netstat, lsof, fstat(?)
아파치 로그에서 현재시각을 기준으로 대충 짐작할 수는
있지만
초보자가 찾아내기에는 상당히 까다롭습니다.
좀 찾기가 어려우면
http://www.linuxchannel.net/board/read.php?table=qna&no=4071
이와 같이 아파치 LogFormat %T 를 추가해서 어느 요청이
가장 많은 시간이 걸렸는지 확인해 보세요.
>ll /proc/pid 로 찾아보면
>
>디렉까지 밖에 안나오던데..ㅡ.ㅡa
>
>그리고 maxclient 보통 어느정도로 잡고 서비스
해야되는지요..(2번
질문)
>
>현재 2048에서 1024로 줄여놓긴 했습니다만..
>
>좋은하루 되세요..
MaxClient 는 시스템 메모리와 httpd 데몬 싸이즈를 기준으로 하면
최대 값이 나옵니다.
만약 시스템에 1G 메모리가 있고 httpd RES(메모리 크기)가 5M 라면
1024 / 5 = 205 정도가 나옵니다.
이값이 원활한 최대 동시 접속 커넥션을 말합니다.
실제로 웹에서 205 동시 커넥션이라면 상당히 바쁜 서버입니다.
205 * 3 = 715 정도가 아마 최대값이 될듯 하네요.
(아파치 fork 방식에서)
그래서 보통 웹서버는 응답을 하고 나면 바로 끊어주어 메모리
사용량을 줄여줘야 합니다.
/etc/sysctl.conf 에서
net.ipv4.tcp_fin_timeout = 5
net.ipv4.tcp_keepalive_time = 10
net.ipv4.tcp_tw_recycle = 1
이렇게 아주 컴팩트한 설정도 할 수 있습니다.
|