GNU/Linux >> Znalost Linux >  >> Linux

Jak prozkoumat únik paměti pomocí Apache a PHP?

Ř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/


Linux
  1. Jak chránit Apache a SSH pomocí Fail2Ban na CentOS 8

  2. Nainstalujte Apache a PHP na CentOS 7

  3. Jak nainstalovat PHP-FPM s Apache na Ubuntu 20.04

  1. Jak povolit a zakázat modul PHP curl s Apache na Ubuntu Linux

  2. Jak najít konfigurační soubory MySQL, PHP a Apache

  3. Jak aktualizovat Apache a PHP pomocí EasyApache na serveru cPanel

  1. Jak nainstalovat Laravel na Ubuntu 18.04 s Apache

  2. Jak nainstalovat Nextcloud s Nginx a PHP 7.3 na CentOS 8

  3. Jak nainstalovat a nakonfigurovat OpenLiteSpeed ​​s PHP 7.4 na CentOS 8