디스크 차트를 사용하여 평균 디스크 로드를 모니터링하고 디스크 사용량 추세를 확인할 수 있습니다. 예를 들면, 하드 디스크에 자주 읽고 쓰는 애플리케이션과 관련하여 성능 저하가 나타날 수 있습니다. 디스크 읽기/쓰기 요청 수에 스파이크가 나타나는 경우 해당 애플리케이션이 해당 시점에 실행 중이었는지 확인하십시오.
문제
- kernelLatency 데이터 카운터의 값이 4ms보다 큽니다.
- deviceLatency 데이터 카운터의 값이 15ms보다 크면 스토리지 어레이 관련 문제가 있을 수 있습니다.
- queueLatency 데이터 카운터가 0 이상으로 측정됩니다.
- 지연 시간에 스파이크가 있습니다.
- 읽기/쓰기 요청 수가 비정상적으로 증가합니다.
원인
- 호스트의 가상 시스템이 구성에서 지원하는 양보다 더 많은 처리량을 스토리지 시스템에 전송하려고 합니다.
- 아마도 스토리지에 내부 문제가 있는 것 같습니다.
- 워크로드가 너무 높아서 스토리지에서 데이터를 충분히 빠른 속도로 처리할 수 없습니다.
해결책
- 호스트의 가상 시스템이 구성에서 지원하는 양보다 더 많은 처리량을 스토리지 시스템에 전송하려고 합니다. CPU 사용량을 확인하고 대기열 크기를 늘리십시오.
- 활성 VMDK를 스핀들 수가 더 많은 볼륨으로 이동하거나 LUN에 디스크를 추가합니다.
- 가상 시스템 메모리를 늘립니다. 이렇게 하면 운영 체제 캐시가 더 많아져서 I/O 작업량이 감소될 수 있습니다. 참고: 호스트 메모리를 늘려야 할 수 있습니다. 메모리를 늘리면 일부 워크로드에서 시스템 메모리를 활용하여 데이터를 캐시하고 디스크에 액세스하지 않게 되므로 데이터 저장의 필요성을 줄일 수 있습니다.
- 게스트 운영 체제에서 스왑 통계를 검사하면 가상 시스템의 메모리 양이 충분한지 확인할 수 있습니다. 게스트 메모리를 늘리되, 과도한 호스트 메모리 스왑을 초래하지 않을 정도로만 늘립니다. 메모리 벌루닝이 진행될 수 있도록 VMware Tools를 설치합니다.
- 모든 게스트의 파일 시스템에 대해 조각 모음을 수행합니다.
- 환경에 적절한 경우 VMDK 및 VMEM 파일에 대한 바이러스 백신 요청 시 검사를 사용하지 않도록 설정합니다.
- 벤더의 어레이 도구를 사용하여 어레이 성능 통계를 확인합니다. 너무 많은 서버가 동시에 어레이의 공통 요소에 액세스할 경우 디스크에서 문제가 지속될 수 있습니다. 처리량을 늘리기 위한 어레이 측 향상을 고려해 보십시오.
- Storage vMotion을 사용하여 I/O를 많이 사용하는 가상 시스템을 여러 호스트에 분산합니다.
- 사용 가능한 모든 물리적 리소스에 디스크 로드를 분산시킵니다. 다양한 어댑터가 액세스하는 여러 LUN에 자주 사용되는 스토리지를 분산시킵니다. 각 어댑터마다 개별 대기열을 사용하여 디스크 효율성을 높입니다.
- HBA 및 RAID 컨트롤러를 최적 사용으로 구성합니다. RAID 컨트롤러의 대기열 크기와 캐싱 설정이 적당한지 확인합니다. 적당하지 않을 경우 Disk.SchedNumReqOutstanding 매개 변수를 조정하여 가상 시스템에 대한 대기 디스크 요청 수를 늘립니다.
- 리소스를 많이 사용하는 가상 시스템의 경우, 가상 시스템의 물리적 디스크 드라이브를 시스템 페이지 파일이 있는 드라이브로부터 분리합니다. 이렇게 하면 사용량이 많은 기간 동안 디스크 스핀들 경합이 완화됩니다.
- RAM 크기를 조절할 수 있는 시스템에서
MemTrimRate=0
행을 가상 시스템의 .VMX 파일에 추가하여 메모리 트리밍을 사용 안 함으로 설정합니다. - 결합된 디스크 I/O가 단일 HBA 용량보다 클 경우 다중 경로 또는 다중 링크를 사용합니다.
- ESXi 호스트의 경우 사전 할당된 대로 가상 디스크를 만듭니다. 게스트 운영 체제에 대해 가상 디스크를 만드는 경우 지금 모든 디스크 공간 할당을 선택합니다. 추가 디스크 공간 재할당과 관련된 성능 저하가 발생하지 않으므로 디스크가 조각화될 가능성이 낮아집니다.
- 최신 하이퍼바이저 소프트웨어를 사용합니다.