Use cfq shceduler para esses discos de dados e defina slice_async e slice_sync para valores muito altos (por exemplo, 500) e slice_idle para cerca de 20. Talvez você também precise aumentar fifo_expire_async e fifo_expire_sync para cerca de 4000 cada. (Veja link para detalhes).
A idéia é permitir que cada processo tenha controle total do dispositivo por 0,5 s de cada vez, para que a busca entre diferentes áreas do disco não ocorra o tempo todo.
Se você puder pagar, a melhor opção seria obter uma boa unidade SSD que possa conter seus dados. Para o desempenho de leitura aleatória eu sugiro Samsung 860 EVO série porque o ano de 2018 parece ser o melhor equilíbrio entre custos e desempenho. Se o preço não for um problema, escolha o maior SSD Intel Optane disponível no mercado.