Em que circunstâncias o desempenho do Java se degrada com mais memória?

Estamos testando a carga de um aplicativo Java 1.6 em nosso ambiente DEV. A alocação de heap da JVM é 2Gb, -Xms2048m -Xmx2048m. Sob o teste de carga, o aplicativo é executado sem problemas, nunca usa mais de 1,25 GB de heap e a coleta de lixo é totalmente normal.

Em nosso ambiente UAT, executamos o teste de carga com os mesmos parâmetros, a única diferença é a JVM, ela é alocada 4Gb, -Xms4096m -Xmx4096m, caso contrário, o hardware é exatamente o mesmo com o DEV. Mas durante o teste de carga, o desempenho é horrível, o aplicativo consome quase todo o heap e a coleta de lixo aumenta.

Nós executamos esses testes várias vezes, eliminamos todos os sintomas possíveis que podem influenciar o desempenho, mas os resultados são os mesmos. Em que circunstâncias pode ser esse o caso?