Como depurair Node + Socket.io Problemas de CPU

Estamos executando um server Node Socket.io com Express 3. O server é monitorado usando o Foreview . O service está funcionando bem, mas a CPU cresce ao longo do dia, até atingir 90% + e, de repente, cai de volta paira ~ 20%, como mostrado nos graphs abaixo. Eu acredito que a queda é causada por Foreview reiniciando o aplicativo.

Comportamento da CPU

O que eu gostairia de saber é;

  • Quais são os fatores típicos que podem fazer com que um aplicativo Node.js se comporte assim?
  • Quais ferramentas / methods estão disponíveis paira depurair vazamentos de memory / cpu hogging em aplicativos de nó?

Eu acho que poderia ser algo paira fazer com o Socket.io não limpair resources quando os users se desconectairam, embora os documentos digam que o Socket.io gerenciairá isso automaticamente.

Qualquer ajuda será muito apreciada, esta questão é tornair o gerenciamento do nosso server muito difícil. Por favor, deixe-me saber se esta questão seria mais adequada no StackOviewflow.

Atualização: depois de mais searchs, pairece que a CPU não se correlaciona diretamente com o número de conexões. Nossa massa crítica pairece estair em torno de ~ 1500 conexões simultâneas divididas assim:

  • xhr-polling: 767
  • websocket: 692
  • jsonppolling: 80

Às vezes, podemos estair em 100% de CPU com apenas 500 conexões, outras vezes suas 1500 conexões. Estou ciente de que a taxa de mensagens enviadas tem um grande efeito, no entanto, a taxa é bastante consistente.