Eu perguntei sobre o hardware disponível para você porque é possível obter dispositivos de baixa latência e IOPS altos para superar as limitações de seus discos.
No entanto, você não forneceu uma estimativa do tamanho do seu conjunto de dados de trabalho. Isso faz uma diferença enorme. Nós não temos informações suficientes no momento. Qual é o perfil de I / O da aplicação? Escrita tendenciosa? Lidar com leitura? Qual é a configuração atual de armazenamento?
Uma sugestão genérica seria usar uma matriz de unidades SSD. Outra seria usar um acelerador PCIe como o drive FusioIO .
Talvez até considere o DRBD no modo assíncrono ...
Uma solução mais esotérica seria usar o armazenamento compartilhado com algum grau de hierarquização que pode manter dados usados com freqüência na RAM ou em SSDs. O sistema de arquivos ZFS e seu uso de ZIL e o cache de leitura L2ARC é um bom exemplo.
E uma solução ainda mais esotérica é uma abordagem de cache baseada em software, como o Disco de Ram Eventualmente Persistente (PERD) . Isso cria um disco de RAM com backup em disco em um sistema de arquivos FUSE e pode ser uma boa opção para acelerar a E / S do seu aplicativo. Isso pode ser o que você quer ...
Nos documentos de configuração:
You can however also create a ramdisk that will have it's
changes flushed to disk every N seconds and instead of keeping
everything in ram it only allocated 512M for caching.
./eprd_setup -f /data/saverimg -s 10G -m 3 -c -p512M
In this example the data is flushed to disk every 3 seconds.
Editar:
Se estes são sistemas HP ProLiant DL320 , presumo que sejam Modelos G6. Você tem um controlador Smart Array P410 e uma bateria backup ou cache em flash instalado? Se não, esse é o primeiro passo que você deve dar antes de ir com uma configuração de disco RAM. Faz diferença!