
고객이 RAID-50에서 16 X 450GB 10K를 사용하는 PS6000X SAN에서 Sybase ASE 15 성능이 저하되는 문제를 겪고 있습니다. 서버는 ESX 4.0.0,256968에서 2003 서버 R2 64비트를 실행하는 Dell R710입니다.
나는 드라이브에 있는 4KB 블록의 순차 쓰기 성능을 벤치마킹하기 위해 sqlio를 사용했습니다.
sqlio -kW -t1 -s600 -dE -o1 -fsequential -b4 -BH -LS sqliotestfile.dat
결과는 1900 IOPS입니다. 그러나 Sybase가 소규모 삽입의 지속적인 작업 부하를 실행하는 경우 SAN HQ는 일관된 590 IOPS(및 100% 4K 쓰기 활동)를 보여줍니다. 또한 쓰기 대기 시간이 1ms 미만에서 1.2ms로 증가하는 것을 보여줍니다.
Sybase의 모니터링 및 테스트에서는 성능 문제가 IO와 관련되어 있으며 특히 로그에 기록하는 데 많은 대기 시간이 있음을 보여줍니다.
SAN은 쓰기 캐싱이 활성화되었음을 나타냅니다.
SAN은 4k 순차 쓰기 활동을 위해 어떤 IOPS를 지원해야 합니까? 또한 쓰기 캐싱이 활성화되면 컨트롤러가 4K 쓰기를 더 효율적인 것으로 일괄 처리해야 하지 않나요?
또한 ESX의 Sybase에 대한 조언을 주시면 감사하겠습니다.
답변1
순차 IO가 현재 보고 있는 것보다 빠를 것으로 예상하지만 지속적인 4K 100% 무작위 쓰기 IO는 해당 설정에서 약 500-600IOPS가 될 것입니다(활성 디스크 14개, 10K SAS, RAID 50 가정). 질문은 볼륨의 IO 패턴이 실제로 순차적인지 어떻게 확신합니까?
PS600X가 제공하는 다른 볼륨은 무엇이고 용도는 무엇입니까? Equallogic 어레이를 사용하면 동일한 어레이의 볼륨 간에 IO 패턴을 격리할 수 없으며, 동일한 디스크에서 무작위 IO 트래픽이 발생하는 다른 볼륨이 있는 경우 이 문제가 발생할 수 있습니다.
답변2
가장 먼저 해야 할 일 - 테스트 파일의 크기가 실제 데이터베이스와 비슷합니까? 그렇지 않은 경우 탐색 시간은 다음과 같을 수 있습니다.차별화 요소여기.
아직 로그 볼륨에 vmware 반가상화 scsi 어댑터를 사용하고 있지 않다면 사용해 보는 것이 좋습니다. 마법 같은 해결책은 아니지만 특정 워크로드에서 이점을 얻습니다. 일반적으로 약간의 대기 시간이 추가되지만 많은 수의 쓰기를 처리할 때 전체 처리량이 더 높아집니다.
가능하고 큰 번거로움을 안다면 동일한 서버의 물리적 인스턴스를 SAN에 직접 연결하고 동일한 테스트를 실행하여 ESX를 방정식에서 제외하는 방법을 고려해 볼 수 있습니다. 두 개의 별도 위치와 제품에서 IOPS 수치를 읽고 있으므로 이 또한 가능한 요소라고 생각합니다. 즉, 수치가 3배 정도 줄어들 것이라고는 기대하지 않습니다.