Então descobrimos o problema. Era, como muitas vezes é, o servidor de banco de dados. Nós tivemos 2 problemas:
1) Nós tivemos uma consulta mysql que usava três junções. Acontece que esta função estava falhando Mysql. Nós reescrevemos esta consulta para usar 4 consultas mysql sem junções e isso resolveu o problema. (Um pouco de hot-fix, provavelmente vamos reescrever a função para que seja possível armazená-la em cache).
2) Estávamos experimentando cerca de 99,9% de espera de E / S quando usamos apenas 10% de cache link . Nós tentamos editar a configuração do mysql (citado na parte inferior). Isso ajudou muito, mas não resolveu o problema. Acontece que outro usuário no servidor compartilhado estava causando 99,8% de picos de E / S. Depois de entrar em contato com o provedor do nosso servidor, eles mudaram o servidor para outra partição e o problema foi resolvido.
table_open_cache = 1024
sort_buffer_size = 4M
read_buffer_size = 128k
query_cache_size= 128M
query_cache_type = 1
tmp_table_size = 64M
thread_cache_size = 20
innodb_buffer_pool_size = 512M
innodb_additional_mem_pool_size = 20M
innodb_log_file_size = 64M
innodb_log_buffer_size = 8M
innodb_file_per_table innodb_file_format = Barracuda