30 VMs atendidas a partir de apenas 2 spindles (discos) provavelmente sofrerão um gargalo de IO, mesmo que essas VMs não sejam particularmente IO intensivas (aleatórias ou sequenciais). Você está vendo 30 solicitações de leitura simultâneas separadas que ocorrem em áreas amplamente separadas dos discos. Muito e muito tempo perdido procurando entre lugares.
Eu recomendaria a configuração de uma segunda matriz de unidades se a opção estivesse facilmente disponível para você (slots de unidade sobressalentes ou um alojamento externo extra) e migrasse suas VMs para ela. 4-6 discos min. Outra melhoria seria um cache maior de leitura / gravação, se você estiver rodando apenas em um chip de 128 ou 256.
Outro ponto a verificar é as alocações de vCPU mencionadas por Zypher - atribuir muitas vCPUs a cada VM é (contra-intuitivamente) reduzir a velocidade de todas as VMs (cada VM precisa esperar por um núcleo livre para cada uma delas) suas vCPUs antes que ele possa obter tempo de CPU, portanto, uma VM de 4vCPU pode receber menos ciclos do que uma VM de 2vCPU)
Edite: pensando nisso um pouco mais, há também alguns problemas de bloqueio que você pode encontrar ao ter tantas VMs em um único LUN. Você pode encontrar bloqueios por datastore durante várias operações de VM, possivelmente ligar / suspender, etc. Isso começará a se acumular muito rapidamente, portanto, reinicializações lentas etc. podem ser causadas por isso. Você pode contornar isso configurando datastores separados dentro da mesma quantidade de espaço em disco (redimensione a partição atual para a metade e crie uma nova partição no espaço em branco. Distribua as VMs uniformemente entre os datastores). Cerca de 15 Vms por armazenamento de dados é um bom máximo.