카테고리 보관물: Linux

Linux Server monitoring 정리 4. iostat

iostat 는 디스크 io 를 체크할수 있는 툴 입니다.

여러 옵션이 있지만 제가 즐겨 쓰는 옵션만 소개하겠습니다.
(더 알고 싶으시면 man iostat 로…)

x : 확장된 정보를 출력한다.
h : 사람이 보기 편하도록 출력한다.

명령어 뒤에 디바이스 아이디 (디바이스명)을 입력하면 해당 디바이스 정보만 출력한다.

예) 디바이스 vda 의 확장된 정보를 3초에 한번씩 사람이 보기 좋게 출력한다.
[root@Cloudvine_RFC6 home]# iostat -xh vda 3

Screen Shot 2014-08-29 at 1.22.37 PM

항목중에 중요한 항목만 정리를 하자면

rrqm/s : 디바이스 큐에 쌓인 초당 요청 건수
wrqm/s : 디바이스 큐에 쌓인 초당 쓰기 건수
r/s : 디바이스에 요청한 초당 읽기 건수
w/s : 디바이스에 요청한 초당 쓰기 건수
await : 디바이스 큐에서 처리를 위해 데이타를 요청한 I/O 의 평균 시간
svctm : 디바이스에서 처리한 평균 시간
%util : 디바이스에서 요청한 I/O 작업을 처리하기 위한 평균 시간 (35미만 이면 좋음 65이상히면 점검요망 90이상이면 장애)

예) 디바이스 vda 의 정보를 3초에 한번씩 사람이 보기 좋게 출력한다.
[root@Cloudvine_RFC6 home]# iostat -h vda 3

Screen Shot 2014-08-29 at 1.48.02 PM

항목중에 중요한 항목만 정리를 하자면

tps : 디바이스에 초당 건수 요청 건수

Linux Server monitoring 정리 3. df du

df : 디스크 파티션의 용량을 확인하는 명령어 입니다.

워낙 간단하면서 쓸만한 명령어라서 사용가능한 옵션을 몇개 없지만 쓸만한 옵션은

-h : 1m = 1,048,576 계산한다.
-H : 1m = 1,000,000 계산한다.

Linux console 창에 아래와 같이 입력한다.

[root@Cloudvine_RFC6 /]# df -H

결과는 아래와 같다.

Screen Shot 2014-08-29 at 11.05.16 AM

각 파티션 별로

Size : 총 파티션의 사이즈
Used : 사용된 크기
Avail : 남아있는 크기

로 정리할수 있다.

du : 디렉토리나 파일의 용량을 확인할때 사용하는 명령어 입니다.

c : 용량의 합을 표시
s : 지정한 디렉토리만의 합을 표시
h : 사람이 보기 편한 단위로 표시한다 (K, M, G)

Linux console 창에 아래와 같이 입력한다.

[root@Cloudvine_RFC6 home]# du -csh ./*

결과는 아래와 같다.

Screen Shot 2014-08-29 at 11.16.43 AM

Linux Server monitoring 정리 2. vmstat

다음은 서버 모니터링시 가장 많이 쓰는 vmstat 에 관하여 알아보도록 하겠습니다.

Linux console 에 vmstat 를 치면 결과가 나옵니다.

[root@Cloudvine_RFC6 ~]# vmstat

다만 추가로 옵션으 입력 한다면

[root@Cloudvine_RFC6 ~]# vmstat 3

3초에 한번씩 결과를 출력하는 명령어 입니다. 보통은 이 명령어를 이용해서 모니터링을 실시 하고 있습니다.

결과를 보면

vmstat

1. memory 부분
– free : 사용 가능한 free 메모리
– buff : 버퍼로 사용된 메모리 (프로세스가 사용중이거나 사용을 위해 대기중인 총 메모리)
– cache : 캐시로 사용된 메모리 (항시 사용되기 위해 할당된 메모리)

