티스토리 뷰

Infra engineering/Linux

Linux 상태 체크

내일도이렇게 2021. 1. 13. 08:05

1. 시스템 전체적인 부하 확인 

 

 

1. 명령어: uptime

shell > uptime

 04:19:54 up 2 days, 15:48,  1 user,  load average: 3.34, 1.80, 0.59  <- 1

uptime 명령의 결과에서 "load average" 는 최근 1분 , 5분 그리고 15분 간의 CPU 작업 대기 큐에서 처리를 기다리는

프로세스의 평균 개수를 나타낸다,이 서버의 부하가 언제부터 이렇게 높아졌는지 대략적으로 판단해 볼 수 있다. 

위의 결과에서 최근 1분간의 부하는 3.34 , 5분간 부하는 1.80, 15분간 부하는 0.59다 그러면 장비는 15분 전까지는 정상적으로 쾌적한 환경에서 서비스되고 있었는데, 5분 전부터 부하가 높아지기 시작해서 최근 1~2분 사이에 현재의 부하 상태가 만들어졌다는 것을 알 수 있다. 얼마가 위험한 범위인지 명확히 말하기 쉽지 않지만 , 일단 이 값이 1 이상이라는 것은 운영체제가 처리해야 작업이 평균적으로 하나는 큐에서 기다리고 있음을 의미한다.

 

 

2.명령어: vmstat

 

일반적으로 vmstat 명령은 초 단위의 시간 간격을 파라미터로 사용한다. 

vmstat 은 가상 메모리의 상태를 보여주는 명령이지만, CPU나 프로세스 큐를 확인하는 용도로 더 많이 사용한다.

shell > vmstat 1

vmstat 유틸리티 결과에서는 "procs" 섹션과 "cpu" 섹션을 주로 참고하면 된다.

 

  • procs -r : 프로세스 큐에서 CPU가 실행주기를 기다리는 프로세스의 수 
  • procs -b : 지정된 이벤트가 발생하기 전까지는 실행될 수 없는 프로세스의 수 
  • cpu -us : 사용자 프로세스를 위해 사용한 CPU 사용률로 MySQL 서버의 코드와 같이 애플리케이션의 코드가 사용한 CPU 시간을 의미한다. 대표적으로 정렬, GROUP BY 작업 그리고 압축과 같이 작업이 많이 발생하는 장비에서는 사용자 CPU가 높게 나타난다.
  • cpu -sy: 커널이 사용한 CPU 시간을 의미한다. 일반적으로 디스크의 입출력이나 메모리 할당 등과 같이 운영체제의 커널코드를 실행하는데 소요된 CPU 시간을 의미
  • cpu -id : CPU가 아무것도 하지 않고 대기(idle) 하는데 사용한 cpu 사용률이다 . 아무런 작업도 하지 않는 장비에서는 이 값이 높게 나타난다.
  • cpu -wa : 디스크 입출력을 기다리는 데 (wait) 사용한 CPU 사용률을 의미, 주로 DBMS 서버가 실행 중인 장비에서 관심을 둬야 할 값인데 , "wa(wait I/O)" 값이 높으면 디스크 I/O 가 가도하게 많이 발생해 CPU 가 데이터의 입출력을 기다리는 시간이 많다는 것을 의미한다. 
  • cpu -st : 가상 머신으로부터 빼앗긴 시간을 의미하는데, 크게 신경 쓰지 않아도 된다.

메모리 사용률 

 

명령어 : free 

 

 운영체제가 사용하는 물리적 메모리나 스왑 영역의 상태를 확인하려면 free 유틸리티를 사용하면 된다.

 free 명령은 주로 "-m" 과 "-t" 옵션을 함께 사용하는데 , "-m" 옵션은 단위를 MB로 표시하게 하고 "-t" 옵션은 다음과 같이 "Total" 라인을 표시한다 .

shell> free -m -t 

free 명령의 결과 표에서 , 가로는 메모리가 사용되는 용도를 표시하고 세로는 물리적 메모리와 스왑영역의 메모리의 구분을 표시해준다. 스왑 영역은 물리적인 메모리가 아니라 디스크에 준비된 가상의 메모리 공간을 의미한다.

 

  • total : 위 결과를 보면 전체 물리적 메모리는 32GB 정도이며, 디스크에 상주하는 스왑 공간은 대략 32GB 정도라는것을 알 수 있다.
  • used: 전체 물리적 메모리 32기가중에 대략 27기가가 사용되고 있으며, 스왑 공간은 166MB 정도 사용되고 있다는 의미이다.
  • free : 운영체제가 아무런 용도로도 사용하지 않고 남아 있는 물리적 메모리는 1.5GB 이며 , 스왑 공간 32GB 는 거의 사용되지 않고 free 상태임을 알 수 있다. 일반적으로 리눅스 계열의 운영체제에서는 물리적 메모리의 가능한 최대의 여유 공간을 운영체제의 버퍼나 캐시 공간으로 활용하기 때문에 free 에 표시되는 메모리 크기는 전체 물리적 메모리의 1%미만일 때가 많다 , 그렇다고 MySQL 서버와 같은 프로그램이 사용할 수 있는 미사용(free) 영역이 전혀 없음을 의미하는 것은 아니다. 운영체제의 캐시나 버퍼 영역은 다른 프로그램에서 메모리를 필요로 할 때 언제든지 사용 가능한 공간이기도 하다.
  • buffers와 cached : 운영체제가 자체적으로 관리하는 버퍼나 캐시 공간으로 사용되는 물리적 메모리의 크기를 보여준다. 이 메모리 공간은 프로그램을 위해 언제든지 활용될 수 있는 공간이기도 하다.

스왑 영역은 물리적인 메모리가 부족할 때를 대비해 디스크의 특정 공간을 가상 메모리처럼 사용할 수 있게 할당해 둔 공간이다. 가능하면 사용하지 않는 것이 좋은데, 물리적인 메모리가 부족할 때는 스왑의 사용량이 높아진다. 하지만 리눅스의 스왑 메모리의 사용량은 예전에 한번 사용됐던 적이 있다면 계속 사용 중으로 표시될 수도 있다. 그래서 스왑의 사용량이 높다고 해서 그것을 현재 상태로 판다하는 데 조금 어려움이 있다.

 

 

디스크 사용량

  명령어 : iostat

iostat 명령은 장착된 디스크가 얼마나 사용되고 있는지 보여준다. "-dx" 옵션은 확장된 형태의 보고서를 출력해주며, 마지막의 "1" 옵션은 1초 단위로 결과를 출력하는 옵션이다.

 

shell> iostat -dx 1

  • r/s와 w/s : 초당 읽고 쓰기 요청된 횟수만을 의미하며, 실제로 쓰고 읽는 바이트 수를 의미하지 않는다.

'Infra engineering > Linux ' 카테고리의 다른 글

Linux glances 사용법  (0) 2021.06.14
Linux rsync  (0) 2021.01.05
Linux 명령어 정리(1)  (0) 2018.12.09
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함