[산이]님이 남기신 글:
>[무식이..]님이
남기신 글:
>
>>안녕하세요...
>>뭐부터 말씀드려야될찌..
>>
>>5월부터 여태까지 잘 돌아가던 써버가..
>>며칠전부터 맥스 클라이언트 초과로 아파치가 다운이
되네요..
>>
>>로그를 뒤지고 뒤져보고 했지만...
>>별다른걸 찾지 못했습니다..
>>
>>계속 찾아보고 세팅에 문제가 있는지..살펴보고
있구요...
>>며칠전엔 top명령어 올려놓고..밤을
새웠는데요..
>>그때는 아무 이상 없더라구요..
>>계속 밤 세울수도 없는일이고..
>>
>>일단 방편으로..생각해본게요..
>>load average 가 3.0 이상이 됐을때...아파치를
리스타트 시켜주고 싶은데..그렇게
해줄수 있는 스크립트가 있을까요?
>>
>>
>>정말 답답해 죽겠네요...
>
>========================================
>
>우선 httpd.conf 에서 KeepAlive Off 로 확인 및 설정하세요.
>
># echo 10 > /proc/sys/net/ipv4/tcp_fin_timeout
>
>그리고 /etc/sysctl.conf 파일에
>
>net.ipv4.tcp_fin_timeout = 10
>
>설정
>
>....
>
>loadavg
>
># cat /proc/loadavg
>
>...
>
>-- checkavg.sh ---------
>#!/bin/sh
>
>maxavg=${1:-3} ## 비교 최대값이 3, 앞의 1 은 $1 을 의미함
>loadavg=`cat /proc/loadavg 2>/dev/null`
>curravg=`echo $loadavg | awk -F '.' '{print $1}' 2>/dev/null`
>
>if [ "$curravg" -gt "$maxavg" ] ; then
if [ "$curravg" -ge "$maxavg" ] ; then
> /usr/local/apache/bin/apachectl start >/dev/null 2>&1
>fi
>
>exit 0
>-------------------------
>
>실행은
>
># chmod u+x checkavg.sh
># /path/to/checkavg.sh
>
>또는
>
># /path/to/checkavg.sh 3
>
>이런식으로 주기적으로 crond 으로 돌리면 될것 같네요.
========================================
if [ "$curravg" -gt "$maxavg" ] ; then
로 비교할 때에는
## 가운데 -3은 최대값이 3이라는 의미,
## - 는 대입을 말합니다.
## 왼쪽 1은 $1 를 말하고,
## 오른쪽 -1 는 빼기 1, 즉 항상 정수형으로 비교하기 때문에
## 실제 loadavg 가 3.1 이면 이것은 3이 되어
## apachectl 를 재시작하지 않습니다.
## 따라서 비교할때는 최대값 3 에서 1를 뺀 2값으로 비교해야
함
##
maxavg=$((${1:-3}-1))
이런식으로...
|