Penjelasan:
Kami memiliki Server:
- Model: HP ProLiant DL160 G6
- SSD 4 x 240GB (RAID-10)
- RAM DDR3 72GB
- 2 x L5639
- Pengontrol RAID HP P410 (256MB, V6.40, versi Rom: 8.40.41.00)
Drive SSD adalah 4 5 "Intel 530 2.5" baru dengan kecepatan baca 540MB / s dan kecepatan tulis 490MB / s
- CentOS 6
- Sistem file ext4
tapi ini adalah hasil tes untuk kecepatan baca pada serangan 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
dan ini untuk kecepatan tulis:
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
kami berharap untuk kecepatan baca 1GB dengan serangan 10 tetapi 270MB bahkan bukan kecepatan satu disk!
Pertanyaan:
- Kenapa sangat lambat?
- Apakah ini karena Kontroler RAID?
Pembaruan 1 - Kecepatan Baca / Tulis yang Sama:
Setelah mengubah beberapa pengaturan sebagaimana disebutkan dalam jawaban saya mendapatkan hasil di bawah ini:
(Adakah yang tahu mengapa ini menunjukkan 4GB, bukannya 400MB sebagai kecepatan baca ?!)
EDIT: sepertinya perintah itu salah dan kita seharusnya menggunakan -s144g untuk jumlah ram ini, itu sebabnya ini menunjukkan 4GB (seperti yang disarankan dalam komentar oleh 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
tetapi hdparm -t /dev/sda
perintah lama masih menunjukkan:
Waktu buffered disk berbunyi: 810 MB dalam 3,00 detik = 269,85 MB / detik
Perbarui 2 (paket uted-utils) - Kecepatan Baca sekarang 600MB / s:
Akhirnya ada harapan, kami telah menonaktifkan cache dari raid controller dan melakukan beberapa hal sebelumnya tanpa hasil, tetapi karena kami memuat ulang server dan menginstal OS lagi, kami lupa menginstal "tuned-utils" seperti yang disarankan dalam jawaban ewwhite (Terima kasih ewwhite untuk paket keren ini yang kamu sarankan)
Setelah menginstal tuned-utils
dan memilih enterprise-storage
profil kecepatan baca sekarang ~ 600MB / s + tetapi kecepatan tulis masih sangat lambat (~ 160MB) (:
Inilah hasil untuk iozone -t1 -i0 -i1 -i2 -r1m -s144g
perintah:
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
Bahkan dengan hdparm -t /dev/sda
perintah yang kita miliki:
Waktu buffered disk berbunyi: 1802 MB dalam 3,00 detik = 600,37 MB / detik
Ada saran untuk kecepatan menulis yang sangat lambat?
Perbarui 3 - Beberapa informasi yang diminta dalam komentar:
Kecepatan tulis masih sangat rendah (~ 150MB / s yang bahkan tidak 1/3 dari satu disk)
Output untuk df -h
dan 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
. :(Jawaban:
Sementara jawaban lain di sini ada beberapa poin, masalah spesifik Anda disebabkan oleh keterbatasan platform dan konfigurasi OS:
Anda dibatasi throughput dengan menggunakan SSD SATA konsumen pada pengontrol RAID HP Smart Array P410 . Disk SATA beroperasi pada 3.0Gbps (3G) pada pengontrol ini dan bukan 6.0Gbps (6G). Jadi itu penghalang yang memengaruhi kecepatan baca SSD Intel Anda; 300MB / s atau kurang per drive.
Kontroler Smart Array P410 memiliki persyaratan khusus dan praktik terbaik saat digunakan dengan SSD. Singkatnya, pengontrol mampu 50.000 IOPS, menonaktifkan akselerator array untuk volume SSD Anda dan kinerja puncak di ~ 6 drive.
Kinerja disk tidak selalu tentang kecepatan baca / tulis berurutan. Coba pembandingan dengan alat yang tepat seperti iozone atau bonnie ++ . Anda masih mendapatkan manfaat I / O acak dari banyak drive Anda.
Pada level sistem operasi, instal paket tuned-utils dan atur profil
enterprise-performance
untuk menghapus hambatan penulisan dari sistem file Anda dan atur elevator I / O yang tepat untuk pengaturan Anda. Ini tercakup dalam pertanyaan lain di sini juga.Sepertinya Anda menggunakan LVM. Itu bisa berdampak juga ...
Berikut ini adalah laporan iozone untuk G7 ProLiant yang berjalan dengan empat SSD SATA 6G konsumen (turun ke kecepatan 3G) pada pengontrol RAID HP Smart Array P410 yang sama.
Anda seharusnya melihat ~ 470MB / s menulis dan 650MB / s + membaca.
sumber
Oh sayang, harus mulai dari mana?
Ada begitu banyak yang terlibat, dan Anda membutuhkan pemahaman yang baik tentang segalanya. Hanya melempar banyak disk ke pengontrol RAID tidak akan menghasilkan hasil yang Anda cari.
Ini tidak bisa dijawab dengan mudah. Tapi setidaknya, berikut adalah daftar hal yang harus Anda perhatikan:
Karena throughput Anda terhadap keseluruhan RAID (mengabaikan FS) jauh lebih rendah daripada satu disk, kemungkinan Anda telah salah mengatur strategi penulisan Anda; Pengontrol mungkin menunggu semua disk untuk mengkonfirmasi penulisan (dan kecuali jika Anda mendapat RAM pada baterai pengontrol yang didukung, ini mungkin untuk kepentingan terbaik Anda).
sumber