2014년 7월 8일 화요일

httpd(아파치)최적화. MaxClient 값 구하기

httpd(아파치) 튜닝에서 가정 중요한 부분은

MaxClient 값과 KeepAlive 라고 본다.
그중 KeepAlive 는 정적 파일을 경우 Off, 동적 파일을 일 경우 On 이 좋다고 한다.

웬만한 httpd 서버는 php 와 연동하여 사용하기 때문에 On으로 설정하는 게 좋을 것 같다.
문제는 MaxClient 값을 어떻게 구할 것인가이다.

MaxClient 값 구하기 스크립트
#/bin/sh

TotalMem=`free -m | grep Mem: | awk {'print $2'}`
TotalMem80per=$(echo "$TotalMem*0.8"|bc)
#pa aux 의 6번째 값이 RSS 인데, 이 값을 가져옴.
TotalHttpMem=`ps aux | grep httpd | grep -v grep | awk '{print $6}' | awk '{total = total + $1} END {print total/1024}'`
httpCount=`ps aux | grep httpd | grep -v grep | wc -l`
averageHttpMem=$(echo "$TotalHttpMem / $httpCount" | bc)
MaxClient=$(echo "$TotalMem80per / $averageHttpMem" | bc)

echo "총 메모리 : " $TotalMem
echo "총 메모리의 80% : " $TotalMem80per
echo "http use mem total : "$TotalHttpMem
echo "http process count : "$httpCount
echo "http use mem average : "$averageHttpMem

echo "MaxClients   " $MaxClient

내가 세운 공식은 다음과 같다.
총메모리의 80% / httpd의 평균 메모리 사용량

서버 자체가 웹서버 전용이라면 메모리의 80%는 빼도 상관 없을 듯 하다.

참고 사이트

http://openlife.tistory.com/340
http://jjosh.tistory.com/15
https://kldp.org/node/28074
http://helloworld.naver.com/helloworld/132178

RES의 의미
RES  : 물리적인 메모리를 사용하는 크기
VIRT  : SWAP 영역에서 사용하는 메모리 + shared + swapped를 합친것

http://www.tuning-java.com/454



----

기타 찾아본 최적화 스크립트

https://github.com/gusmaskowitz/apachetuner

https://github.com/gusmaskowitz/apachebuddy.pl

http://surniaulula.com/2012/11/09/check-apache-httpd-mpm-config-limits/

댓글 없음:

댓글 쓰기