몇 가지 간단한 성능 테스트를 수행했으며 RAID1에서 읽는 것이 쓰기보다 느립니다.
root@dss0:~# for i in 1 2 3; do dd if=/dev/zero of=/dev/sda bs=1048576 count=131072; done
137438953472 bytes (137 GB) copied, 192.349 s, 715 MB/s
137438953472 bytes (137 GB) copied, 192.851 s, 713 MB/s
137438953472 bytes (137 GB) copied, 193.026 s, 712 MB/s
root@dss0:~# for i in 1 2 3; do dd if=/dev/sda of=/dev/null bs=1048576 count=131072; done
137438953472 bytes (137 GB) copied, 257.201 s, 534 MB/s
137438953472 bytes (137 GB) copied, 255.522 s, 538 MB/s
137438953472 bytes (137 GB) copied, 259.945 s, 529 MB/s
dd는 성능 테스트 도구는 아니지만이 결과는 여전히 놀랍습니다.
시스템은 공급 업체가 제작했으며 16GB RAM이 장착 된 Supermicro 메인 보드가 있습니다. RAID 컨트롤러는 1GB 캐시가있는 MegaRAID 9271-8i입니다. SAS-933EL1 후면 판에는 8 개의 2 바이트 SAS 디스크가 있습니다. 케이블 연결이 확실하지 않으면 컨트롤러의 한 커넥터는 SAS 후면 판으로 가고 다른 하나는 OS를 보유한 2 개의 SATA 디스크로갑니다.
RAID1은 다음 명령으로 설정되었습니다 :
root@dss0:~# /opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r1 [8:0,8:1,8:2,8:3,8:4,8:5,8:6,8:7] WB NORA Direct -a0
Adapter 0: Created VD 0
Adapter 0: Configured the Adapter!!
Exit Code: 0x00
root@dss0:~# /opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -LALL -aALL
Adapter 0 -- Virtual Drive Information:
Virtual Drive: 0 (Target Id: 0)
Name :
RAID Level : Primary-1, Secondary-0, RAID Level Qualifier-0
Size : 7.275 TB
Sector Size : 512
Is VD emulated : No
Mirror Data : 7.275 TB
State : Optimal
Strip Size : 256 KB
Number Of Drives : 8
Span Depth : 1
Default Cache Policy: WriteBack, ReadAheadNone, Direct, No Write Cache if Bad BBU
Current Cache Policy: WriteBack, ReadAheadNone, Direct, No Write Cache if Bad BBU
Default Access Policy: Read/Write
Current Access Policy: Read/Write
Disk Cache Policy : Disk's Default
Encryption Type : None
PI type: No PI
Is VD Cached: No
Exit Code: 0x00
나는 읽기 액세스가 쓰기 액세스만큼 빠르거나 더 빠를 것으로 기대합니다. 715MByte / sec 쓰기 속도는 단일 SAS / SATA 커넥터의 6GBit 제한에 근접한 것으로 보입니다. SAS 후면 판의 구성 또는 케이블 연결 문제입니까? MegaRAID 명령으로 SAS 후면 판 구성을 쿼리 할 수 있습니까? 조언 부탁드립니다.
최신 정보
poige와 Peter가 설명했듯이, 예상보다 느린 읽기 성능은 아마도 Linux I / O- 서브 시스템의 캐싱에 의한 것입니다.
dd 명령에서 direct 플래그를 사용하면
root@dss0:~# dd if=/dev/sda of=/dev/null bs=1048576 count=131072 iflag=direct
137438953472 bytes (137 GB) copied, 199.862 s, 688 MB/s
쓰기 속도보다 훨씬 우수하지만 여전히 10 % 느립니다. oflag = direct를 사용해도 쓰기 속도에는 영향을 미치지 않았습니다.