Sto riscontrando un problema di throughput massimo qui e ho bisogno di qualche consiglio su come mettere a punto le mie manopole. Stiamo eseguendo un file server a 10 Gbit per la distribuzione di backup. È una configurazione S-ATA2 a due dischi su un controller MegaRAID LSI. Il server ha anche ricevuto 24gig di memoria.
È necessario eseguire il mirroring del nostro ultimo backup caricato con la massima velocità effettiva.
Il RAID0 per i nostri backup "caldi" ci dà circa 260 MB / sec in scrittura e 275 MB / sec in lettura. Un tmpfs testato con dimensioni di 20 GB ci dà circa 1 GB / sec. Questo tipo di throughput è ciò di cui abbiamo bisogno.
Ora come posso sintonizzare il sottosistema di memoria virtuale di Linux per memorizzare nella cache gli ultimi file caricati il più a lungo possibile in memoria senza scriverli sul disco (o ancora meglio: scrivere su disco E tenerli in memoria)?
Ho installato i seguenti sysctls, ma non ci danno il throughput che ci aspettiamo:
# VM pressure fixes
vm.swappiness = 20
vm.dirty_ratio = 70
vm.dirty_background_ratio = 30
vm.dirty_writeback_centisecs = 60000
In teoria, ciò dovrebbe darci 16 GB per la memorizzazione nella cache dell'I / O e attendere alcuni minuti fino alla sua scrittura su disco. Tuttavia, quando eseguo il benchmarking del server non vedo alcun effetto sulla scrittura, la velocità effettiva non aumenta.
Aiuto o consigli necessari.