O primeiro passo seria isolar onde seu gargalo é; rede, disco, cpu.
Meu primeiro suspeito seria a rede. Verifique se o seu servidor está se conectando à rede na velocidade adequada.
Se for, colocaria um analisador de protocolo no servidor e executaria uma captura de pacote. Na minha experiência, os protocolos personalizados são geralmente uma receita para mágoa.
A captura de pacotes informará se o tráfego de rede está causando atrasos devido a retransmissões, handshaking estranho, etc.
Se não é a rede que gostaria de obter com os desenvolvedores sobre como executá-lo no modo de depuração.
Isolar um problema de desempenho como esse é muito desafiador, boa sorte.