Spiegazione:
Abbiamo un server:
- Modello: HP ProLiant DL160 G6
- 4 SSD da 240 GB (RAID-10)
- 72 GB di RAM DDR3
- 2 x L5639
- Controller RAID HP P410 (256 MB, V6.40, versione Rom: 8.40.41.00)
Le unità SSD sono 4 nuovissimi Intel 530 da 2,5 "con velocità di lettura 540 MB / s e velocità di scrittura 490 MB / s
- CentOS 6
- I file system sono ext4
ma questo è il risultato del test per la velocità di lettura sul 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
e questo è per la velocità di scrittura:
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
speravamo in 1 GB di velocità di lettura con raid 10 ma 270 MB non è nemmeno la velocità di un singolo disco!
Domande:
- Perché è così lento?
- È a causa del controller RAID?
Aggiornamento 1 - Stessa velocità di lettura / scrittura:
Dopo aver modificato alcune impostazioni come indicato nelle risposte, ho il seguente risultato:
(Qualcuno sa perché mostra 4 GB invece di 400 MB come velocità di lettura ?!)
EDIT: sembra che il comando sia sbagliato e avremmo dovuto usare -s144g per questa quantità di RAM, ecco perché mostra 4 GB (come suggerito nei commenti di 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
ma il vecchio hdparm -t /dev/sda
comando mostra ancora:
Letture disco buffer temporizzate: 810 MB in 3,00 secondi = 269,85 MB / sec
Aggiornamento 2 (pacchetto tuned-utils) - La velocità di lettura ora è di 600 MB / s:
Finalmente qualche speranza, abbiamo disabilitato la cache dal controller raid e fatto altre cose prima senza fortuna, ma poiché abbiamo ricaricato il server e installato nuovamente il sistema operativo, abbiamo dimenticato di installare "tuned-utils" come suggerito nella risposta di ewwhite (Grazie ewwhite per questo fantastico pacchetto che hai suggerito)
Dopo aver installato tuned-utils
e scelto il enterprise-storage
profilo, la velocità di lettura è ora ~ 600 MB / s + ma la velocità di scrittura è ancora molto lenta (~ 160 MB) (:
Ecco il risultato per il iozone -t1 -i0 -i1 -i2 -r1m -s144g
comando:
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
Anche con hdparm -t /dev/sda
comando abbiamo:
Letture del disco buffer temporizzate: 1802 MB in 3,00 secondi = 600,37 MB / sec
Qualche suggerimento per la velocità di scrittura molto lenta?
Aggiornamento 3 - Alcune informazioni richieste nei commenti:
La velocità di scrittura è ancora molto bassa (~ 150 MB / s che non è nemmeno 1/3 di un singolo disco)
Uscita per df -h
e 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
. :(