GNU/Linux >> Belajar Linux >  >> Linux

ZFS pool lambat membaca berurutan

Saya berhasil mendapatkan kecepatan sangat dekat dengan angka yang saya harapkan.

Saya mencari 400MB/dtk dan mengelola 392MB/dtk . Jadi saya katakan itu masalah terpecahkan. Dengan penambahan perangkat cache nanti, saya mengelola 458 MB /sec baca (cache saya percaya).

1. Ini pada awalnya dicapai hanya dengan meningkatkan dataset ZFS recordsize nilai ke 1M

zfs set recordsize=1M pool2/test

Saya yakin perubahan ini hanya menghasilkan lebih sedikit aktivitas disk, sehingga pembacaan dan penulisan sinkron besar lebih efisien. Persis seperti yang saya minta.

Hasil setelah perubahan

  • bonnie++ =226MB tulis, 392MB baca
  • dd =260 MB tulis, 392 MB baca
  • 2 proses secara paralel =227 MB tulis, 396 MB baca

2. Saya berhasil lebih baik ketika saya menambahkan perangkat cache (SSD 120GB). Penulisannya sedikit lebih lambat, saya tidak yakin mengapa.

Version  1.97       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
igor            63G           208325  48 129343  28           458513  35 326.8  16

Trik dengan perangkat cache adalah menyetel l2arc_noprefetch=0 di /etc/modprobe.d/zfs.conf . Ini memungkinkan ZFS untuk melakukan cache streaming/data berurutan. Lakukan ini hanya jika perangkat cache Anda lebih cepat dari larik Anda, seperti milik saya.

Setelah mendapatkan manfaat dari perubahan ukuran rekaman pada kumpulan data saya, saya pikir ini mungkin cara yang serupa untuk mengatasi kinerja zvol yang buruk.

Saya bertemu banyak orang yang menyebutkan bahwa mereka memperoleh kinerja yang baik menggunakan volblocksize=64k , jadi saya mencobanya. Tidak beruntung.

zfs create -b 64k -V 120G pool/volume

Tapi kemudian saya membaca bahwa ext4 (sistem file yang saya uji) mendukung opsi untuk RAID seperti stride dan stripe-width , yang belum pernah saya gunakan sebelumnya. Jadi saya menggunakan situs ini untuk menghitung pengaturan yang diperlukan:https://busybox.net/~aldot/mkfs_stride.html dan memformat zvol lagi.

mkfs.ext3 -b 4096 -E stride=16,stripe-width=32 /dev/zvol/pool/volume

Saya menjalankan bonnie++ untuk melakukan benchmark sederhana dan hasilnya sangat bagus. Sayangnya, saya tidak memiliki hasilnya, tetapi setidaknya 5-6x lebih cepat untuk menulis seingat saya. Saya akan memperbarui jawaban ini lagi jika saya membandingkan lagi.


Linux
  1. Kisah Linux keluarga saya

  2. 3 rilis Linux favorit saya

  3. Freebsd – Menonaktifkan Pool Zfs dengan Cepat Dan Aman Sebagai Keseluruhan Monolitik?

  1. papan klip linux baca/tulis dalam C

  2. Mengapa mmap() lebih cepat dari IO berurutan?

  3. Ganti nama basis data MySQL

  1. Memecahkan masalah WiFi lambat di Linux

  2. RSAKeyFind Compilation (Buat) Error:rsakeyfind.cpp – “memcmp, read, close” tidak dideklarasikan dalam cakupan ini [Diselesaikan]

  3. Memahami "jika =Baca -r Baris"?