1초단위로 5초동안 실시간 모니터링하기
=> top -b -d 1 -n 5 -u userid
* 비정상종료상태로 남아있는 프로세스들 죽이기
top -b -n 1 -u gisys | grep 'T ' | awk '{print $1}' | xargs kill -9
***멀티cpu 사용량 직접 구하기
/proc/stat 첫줄에 있는 user, low priority, system, idle jiffies 값을 가지고 구한다고 하더군요.
(idle jiffies * 100 / user + low priority + system + idle jiffies
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
아래 출처 : http://www.mimul.com/pebble/default/2012/06/26/1340680991596.html
*** 3번 vmstat를 주로 활용
일반적인 커맨드들을 활용 방법들
1. top을보고 상위에 붙어있는 프로세스를 확인하면서 CPU나 I/O의 어느 문제인지 판별- 프로세스의 Fullpath를 알고 싶으면 'c'를 누름.
- 개별 CPU의 성능 정보를 볼려면 '1'을 누름.
- 정렬은 'shift'+ 'm'에서 메모리 정렬, 'shift'+ 'o'로 정렬 필드를 선택할 수 있음.
- 'k' 로 프로세스를 kill 시킬 수 있음.
- top -u %UserName% 사용자 계정 단위로 프로세스 확인 가능.
2. ps로 프로세스의 상태를 확인 (T), (D)상태에서 CPU나 I/O의 어느 문제인지 판별
- ps -e -o pid,args --forest : 프로세스의 트리를 보여줌.
- ps -f -u k2,mysql : 사용자 계정별로 프로세스 정보 확인.
- ps -f --ppid 9576 : pid나 ppid로 프로세스 조회.
- ps -p 1,28641 -o pid,etime= : 프로세스 구동 후 경과 시간 정보 확인.
- ps -C java -L -o pid,tid,pcpu,state,nlwp,args : 프로세스의 쓰레드 정보 조회.
- ps aux --sort pmem : 메모리 정보 조회해서 메모리 많이 차지하는 프로세스는 'ps ev --pid=28641'로 해서 개별 프로세스를 감시할 수 있음.
3. vmstat에서 procs의 r, b의 수, swap의 si, so 상태, I/O의 bi, bo 상태, cpu에서 us, sy, id 상태를 확인
- vmstat의 r이 cpu 수 이상이면 실행 프로세스 큐가 cpu를 기다리고있는 상태.
- b가 0보다 크다면 I / O 대기로 인터럽트가 금지되는 프로세스 수가있다는 것.
- memory에서 swpd가 0보다 크다면 스왑을 사용 중이며 메모리 부족.
- bi, bo이 많을 경우 블록 전송이 빈발하고 있음.
- vmstat 명령어 결과에 시간 표시하기 : vmstat 1 5 | timestamp.pl
$ vi timestamp.pl #!/usr/bin/perl while (<>) { print localtime() . ": $_"; }
- vmstat -m : slab 정보 표시.
- vmstat -s : 전체 통계 정보 요약.
- vmstat -d : 디스크 통계 정보 조회.
- vmstat -p sdb1 : 디스크 파티션 정보 조회.
4. sar를 사용하여 os 상태 추가 확인
- sar -W 1 5 에서 pswpin/s pswpout/s 0보다 클 경우 스왑 발생하고 있어서 메모리 부족.
- sar 1 5 CPU 정보
- sar -q 1 5 : 평균 부하 및 작업 실행 큐에 대한 정보.
- sar -r 1 5 : 메모리 정보.
- sar -u -P ALL 1 5 : 프로세 서당 CPU 사용률에 대한 정보.
- sar -b 1 5 : I/O 통계 정보 조회.
- sar -d 1 5 : Block Device I/O 통계 조회.
- sar -w 1 5 : 초당 context switch 정보 조회.
- sar -n DEV 1 5 : 네트워크 통계 조회.
5. iostat을 사용해서 디스크 I/O 정보 확인
- iostat -c : Cpu 정보 조회.
- iostat -d : Disk I/O 정보 조회.
- iostat -n : 네트워크 정보 조회.
- iostat -p sda : 디바이스별 I/O 통계.
- iostat -x sda1 : 상세 Disk I/O 정보 조회.
################################################
### mysql monitoring #################
dstat을 활용한 방법들
1. 유용한 dstat 커맨드들- dstat -Tclmdrn : 전체 정보 조회.
- dstat -Tclm : 메모리 정보 조회.
- dstat -Tclr : CPU 정보 조회
- dstat -Tclnd : 네트워크 정보 조회.
- dstat -Tcldr : 디스크 정보 조회.
- dstat --top-cpu --top-cputime : CPU 부하가 크고 전체 높은 CPU 타임을 가진 프로세스 조회.
- dstat --top-cpu-adv : CPU 부하가 큰 프로세스 상세 정보 조회.
- dstat --top-io --top-bio : 가장 IO를 많이 발생하는 프로세스 조회.
- dstat --top-io-adv --top-bio-adv : 가장 IO를 많이 발생하는 프로세스 상세 정보 조회.
- dstat --cpu --sys --disk --net 1 5 : CPU, SYSTEM, DISK, NETWORK 정보 조회.
- dstat -tal --top-io --top-cpu --top-mem : 전체 정보 조회.
2. dstat으로 MySQL 모니터링
MySQL을 모니터링 하려면 Python의 MySQLdb 라이브러리가 설치되어 있어야 한다.
$ export DSTAT_MYSQL_USER=user $ export DSTAT_MYSQL_PWD=pwd $ export DSTAT_MYSQL_HOST=localhost $ dstat -T --mysql5-cmds --mysql5-conn --mysql5-io --mysql5-keys --epoch--- ------mysql5-cmds------ mysql5-co -mysql5-io- ---mysql5-key-status---- epoch | sel ins upd del |ThCo %Con| recv sent|used read writ rreq wreq 1330500331| 0 0 0 0|0.00 0.00|0.02 0.11 | 0 0 0 0 0 1330500332| 8 0 0 0|4.00 1.60|9796B 59.8k| 0 0 0 0 0 1330500333| 8 0 0 0|4.00 1.60|9.90k 61.1k| 0 0 0 0 0 1330500334| 8 0 0 0|4.00 1.60|10.2k 62.5k| 0 0 0 0 0
3. dstat으로 MySQL Innodb 모니터링
$ export DSTAT_MYSQL='-uuser -ppwd -hlocalhost' $ dstat -T --innodb-io --innodb-buffer --innodb-ops --epoch--- innodb-io-o innodb-pool ---innodb-ops-- epoch |rea wri syn|crt rea wri|ins upd del rea 1330500814| 0 0 0|0.2 1.0 11| 0 0 0 0 1330500815| 0 0 0|3.0 1.0 139| 0 0 0 0 1330500816| 0 0 0|3.0 5.0 172| 0 0 0 0 1330500817| 0 0 0|5.0 5.0 133| 0 0 0 0
출처 http://blog.daum.net/techtip/12414558
'Embedded Lab > linux, x86' 카테고리의 다른 글
[특수문자표] (0) | 2013.11.04 |
---|---|
[GFS(Google File System)] (0) | 2013.10.28 |
[커널스택] (0) | 2013.08.13 |
[커널 예전 버전 받기] (0) | 2013.08.06 |
[grub 배경화면 변경] (0) | 2013.08.04 |