IT/Linux

Linux 시스템 상태 파악하기

나떼~ 2024. 7. 1. 09:47
728x90

윈도우에 성능모니터링 처럼 병목구간을 체크 하기 위한 기능이 Linux에도 있습니다.

"vmstat" 명령을 이용해 현재 서버 상태를 자세하게 확인합니다.

이 명령어는 Virtual Memory, 페이징 활동 및 실패, CPU 활동, Process 등의 통계들이 있어 상당히 유용하게 쓰입니다.

 

일단 들어가자마자 확인해야 될 것은 현재 서버의 상태이기 때문에 자세한 정보보다 대략적인 상태를 보고 나서 자세히 알아보는 것이 좋은 것 같습니다. 아래의 명령어에 "1"인자를 붙여 1초 간격으로 정보를 봅니다.

 

# vmstat 1

 

 

○ procs(=Process, 프로세스)

1) r: 실행 큐에 쌓인 실행 대기중인 프로세스의 수 (CPU Load(부하) 예측에 유용)
2) b: I/O 자원에 대해 프로세스를 할당 받지 못해 대기하고있는 프로세스 수 (Disk 및 CPU 성능 체크 필요)
(시스템 부하시 r에서 프로세스 할당을 받아 MEM이나 Disk에 쓰려고 하는데 자원 할당을 받지 못하는 상태)


○ memory (메모리 상태)

1) swpd: Swap Partiton의 사용량
2) free: Memory 용량 중 Cache+Buffer+Shared 영역을 제외한 사용 가능한 용량 (단위: KB)
3) buff: 버퍼 메모리(Buffer Memory) 사용량, 버퍼 메모리는 한 쪽에서 다른 한 쪽(End Point)로 전송하는 동안 임시적으로 보관하는 공간 (단위: KB)
4) cache: 메인 메모리와 CPU 간의 데이터 속도 향상을 위한 중간 버퍼 역할을 해주는 메모리 (CPU, MEM 등 여러 IO 장치에 존재, 병목현상 줄여줌)


○ swap (Swap 입출력 상태)

1) si: Disk에 스왑되지 않는 메모리로 swap 공간에 있는 데이터를 실제 메모리로 호출함
2) so: 메모리에서 Disk로 Swap되는 메모리로 실제 메모리의 데이터 중 일부분을 Swap 공간으로 보냄


○ io (블럭 디바이스 입출력 상태)

1) bi: Blcok Device로 보내는 블럭 수
2) bo: Block Device로부터 받은 블럭 수
3) 판단: 위의 두 값이 노으면 HDD/SSD에 읽고 쓰는 값(I/O)이 많다는 의심을 할 수 있음


○ system

1) in: 초당 인터럽트되는 양, 이더넷 패킷이나 실시간 시계도 이부분에 포함되기 떄문에 너무 높다면 네트워크 부분을 점검할 필요가 있음
※ 인터럽트: CPU가 작업을 실행 중일 때 하드웨어나 명령 등의 변수들에 예외사항이 발생하여 잠시 Micro Processor에 알려 처리하고 다시 원래의 작업을 진행하는 것을 말함

2) cs: 초당 Context Switch되는 양, CPU에서 실행되는 작업들이 자신의 우선순위보다 높은 작업(명령) 혹은 자신에게 할당된 CPU 점유 시간이 만료되면 우선순위에서 밀리는데 이 구간에서 새로운 프로세스를 적재할 때 Context Switch(문맥 교환)가 일어난다.


○ cpu

1) us: 유저 프로세스가 CPU를 사용하는 평균 시간
2) sy: 커널에서 사용되는 시스템 프로세스가 CPU를 사용하는 평균 시간
3) id: CPU가 아무 일도 하지 않고 여유 있는 유휴상태인 평균 시간
4) wa: 디스크 입출력이 있는 상태에서 CPU가 놀고 있는 평균 시간 (WAIT I/O)
5) st: 하이퍼바이저가 vCPU(가상 CPU)를 서비스하는 동안 실제 CPU를 차지한 평균 시간 (Stolen Time)

728x90
반응형