Linux md vs. kinerja LVM

8

Saya mencoba untuk menyetel NAS saya, menjalankan openfiler, dan bertanya-tanya mengapa saya mendapatkan kinerja baca yang relatif buruk dari 4 drive WD RE3 di RAID 5.

EDIT: Harap dicatat saya berbicara tentang kecepatan baca disk buffered bukan kecepatan cache

EDIT: Mengubah format untuk memperjelas ada dua set output.

Ketika saya menjalankan hdparm pada perangkat meta saya mendapatkan tingkat kinerja yang saya harapkan, turun ke volume dan itu sepertiga kecepatan!

Adakah yang tahu mengapa? Apakah LVM seburuk itu?

Dekan

Perangkat Meta / dev / md0 hasil

[root @ nas2 dll] # hdparm -tT / dev / md0
/ dev / md0:
 Waktu cached berbunyi: 4636 MB dalam 2,00 detik = 2318,96 MB / detik
 Waktu buffered disk berbunyi: 524 MB dalam 3,01 detik = 174,04 MB / detik

Vol grup / dev / mapper / vg1-vol1 hasil

[root @ nas2 dll] # hdparm -tT / dev / mapper / vg1-vol1
/ dev / mapper / vg1-vol1:
 Waktu dalam cache terbaca: 4640 MB dalam 2,00 detik = 2320,28 MB / detik
 Waktu buffered disk berbunyi: 200 MB dalam 3,01 detik = 66,43 MB / detik

Sunting: Lihat bagian dari halaman manual hdparm yang menyarankan ini adalah tes yang benar-benar valid untuk kinerja membaca berurutan yang merupakan masalah yang saya coba selesaikan.

-t Melakukan timing pembacaan perangkat untuk tujuan benchmark dan perbandingan. Untuk hasil yang bermakna, operasi ini harus diulang 2-3 kali dengan cara sebaliknya
              sistem tidak aktif (tidak ada proses aktif lainnya) dengan setidaknya beberapa megabita memori bebas. Ini menampilkan kecepatan membaca melalui buffer
              cache ke disk tanpa ada cache data sebelumnya. Pengukuran ini merupakan indikasi seberapa cepat drive dapat mempertahankan data sekuensial dibaca di bawah
              Linux, tanpa overhead sistem file. Untuk memastikan pengukuran yang akurat, cache buffer memerah selama pemrosesan -t menggunakan BLKFLSBUF
              ioctl. Jika flag -T juga ditentukan, maka faktor koreksi berdasarkan hasil -T akan dimasukkan ke dalam hasil yang dilaporkan untuk -t
              operasi.
Dean Smith
sumber
apakah Anda sudah mencoba tes bonnie++?
SaveTheRbtz

Jawaban:

10

Pengaturan readahead default untuk LVM benar - benar pesimistis. Coba blockdev --setra 8192 /dev/vg1/vol1dan lihat apa yang meningkatkan kinerja LVM Anda. Anda akan selalu menerima pukulan kinerja menggunakan LVM; kami mengukurnya pada sistem yang dikonfigurasi dengan benar pada sekitar 10% dari kinerja perangkat blok yang mendasarinya.

womble
sumber
4

Saya tidak memiliki penjelasan yang baik, tetapi saya dapat mengkonfirmasi hasilnya.

Pengujian RAID (raid5, drive 4x1.5TB)

root@enterprise:# hdparm -tT /dev/md2
/dev/md2:
 Timing cached reads:   2130 MB in  2.00 seconds = 1065.81 MB/sec
 Timing buffered disk reads:  358 MB in  3.00 seconds = 119.15 MB/sec
root@enterprise:# hdparm -tT /dev/md2
/dev/md2:
 Timing cached reads:   2168 MB in  2.00 seconds = 1084.54 MB/sec
 Timing buffered disk reads:  358 MB in  3.01 seconds = 119.10 MB/sec

uji volume yang menggunakan md2 sebagai perangkat fisik.

root@enterprise:# hdparm -tT /dev/mapper/vg2-data
/dev/mapper/vg2-data:
 Timing cached reads:   2078 MB in  2.00 seconds = 1039.29 MB/sec
 Timing buffered disk reads:  176 MB in  3.03 seconds =  58.04 MB/sec
root@enterprise:# hdparm -tT /dev/mapper/vg2-data
/dev/mapper/vg2-data:
 Timing cached reads:   2056 MB in  2.00 seconds = 1028.06 MB/sec
 Timing buffered disk reads:  154 MB in  3.03 seconds =  50.81 MB/sec

Saya membuat perubahan yang diusulkan oleh womble dan melihat hasil seperti ini.

root@enterprise:# blockdev --setra 8192 /dev/mapper/vg2-data

root@enterprise:# hdparm -tT /dev/mapper/vg2-data
/dev/mapper/vg2-data:
 Timing cached reads:   2106 MB in  2.00 seconds = 1053.82 MB/sec
 Timing buffered disk reads:  298 MB in  3.00 seconds =  99.26 MB/sec
root@enterprise:# hdparm -tT /dev/mapper/vg2-data
/dev/mapper/vg2-data:
 Timing cached reads:   2044 MB in  2.00 seconds = 1022.25 MB/sec
 Timing buffered disk reads:  280 MB in  3.03 seconds =  92.45 MB/sec
Zoredache
sumber
3

Pastikan Anda membandingkan apel dengan apel.

hdparm -t membaca dari awal perangkat yang juga merupakan bagian tercepat dari disk Anda jika Anda memberikan seluruh disk (dan piringan berputar).

Pastikan Anda membandingkannya dengan LV dari awal disk.

Untuk melihat penggunaan pemetaan pvdisplay -m.

(oke, memang, perbedaan dalam jumlah mungkin diabaikan. Tapi setidaknya pikirkan :)

MikeyB
sumber
Sebenarnya ternyata itu tidak bisa diabaikan. Jika saya menggunakan volume yang dimulai pada tingkat 0 kinerja hampir sama. Ini bagian dari jawaban yang saya yakin.
Dean Smith
Actaully ternyata bahwa jika volume dipasang kinerja lebih rendah. Jika saya melepas kinerja volume cocok dengan perangkat mentah. Namun ini masih agak aneh.
Dean Smith
0

Beban kerja yang dibuat oleh hdparm -T tidak mewakili untuk hampir semua kasus penggunaan kecuali streaming membaca dari satu file besar. Juga, jika kinerja menjadi masalah, jangan gunakan raid5.

Jan Jungnickel
sumber
3
Benar itu tidak mewakili beban kerja nyata, saya tidak menyarankan itu. Namun ini berguna untuk membandingkan kecepatan baca perangkat mentah. Perangkat meta dan volume grup vol harus memiliki kecepatan baca sekuensial mentah yang sebanding dan belum. Itulah inti pertanyaannya.
Dean Smith
0

Anda dapat mengetahui di mana hdparm menghabiskan waktunya dengan blktrace (jika ada di I / O) atau oprofile (jika menggunakan CPU). Mengetahui pengaturan LVM juga akan membantu (pvdisplay, vgdisplay, lvdisplay).


sumber