Linux; Che cos'è stripe_cache_size e cosa fa?


10

Attualmente sto creando un software RAID su Linux usando l' mdadmutility e ho letto alcuni articoli che descrivono come aumentare il valore stripe_cache_size per quel RAID e come calcolare un valore appropriato per stripe_cache_size.

Ho aumentato il mio a 16384 e la mia attuale velocità di sincronizzazione su un nuovo RAID5 in / proc / mdstat è passata da 71065 K / sec a 143690 K / sec (raddoppiata!) Che è una buona notizia. Vedo anche la corrispondenza e l'aumento previsto nell'utilizzo della RAM, tuttavia non riesco a trovare alcuna documentazione su ciò che fa questa impostazione e su come funziona.

Sembra essere una cache di qualche tipo per il RAID che esiste nella RAM. Questo è tutto ciò che posso dire dal suo nome e dagli effetti visti cambiandolo. Esiste una documentazione ufficiale "Linux" per questa impostazione e la sua descrizione?

Risposte:


6

dalla mia comprensione, stipe_cache_size è il numero di voci di striping nella cache di stripe. Le voci di striping variano da sistema a sistema ma sono per lo più controllate dalla dimensione della pagina (impostazione predefinita di 4096 byte su sistemi linux) ( https://github.com/torvalds/linux/blob/master/drivers/md/raid5.c # L73 , questo file ha tutta la logica della cache dello stripe se vuoi scavare più a fondo) quindi in un RAID5 a 4 dischi, uno stripe_cache_size di 32768 ti costerà 512 MB di RAM. per quanto ne so riguarda solo raid5.

qui ci sono 2 riferimenti di documentazione: - https://github.com/torvalds/linux/blob/master/Documentation/md.txt#L603 - https://raid.wiki.kernel.org/index.php/Performance#Some_problem_solving_for_benchmarking


1
Numero di voci di cosa, la tua risposta è un po 'ambigua? :)
jwbensley,

Presumo che valga anche per RAID6, giusto
Mr Calvin

Vuoi dire che 32768 costerà 512 KB di RAM?
jrwren,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.