설명:
우리는 서버가 있습니다 :
- 모델 : HP ProLiant DL160 G6
- 4 x 240GB SSD (RAID-10)
- 72GB DDR3 RAM
- 2 x L5639
- HP P410 RAID 컨트롤러 (256MB, V6.40, Rom 버전 : 8.40.41.00)
SSD 드라이브는 4 개의 새로운 2.5 "Intel 530이며 읽기 속도는 540MB / s이고 쓰기 속도는 490MB / s입니다.
- CentOS 6
- 파일 시스템은 ext4
그러나 이것은 RAID 10의 읽기 속도에 대한 테스트 결과입니다.
hdparm -t /dev/sda
/dev/sda:
Timing buffered disk reads: 824 MB in 3.00 seconds = 274.50 MB/sec
[root@localhost ~]# hdparm -t /dev/mapper/vg_localhost-lv_root
/dev/mapper/vg_localhost-lv_root:
Timing buffered disk reads: 800 MB in 3.01 seconds = 266.19 MB/sec
그리고 이것은 쓰기 속도입니다.
dd bs=1M count=512 if=/dev/zero of=test conv=fdatasync
512+0 records in
512+0 records out
536870912 bytes (537 MB) copied, 4.91077 s, 109 MB/s
우리는 RAID 10으로 1GB의 읽기 속도를 원했지만 270MB는 단일 디스크의 속도조차도 아닙니다!
질문 :
- 왜 그렇게 느려?
- RAID 컨트롤러 때문입니까?
업데이트 1-동일한 읽기 / 쓰기 속도 :
답변에서 언급 한 바와 같이 일부 설정을 변경하면 아래 결과가 나타납니다.
(읽기 속도로 400MB 대신 4GB를 표시하는 이유를 아는 사람이 있습니까?)
편집 : 명령이 잘못 된 것처럼 보이며이 램 양에 -s144g를 사용해야 했으므로 4GB가 표시됩니다 (ewwhite의 의견에서 제안한 것처럼)
[root@192 ~]# iozone -t1 -i0 -i1 -i2 -r1m -s56g
Iozone: Performance Test of File I/O
Version $Revision: 3.408 $
Compiled for 64 bit mode.
Build: linux
Record Size 1024 KB
File size set to 58720256 KB
Command line used: iozone -t1 -i0 -i1 -i2 -r1m -s56g
Output is in Kbytes/sec
Each process writes a 58720256 Kbyte file in 1024 Kbyte records
Children see throughput for 1 initial writers = 135331.80 KB/sec
Children see throughput for 1 rewriters = 124085.66 KB/sec
Children see throughput for 1 readers = 4732046.50 KB/sec
Children see throughput for 1 re-readers = 4741508.00 KB/sec
Children see throughput for 1 random readers = 4590884.50 KB/sec
Children see throughput for 1 random writers = 124082.41 KB/sec
그러나 이전 hdparm -t /dev/sda
명령은 여전히 표시합니다 :
타이밍 버퍼 디스크 읽기 : 3.00 초에 810MB = 269.85MB / 초
업데이트 2 (tunes-utils pack)-읽기 속도가 600MB / s입니다.
마지막으로, RAID 컨트롤러에서 캐시를 비활성화하고 운 좋게도 다른 작업을 수행했지만 서버를 다시로드하고 OS를 다시 설치했기 때문에 ewwhite의 답변에서 제안한대로 "tuned-utils"를 설치하지 않았습니다 (감사합니다) 당신이 제안한이 멋진 패키지에 대한 ewwhite)
프로파일을 설치 tuned-utils
하고 선택한 후 enterprise-storage
읽기 속도는 ~ 600MB / s +이지만 쓰기 속도는 여전히 매우 느립니다 (~ 160MB) (:
iozone -t1 -i0 -i1 -i2 -r1m -s144g
명령 결과는 다음과 같습니다 .
Children see throughput for 1 initial writers = 165331.80 KB/sec
Children see throughput for 1 rewriters = 115734.91 KB/sec
Children see throughput for 1 readers = 719323.81 KB/sec
Children see throughput for 1 re-readers = 732008.56 KB/sec
Children see throughput for 1 random readers = 549284.69 KB/sec
Children see throughput for 1 random writers = 116389.76 KB/sec
심지어와 hdparm -t /dev/sda
명령을 우리는 가지고 :
타이밍 버퍼 디스크 읽기 : 3.00 초에 1802MB = 600.37MB / 초
매우 느린 쓰기 속도에 대한 제안 사항이 있습니까?
업데이트 3-의견으로 요청 된 일부 정보 :
쓰기 속도는 여전히 매우 낮습니다 (단일 디스크의 1/3이 아닌 ~ 150MB / s)
의 출력 df -h
과 fdisk -l
:
[root@192 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 441G 3.2G 415G 1% /
tmpfs 36G 0 36G 0% /dev/shm
[root@192 ~]# fdisk -l
Disk /dev/sda: 480.0 GB, 480047620096 bytes
255 heads, 63 sectors/track, 58362 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00040c3c
Device Boot Start End Blocks Id System
/dev/sda1 * 1 58363 468795392 83 Linux
iozone -t1 -i0 -i1 -i2 -r1m -s144g
합니다. :(