We know the memory problem is coming from apache/PHP because whenever we issue a /etc/init.d/httpd reload the memory usage drops
Não - isso significa que está relacionado ao tráfego da web. Você passou a mencionar que você está executando o mysql na caixa - presumivelmente gerenciando dados para o servidor da Web - poderia facilmente ser o culpado aqui. Assim como outros serviços que sua webstack usa que você não mencionou.
Each apache thread is assigned a PHP memory_limit of 512MB which explains
Não, não. Você está reportando uma média de 7 e um máximo de 25 servidores ocupados - mas seu gráfico de memória mostra um delta de cerca de 25Gb.
Realmente você deve começar de novo com o ajuste HTTP básico - você parece estar rodando uma constante de 256 httpds, mas seu pico de uso é de 25 - isso é simplesmente estúpido.
and a max_execution_time of 120 sec which should terminate threads which execution is taking longer
Não - somente se o segmento de execução estiver dentro do interpretador PHP - não se o PHP estiver bloqueado.
that performs financial modeling
(suspiro)
Teria sido útil se você tivesse fornecido detalhes de como você configurou o Apache, threaded ou prefork, qual versão, como o PHP é invocado (module, cgi, fastcgi), se você está usando conexões persistentes, se você usa procedimentos armazenados.
Eu sugiro que você comece movendo o mysql para uma máquina separada e pare de usar conexões persistentes (se você estiver usando-as atualmente). Defina o limite de memória muito mais baixo e substitua-o por script. Certifique-se de que você tenha o coletor de lixo de referência circular instalado e configurado.