Estou com um problema de taxa de transferência máxima aqui e preciso de alguns conselhos sobre como ajustar meus botões. Estamos executando um servidor de arquivos de 10 Gbit para distribuição de backup. É uma configuração S-ATA2 de dois discos em um controlador LSI MegaRAID. O servidor também tem 24gig de memória.
Precisamos espelhar nosso último backup carregado com a taxa de transferência máxima.
O RAID0 para nossos backups "quentes" fornece cerca de 260 MB / s de gravação e 275 MB / s de leitura. Um tmpfs testado com tamanho de 20 GB nos fornece cerca de 1 GB / s. Esse tipo de taxa de transferência é o que precisamos.
Agora, como posso ajustar o subsistema de memória virtual do Linux para armazenar em cache os últimos arquivos carregados pelo maior tempo possível na memória sem gravá-los no disco (ou melhor ainda: gravar no disco E mantê-los na memória)?
Eu configurei os seguintes sysctls, mas eles não nos fornecem a taxa de transferência esperada:
# VM pressure fixes
vm.swappiness = 20
vm.dirty_ratio = 70
vm.dirty_background_ratio = 30
vm.dirty_writeback_centisecs = 60000
Em teoria, isso deve nos dar 16 GB para armazenar E / S em cache e aguardar alguns minutos até que seja gravado no disco. Ainda assim, quando comparo o servidor com o benchmark, não vejo efeito na gravação, a taxa de transferência não aumenta.
Ajuda ou conselhos necessários.