오늘은 IO 부하에 대한 도구를 살펴보도록 하겠습니다.

성능 저하 현상이 발생하면 디스크에 어느 정도 부하가 걸려 있고 응답 속도는 어떻게 되는지, 어떤 프로세스가 많은 IO를 발생시키고 있는지 확인해야 합니다. 

-------------------------------------------------------- Linux 도구 --------------------------------------------------------

iostat  

iostat을 사용하면 CPU 사용률과 디스크 장치 및 파티션에 대한 IO 통계 정보를 보여 줍니다.

tps 는 초당 전송량, KB_read/s 는 초당 읽힌 KB, KB_wrtn/s 는 초당 쓴 KB, KB_read는 해당 장치에서 읽혀진 전체 KB, KB_wrtn은 해당 장치에 쓰여진 전체 KB 입니다. Windows 에서는 성능 모니터를 실행하지 않으면 시스템 시작 부터 현재까지의 IO 정보를 저장해 놓지 않는다는 점이 다른것 같습니다.

IO가 많이 발생한 장치에 어떤 파일들이 있고 Read 요청이 많이 발생하는지 Write 요청이 많이 발생하는지를 확인해서 문제 분석을 위한 방향을 잡을 수 있습니다.


iotop

iostat이 장치 단위로 정보를 보여 주었다면 iotop으로 모든 프로세스의 IO 통계를 볼 수 있습니다.

iotop을 실행했더니 보안 이슈 때문에 root 또는 NET_ADMIN capability가 있어야 한다고 되어 있습니다. Windows로 따져본다면 관리자 권한으로 실행 하거나 특정 user right이 있어야 한다는 의미로 보입니다. Linux에서 capability 라는 것은 Windows의 User right 라고 보면 될것 같습니다.

키보드 왼쪽, 오른쪽 키를 이동해서 헤더를 이동하면 해당 헤더 값으로 정렬이 됩니다.

--only 옵션을 사용하면 현재 IO를 하고 있는 프로세스만 보여주게 됩니다.

# sudo iotop --only 


-------------------------------------------------------- Windows 도구 --------------------------------------------------------

리소스 모니터

윈도우 에서는 perfmon /res 명령을 사용하거나 작업 관리자를 통해서 리소스 모니터를 실행할 수 있습니다.

iostat 과는 달리 장치별 Read/Write 값을 보여주지 않고 디스크 활성 시간, 큐 길이를 보여주고 iotop과 같이 각 프로세스의 Read/Write 값을 볼 수 있습니다.  어떤 파일에 Read/Write를 하고 있는지, 각 파일에 대한 IO 응답시간은 어떻게 되는지를 볼 수 있다는 점이 장점입니다. 파일에 대한 응답시간을 확인할 수 있기 때문에 특정 프로그램이 사용하는 파일에 IO 응답 시간에 문제가 있는지 확인할 수 있습니다.


성능 모니터

iostat, iotop과 같은 정보를 보려면 성능 모니터를 실행해야 합니다. 명령줄에서 perfmon을 실행하면되고 보기에서 보고서를 선택하면 기본 값인 선형 그래프가 아닌 숫자로 결과를 볼 수 있어 편리 합니다.


성능 모니터에는 아래 보이는 것과 같이 많은 데이터를 한 눈에 볼 수 있습니다. PhysicalDisk를 선택하면 물리 디스크에 대한 정보를 확인할 수 있습니다.


iotop과 같이 각 프로세스별 IO를 확인하려면 Process를 선택하면 됩니다. 아쉬운 것은 보고서 형식을 선택할 경우 프로세스 들이 가로로 나열되어 스크롤바를 이동해서 정보를 확인하는 것이 좀 불편합니다. 








'Windows & Linux' 카테고리의 다른 글

디스크가 가득 차는 경우  (0) 2018.12.15
부팅 과정 및 복구 (Grub)  (0) 2018.06.17
성능 모니터링 (sysstat, sar)  (0) 2018.06.16
IO 부하 (iostat, iotop)  (0) 2018.06.06
시스템 부하 (top)  (0) 2018.06.03
시스템 부하 확인 (uptime)  (2) 2018.06.02

+ Recent posts