Linux; Apa itu stripe_cache_size dan apa fungsinya?

10

Saat ini saya sedang membangun perangkat lunak RAID di Linux menggunakan mdadmutilitas dan saya telah membaca beberapa artikel yang menjelaskan cara meningkatkan nilai stripe_cache_size untuk RAID itu dan bagaimana menghitung nilai yang sesuai untuk stripe_cache_size.

Saya telah meningkatkan milik saya menjadi 16384 dan tingkat sinkronisasi saya saat ini pada RAID5 baru di / proc / mdstat telah melonjak dari 71065K / detik menjadi 143690K / detik (dua kali lipat!) Yang merupakan kabar baik. Saya juga melihat kecocokan dan peningkatan yang diharapkan dalam penggunaan RAM namun saya tidak dapat menemukan dokumentasi apa pun yang dilakukan pengaturan ini dan bagaimana cara kerjanya.

Tampaknya menjadi semacam cache untuk RAID yang ada di RAM. Hanya itu yang bisa saya katakan dari namanya dan efek yang terlihat dengan mengubahnya. Apakah ada dokumentasi "Linux" resmi untuk pengaturan ini dan deskripsi tentang itu?

jwbensley
sumber

Jawaban:

6

dari pemahaman saya stipe_cache_size adalah jumlah entri stripe dalam cache stripe. Entri stripe bervariasi dari sistem ke sistem tetapi sebagian besar dikendalikan oleh ukuran halaman (default 4096 byte pada sistem linux) ( https://github.com/torvalds/linux/blob/master/drivers/md/raid5.c # L73 , file ini memiliki semua logika cache strip jika Anda ingin menggali lebih dalam) sehingga dalam RAID5 4 disk, stripe_cache_size dari 32768 akan dikenakan biaya RAM 512MB. sejauh yang saya tahu itu hanya mempengaruhi raid5.

berikut adalah 2 referensi dokumentasi: - https://github.com/torvalds/linux/blob/master/Documentation/md.txt#L603 - https://raid.wiki.kernel.org/index.php/Performance#Some_problem_solving_for_benchmarking

c0m4
sumber
1
Jumlah entri apa, jawaban Anda agak ambigu? :)
jwbensley
Saya menganggap itu juga berlaku untuk RAID6, kan
MrCalvin
Apakah maksud Anda 32768 akan dikenakan biaya RAM 512kB?
jrwren