A solução para isso acabou sendo maxThreads no Connector. Aumentar isso para um número muito maior (10000) do que o padrão (200) permitiu que o Solr (e o Tomcat) lidassem com a carga 'instantânea' muito melhor.
Sou novo no solr e carrego a nossa configuração para ver o que podemos suportar. Estou usando o solrmeter e meu problema é um pouco estranho:
lsof -i
ainda esteja ouvindo e o processo java ainda esteja em execução) . É como se ele precisasse de um tempo de aceleração? Além disso, notei (independentemente do aumento) que minha configuração não pode manipular 12000 / min. A reação a 12k / min é a mesma que se eu corresse 8k / min sem a aceleração. De nota, apenas o fragmento que o solrímetro está apontado para de responder. O outro caco cantarola sem incidentes.
Configuração (tudo na AWS):
A grande maioria da minha configuração de solr / tomcat7 é o padrão do exemplo de pacotes / solr do ubuntu. Aqui estão as configurações e o final do arquivo catalina.out: link
Eu redirecionei o console do solrímetro (stderr e stdout) para um arquivo. É um grande log (67Mb): link
Minha pergunta principal é dupla:
Quando o tomcat está congelado, você pode executar 2-3 dumps de linha com 2-3 minutos de intervalo. Você pode analisá-los e descobrir o que o tomcat está fazendo.
Você pode usar jvisualvm
que vem com o JDK para ver se o uso de heap não é alto e também para obter dumps de encadeamento.