2. swap 부부
– si : 스왑 in
– so : 스왑 out (이 값은 0에 가깝게 유지되어야 한다. 이 값이 커진다면 메모리가 부족한 것이다 이 값이 커지면 disk io 가 발생하기 때문에 cpu 사용률도 올라가고 시스템이 전체적으로 느려진다.)

3. system 부분
– in : 초당 인터럽트 발생량 (이 값이 높아지면 network adapter 를 점검해 보아야 한다.)
– cs : 초당 컨텍스트 스위칭 발생량 (이 값이 높아지면 top 명령어를 이용하여 cpu 점유율이 높은 프로세스를 찾아서 실행이 오래 걸리는 로직이 있는지 살펴 보아야 한다)

4. cpu 부분
– id : cpu idle 상태의 값 (이 값이 작아지면 cpu 사용률이 높다는 것이다)
– wa : io wait 값 (이 값이 높아지면 iostat 를 사용하여 disk io 를 체크해 보아야 한다.)

Linux Server monitoring 정리 1. top

Linux 서버 모니터링에 관하여 정리를 할까 합니다.

그 첫번째로 대표적으로 서버를 모니터링 하는 명령어인 top 에 관하여 핵심만 다룰까 하는데요.
일단 이 top 명령어는 결국은 /proc/stat 의 정보를 파싱하는 명령어 라는것은 참고해 두시면 될꺼 같습니다.

실행 명령어는 Linux console 창에서 top 이라고 입력 합니다.

[root@Cloudvine_RFC6 ~]# top

그러면 아래와 같은 창이 뜹니다.

Screen Shot 2014-08-29 at 9.39.14 AM

여기서 요즘은 다 cpu multi core 세상이라 cpu 코어 별로 사용량을 보고 싶다면 1 을 입력 합니다.

그러면 아래와 같이 cpu 코어 별로 사용량을 볼수 있습니다.

Screen Shot 2014-08-29 at 9.39.26 AM

다음으로 각 핵심만 찝어서 각 항목이 의미하는 바를 알아보도록 하겠습니다.

top

1. load average 순서대로 각 1분 5분 15분 간 부하의 평균을 보여주는 값으로 5 이상이면 서버가 부하를 받고 있다고 생각하면 되고 10~15 이상은 고부하를 받고 있다고 생각하면 될꺼같다.

2. cpu 사용량으로 여기서 볼 값은 뒷부분의 id, wa 값이다 id 는 cpu 미사용율을 보여주는 값으로 100에서 이값을 빼면 정확한 cpu 사용량을 알수 있으며 wa 값은 io wait 값으로 이 값이 크더면 cpu 의 interrupt 값이 증가하는 것으로 원인은 Disk io / network io / cpu cache io 문제일 가능성이 있다.

참고로 id 값을 이용한 cpu 사용률을 뽑는 방법

[root@Cloudvine_RFC6 ~]# top -n 2 | grep -i cpu\(s\) | awk '{print $5}' | tr -d '%id,' | tail -1 | awk '{print 100-$1}'

3. 프로세스별 사용 내역 부분인데 여기서 볼 부분은 VIRT, RES, SHR, %CPU, %MEM 입니다.
VIRT : 해당 프로세스가 지금까지 사용한 가상 메모리의 용량을 보여줍니다.
RES : 해당 프로세스가 사용중인 물리 메모리의 용량을 보여줍니다.
SHR : 해당 프로세스가 사용중인 공유 메모리의 용량을 보여줍니다.
%CPU : 해당 프로세스가 사용중인 CPU 사용률을 보여줍니다.
%MEM : 해당 프로세스가 사용중인 MEMORY 사용률을 보여줍니다.

추가로 사용할만한 명령어

1. shift + p : cpu 사용순 별로 정렬
2. shift + m : memory 사용순 별로 정렬

간단하게 알아본 TOP 사용법 이었습니다.