리눅스 분류
조건에 해당하는 PID 자동 Kill하는 방법은?
작성자 정보
- 홍석범 작성
- 작성일
컨텐츠 정보
- 3,078 조회
- 0 추천
- 목록
본문
안녕하세요..씨디네트웍스 홍석범입니다..
아래의 스크립트를 cron으로 등록해 두고 사용하시면....
Memory %가 높은 경우(ps 실행시 2%이상) 자동으로 해당 프로세스를 kill하게 됩니다.
# kill -9 `ps aux | grep nobody | awk '{if ($4 > 2) print $2}' `
해당 프로세스에 대해서는 lsof -p pid 와 strace -p pid 등으로 분석해 보시어 어떤 process에서 발생하는지 확인하시어 조처하시기 바랍니다.
감사합니다.
김상길 님의 글
리눅스 초보자 입니다.
어느날 웹서버가 자꾸 죽어서 top으로 확인해보니 아래붉은 줄 라인 처럼 특정PID가 메모리를 점차적으로 잡아먹어 결국 out of memory 와 함께 웹서버가 죽어버립니다.
1.특정 프로세가 정해놓은 메모리 사용량 이상이 되었을때 그 특정 프로세서를 자동으로 Kill하려면 어떻게 해야 되나요?
2. 그리고 근본적으로 어떤 대책을 세워야 할까요?
00:01:26 up 9:57, 2 users, load average: 1.40, 0.62, 0.46
133 processes: 132 sleeping, 1 running, 0 zombie, 0 stopped
CPU0 states: 0.0% user 0.2% system 0.0% nice 0.0% iowait 99.0% idle
CPU1 states: 3.0% user 0.2% system 0.0% nice 0.0% iowait 95.1% idle
Mem: 513148k av, 506628k used, 6520k free, 0k shrd, 880k buff
435140k actv, 24568k in_d, 10604k in_c
Swap: 1052216k av, 86268k used, 965948k free 186348k cached
133 processes: 132 sleeping, 1 running, 0 zombie, 0 stopped
CPU0 states: 0.0% user 0.2% system 0.0% nice 0.0% iowait 99.0% idle
CPU1 states: 3.0% user 0.2% system 0.0% nice 0.0% iowait 95.1% idle
Mem: 513148k av, 506628k used, 6520k free, 0k shrd, 880k buff
435140k actv, 24568k in_d, 10604k in_c
Swap: 1052216k av, 86268k used, 965948k free 186348k cached
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND
15452 nobody 15 0 255M 243M 56 S 3.3 48.6 0:10 1 httpd
1902 mysql 15 0 14288 3044 900 S 0.0 0.5 0:01 0 mysqld
1903 mysql 16 0 14288 3044 900 S 0.0 0.5 0:02 0 mysqld
1904 mysql 20 0 14288 3044 900 S 0.0 0.5 0:00 0 mysqld
1905 mysql 25 0 14288 3044 900 S 0.0 0.5 0:00 0 mysqld
15452 nobody 15 0 255M 243M 56 S 3.3 48.6 0:10 1 httpd
1902 mysql 15 0 14288 3044 900 S 0.0 0.5 0:01 0 mysqld
1903 mysql 16 0 14288 3044 900 S 0.0 0.5 0:02 0 mysqld
1904 mysql 20 0 14288 3044 900 S 0.0 0.5 0:00 0 mysqld
1905 mysql 25 0 14288 3044 900 S 0.0 0.5 0:00 0 mysqld
관련자료
-
이전
-
다음
댓글 0
등록된 댓글이 없습니다.