O subsistema IO geralmente lida com armazenamento em disco. Isso acontece quando os dados precisam ser escritos ou lidos. De um modo geral, você vai querer monitorar a profundidade da fila de disco. Não me lembro exatamente das recomendações, mas acho que é algo como 1,5 * o número de discos físicos envolvidos.
Existem algumas soluções possíveis, dependendo do que você encontra.
Primeiro, obtenha RAM suficiente no servidor para que basicamente possa manter todo o banco de dados na memória e ter bastante espaço para executar consultas. Quanto menor o tempo que você pode mantê-lo de paginação para o disco, melhor você está. Isso inclui ter RAM suficiente para manter as tabelas temporárias na RAM, em vez de tê-las pagas no disco.
Em segundo lugar, obtenha discos mais rápidos. Drives SCSI de 15k apropriadamente invadidos. Você pode até investigar SSD, se aplicável; esteja ciente de suas limitações antes de você. Coloque os arquivos de log em um sistema de disco separado e, potencialmente, divida as tabelas de modo que elas fiquem em discos diferentes também. Este pode ficar complicado e muito caro.
Em terceiro lugar, ajuste suas consultas para fazer melhor uso de seus índices, o que também deve ajudar a limitar quando o servidor precisa ir ao disco para obter os registros completos.
Finalmente, não se preocupe, a menos que seja um problema real. Se o seu aplicativo estiver se movendo rapidamente, encontre uma área diferente para "corrigir". Se for um problema real, decida se é hora de dimensionar seu servidor.