Řešení 1:
Víme, že problém s pamětí pochází z Apache/PHP, protože kdykoli znovu načteme /etc/init.d/httpd, využití paměti klesá
Ne – to jen znamená, že to souvisí s webovým provozem. Dále jste zmínil, že na krabici používáte mysql - pravděpodobně spravujete data pro webový server - to by mohlo být stejně snadno viníkem. Stejně jako ostatní služby, které váš webstack používá, o kterých jste se nezmínili.
Každému vláknu Apache je přiřazen limit paměti PHP 512 MB, což vysvětluje
Ne, není. Uvádíte průměrně 7 a maximálně 25 zaneprázdněných serverů – přesto váš graf paměti ukazuje rozdíl přibližně 25 Gb.
Opravdu byste měli začít znovu se základním laděním HTTP – zdá se, že používáte konstantních 256 httpds, ale vaše maximální využití je 25 – to je prostě hloupost.
a max_execution_time 120 sekund, což by mělo ukončit vlákna, jejichž provádění trvá déle
Ne – pouze v případě, že je vlákno provádění v rámci interpretu PHP – nikoli v případě, že je PHP blokováno.
která provádí finanční modelování
(povzdech)
Bylo by užitečné, kdybyste uvedli podrobnosti o tom, jak jste nakonfigurovali Apache, vlákno nebo prefork, jakou verzi, jak se PHP vyvolává (modul, cgi, fastcgi), zda používáte trvalá připojení, zda používáte uložené procedury.
Navrhoval bych, abyste začali přesunem mysql na samostatný počítač a přestali používat trvalá připojení (pokud je aktuálně používáte). Nastavte limit paměti hodně snížit a přepsat toto na základě skriptů. Ujistěte se, že máte nainstalovaný a nakonfigurovaný kruhový referenční garbage collector.
Řešení 2:
Pravděpodobně jste svůj problém již vyřešili. Abychom zabránili výměně / mlácení serveru, spouštím každou hodinu z cronu následující příkaz:
#!/bin/sh
sync; echo 3 > /proc/sys/vm/drop_caches
Neříkám, že je to řešení, jen způsob, jak udržet věci v chodu a minimalizovat prostoje při zkoumání skutečné příčiny úniku paměti.
Více podrobností naleznete zde.
http://www.tecmint.com/clear-ram-memory-cache-buffer-and-swap-space-on-linux/