Rendere permanente stripe_cache_size


15

L'ho fatto

echo 8192 > /sys/block/md0/md/stripe_cache_size

per migliorare le mie prestazioni RAID, e mi ha aiutato molto.

Ma non riesco ancora a capire come renderlo permanente.

Stavo cercando di impostarlo in /etc/rc.local - altri comandi vengono eseguiti, ma è stato sovrascritto in 256 altrove ... Qualche suggerimento?


Ripubblicando commento dalla mia risposta qui sotto; Non sono sicuro che tu l'abbia visto o no dato che non sono sicuro di come StackExchange funzioni: Hmmm ... Non ho RAID, quindi è un po 'un colpo lungo, ma puoi provare' grep -R 256 / etc / init.d 'e' grep -R stripe_cache_size /etc/init.d '?
zpletan,

1
Il pacchetto sysfsutils aiuterebbe a risolvere il tuo problema?
zpletan,

Risposte:


16

Aggiungi una regola udev, ad esempio a /etc/udev/rules.d/60-md-stripe-cache.rules:

SUBSYSTEM=="block", KERNEL=="md*", ACTION=="change", TEST=="md/stripe_cache_size", ATTR{md/stripe_cache_size}="8192"

In realtà non l'ho provato, quindi potrebbe non essere corretto al 100% (potrebbero essere alcuni errori di battitura), ma dovrebbe essere vicino. Controlla man udevper capire di più.

È inoltre possibile eseguire i seguenti comandi in seguito per applicare immediatamente la nuova regola:

udevadm trigger
udevadm control --reload-rules

1
Grazie mille, questa è finalmente la soluzione perfetta :-) La sintassi è ok, ho dovuto solo aggiungere 60- prima del nome e rigenerare i ramfs.
Bars Mons

1
Grazie. Non riesco a credere che questo sia ancora un problema in Ubuntu 13.10. Sono appena passato da <10 MB / se completa si blocca a> 100 MB / s durante la copia da un RAID crittografato a un altro, semplicemente cambiando la dimensione della cache dello stripe in un valore molto più generoso.
frostschutz,

Solo così è chiaro per gli altri: almeno sui moderni sistemi Ubuntu (17.04 nel mio caso), possibilmente altri, è necessario ricostruire i tuoi initramfs ("sudo update-initramfs -u") dopo aver creato questa nuova regola o non funzionerà avere effetto automaticamente.
Bryan Henry,

1

Solo per espandere l'ultimo post; la sceneggiatura sottostante funziona per me. Scambia i tuoi dettagli tra "<...>". Godere!


#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

#################NOTE######################
##  You are limited by CPU and memory too #
##  <Your Name> <Date of Modification>    #
##  stripe cache size and read-ahead      #
###########################################
echo 16384 > /sys/block/<Your RAID5 or 6 Volume>/md/stripe_cache_size
blockdev --setra 16384 /dev/<Your RAID5 or 6 Volume>

exit 0

3
Non dire "Solo per espandere l'ultimo post" perché le risposte di solito vengono classificate in base ai voti, quindi è possibile che la tua risposta venga visualizzata sopra quella a cui ti riferisci. Fare riferimento al post in base al nome dell'autore. È molto più chiaro
Warren Hill l'

0

Sto anche cercando di capirlo. Ho messo il mio in rc.local e senza fortuna. Lo avvio manualmente dopo aver effettuato l'accesso. Suppongo che potresti scrivere uno script per gestirlo e inserirlo nelle "Applicazioni di avvio", ma ciò non aiuta affatto se non hai effettuato l'accesso a gnome.


È un server Ubuntu, quindi niente fortuna qui.
Bars Mons.

0

Il pacchetto sysfsutils aiuterebbe a risolvere il tuo problema?

RISPOSTA ORIGINALE:

Non riesco a capire come commentare la tua domanda; Immagino che modificherò questa risposta mentre apprenderò di più sul tuo problema.

Puoi pubblicare (o incollare, se è lungo) l'output di

grep -R md0 /etc/init.d

Non è stato trovato nulla lì.
Bars Monsters

Hmmm ... Non ho RAID, quindi è una specie di colpo lungo, ma puoi provare 'grep -R 256 /etc/init.d' e 'grep -R stripe_cache_size /etc/init.d'?
zpletan,

entrambi non hanno prodotto risultati.
Bars Monsters

0

Non ho una vera risposta per te, ma forse potresti provare a creare un semplice script di avvio iniziale. Crea un file in / etc / init con l'estensione .conf. Nel file inserisci:

start on started tty1

exec echo 8192 > /sys/block/md0/md/stripe_cache_size

Il mio pensiero è che ciò dovrebbe eseguire il comando nel momento in cui è stato avviato il terminale, che è probabilmente nello stesso momento in cui si esegue il comando.


Ho già provato a metterlo nello script di avvio (rc.local) e questo non ha aiutato. Inoltre, poiché si tratta di Ubuntu Server, nessun terminale potrebbe essere presente dopo il riavvio, AFAIK.
Bars Monsters

Lo stavo proponendo come alternativa al metodo rc.local. Forse sarebbe iniziato più tardi. Non lo so davvero però.
user1974

Per quanto riguarda la mancanza di terminali, non ne ho idea. Perché un server non dovrebbe avere tty dopo un avvio? Intendiamo la stessa cosa quando diciamo terminale? Indipendentemente da ciò, è possibile utilizzare un servizio diverso per attivare il comando, basta cambiaretty1
user1974

0

Scatto totale al buio poiché non ho una configurazione RAID 5 con cui testare: forse aggiungere una linea con

chmod -w /sys/block/md0/md/stripe_cache_size

in rc.local per rimuovere le autorizzazioni di scrittura dopo che è stato impostato. Forse questo impedirà che venga cambiato altrove?


Buona idea, ma sembra che qualcosa sia rovinato nel processo di avvio di Ubuntu: -S Proverò a postare oggi.
Bars Mons.

Non ha aiutato: - |
BarsMonster,

0

Aggiungere

echo 8192 > /sys/block/mdX/md/stripe_cache_size

a /etc/rc.local.


Vedi la domanda: questa è la prima cosa che ho provato e non ha funzionato, apparentemente md-driver è stato reinizializzato o qualcosa dopo l'esecuzione di rc.local.
BarsMonster,

-1

Questa pagina suggerisce che la dimensione della striscia (o larghezza) avrebbe dovuto essere impostata al momento della configurazione della fs. Forse le melodie potrebbero aiutare qui?


2
È una cosa totalmente diversa. La dimensione della cache di Stripe è un'impostazione per il driver del kernel MD in memoria per la cache di strisce.
Bars Mons.
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.