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
Posted by cyj4369
,