| 1968 번 글의 답장글: Re: Re: Re: Re: Re: 어떤 유저가 얼마만큼의 CPU를 사용하는지 알 수 있을까요? |
| 글쓴이: 산이
[홈페이지]
|
글쓴날: 2004년 03월 08일 00:26:54 월(새벽) |
조회: 748 |
무슨 이유인지는 모르겠지만
전체적으로 적용이 안되는군요. (제 경우는 잘 됩니다.)
일단은 특정 가상호스트 섹션에만 우선적으로 설정 및 시범
테스트를
해 보세요.
아 그리고 단어의 개념상 trafficrx 는 traffic-rx 라는 의미인데
RX 가 아니고 TX 입니다. receive 가 아니고 transfer 라는
의미입니다.
굳지 파일이나 LogFormat nickname 을 고칠 필요는 없습니다만
깔끔하게 설정하기 원한다면 고치는 것이 좋겠죠.
LogFormat 는 각각 가상호스트 섹션에 모두 하나씩 설정할
필요없고
Main 설정에 하나씩만 실정하세요.
[하얀피]님이 남기신 글:
>확실히.. httpd.conf에서 메인부분에 적어주었습니다.
>
># user checklog
>LogFormat "%{%Y%m%d%H%M}t %v %b" trafficrx
>LogFormat "%{%Y%m%d%H%M}t %v %T" runtime
>
>CustomLog /usr/local/apache/logs/trafficrx_log trafficrx
>CustomLog /usr/local/apache/logs/runtime_log runtime
>
>### Section 3: Virtual Hosts
>
>NameVirtualHost ...
>
><VirtualHost ...>
>....
>....
></VirtualHost>
>
>logs 폴더에 보면
>-rw-r--r-- 1 root root 0 3월 7 23:32 runtime_log
>-rw-r--r-- 1 root root 0 3월 7 23:32 trafficrx_log
>분명히 로그 파일이 생성되긴 합니다.
>그러나 보다싶이 0바이트. 로그값이 전혀 저장되지
않네요.
>httpd.conf파일이라도
전체적으로 포스팅 해드려야 할까요?
>
>[산이]님이 남기신 글:
>
>>
>>[하얀피]님이 남기신 글:
>>
>>>아래 로그 기록을 각 버츄얼호스트 부분에 몽땅 써주어야
하나요???
>>>버츄얼 외의 공란에 써주었더니 파일생성은 되지만 로그는
안남네요..
>>>
>>>[산이]님이 남기신 글:
>>>
>>>>[하얀피]님이
남기신 글:
>>>>
>>>>>요즘 www 1번 서버와 3번서버가 랜덤적으로 폭주하고
있습니다.
>>>>>가끔 스스로 폭주가 멈추는 경우는 있지만...
>>>>>폭주할때마다
cpu가 99% 이상으로 차며 아파치 프로세서가 맥스를
넘어버립니다.
>>>>>어떤 계정에서의 무한루프쪽을 의심하고
있는데요.
>>>>>그래서 그런데..
>>>>>실시간으로
어떤 유저가 얼마만큼의 CPU를 사용하는지 알 수
있을런지요?
>>>>>일단 셸을 이용해서 cpu와 memory를 체크할 수 있는
스크립트를 사용하는데
>>>>>이것을 계정 list와 대조시켜서 계속 감지한다는게
조금--;;;;
>>>>>다른 방법이 없을까요???
>>>>>
>>>>>아래는 제가 구한 스크립트 입니다.
>>>>>#!/bin/sh
>>>>>#
>>>>># uid 찾기
>>>>>#
>>>>>ARG=$1
>>>>>FINDED_UID=$(cat /etc/passwd | grep ^$ARG | cut -f3 -d:)
>>>>>a=`ps -eo uid,pcpu |tail +2| tr -s [:space:]`
>>>>>set `echo $a`
>>>>>SUM=0
>>>>>SUM1=0
>>>>>while [ $# -gt 0 ]
>>>>>do
>>>>> FIRST=$1
>>>>> SECONT=$2
>>>>> if [ $FIRST -eq $FINDED_UID ]
>>>>> then
>>>>> SECONT_F=$(echo $SECONT|cut -f1 -d.)
>>>>> SECONT_S=$(echo $SECONT|cut -f2 -d.)
>>>>> SUM=`expr $SUM + $SECONT_F`
>>>>> SUM1=`expr $SUM1 + $SECONT_S`
>>>>> fi
>>>>>shift 2
>>>>>done
>>>>>SUM=`expr $SUM + $SUM1 / 10 `
>>>>>SUM1=`expr $SUM1 % 10`
>>>>>echo "현재 ${ARG}의 CPU 사용량은 $SUM.$SUM1% 입니다."
>>>>
>>>>========================================
>>>>
>>>>답변이 늦었습니다.
>>>>
>>>>사용자 계정에 대한 체크는 이와 같이 하면 됩니다.
>>>>다만 그 결과치가 몇 % 이상일 경우 관리자 메일로
보낸다거나
>>>>어떤 메시지가 출력하도록 설정해 놓으면 되겠죠.
>>>>
>>>>그런데
>>>>
>>>>apche 는 보통 nobody 아니면 www 권한으로 돌아가기
때문에
>>>>이와 같은 원리로는 체크할 수 없습니다.
>>>>
>>>>`가상호스트
== 계정'
>>>>
>>>>이라는 공식이 성립되므로 아파치 쪽에서 설정 및
모니터링해야 합니다.
>>>>
>>>>즉 어느 가상호스트에서
트래픽이 많이 생기는지 또한 어느
>>>>가상호스트에서
실행시간이 많이 걸리는지 체크해야 합니다.
>>>>
>>>>전자는 log 파일과 MRTG (설치/설정)를 또는 throttle 를
기준으로
>>>>방향을 잡고
>>>>후자 역시 log 파일을 중점으로 모니터링해야
합니다.
>>>>
>>>>[아파치 로그 포맷]
>>>>
>>>>http://linuxchannel.net/docs/apache_log.txt
>>>>
>>>>전자 :
>>>>
>>>>년도월일시간분
호스트네임 전송바이트
>>>>LogFormat "%{%Y%m%d%H%M}t %v %b" trafficrx
>>>>CustomLog /usr/local/apache/logs/trafficrx_log trafficrx
>>>>
>>>>후자는
>>>>
>>>>년도월일시간분
호스트네임 실생한시간
>>>>LogFormat "%{%Y%m%d%H%M}t %v %T" runtime
>>>>CustomLog /usr/local/apache/logs/runtime_log runtime
>>>>
>>>>물론 이 두개를 하나의 로그 파일로 관리할 수 도 있습니다.
>>>
>>>========================================
>>
>>========================================
>>
>>LogFormat "%{%Y%m%d%H%M}t %v %b" trafficrx
>>LogFormat "%{%Y%m%d%H%M}t %v %T" runtime
>>
>>CustomLog /usr/local/apache/logs/trafficrx_log trafficrx
>>CustomLog /usr/local/apache/logs/runtime_log runtime
>>
>>....
>>
>>NameVirtualHost ....
>>
>>이렇게 메인 설정 부분에 설정하세요.
>>
>>$v (호스트 네임) 가 있으므로 어느 호스트에서 이상이
있는지
>>쉽게 알 수 있을 겁니다.
>
>========================================
========================================
|
이전글 : Re: Re: Re: Re: 어떤 유저가 얼마만큼의 CPU를 사용하는지 알 수 있을까요?
다음글 : dns질문좀 들릴려고 합니다..
|
from 61.254.74.228
JS(Redhands)Board 0.4 +@
|