Košík je prázdný

Optimalizace PHP výk

V dnešní době, kdy se optimalizace výkonu aplikací stává stále důležitější, je nutné věnovat pozornost i detailům, které na první pohled nemusí působit jako klíčové. Jedním z takových detailů v konfiguraci PHP je session.gc_divisor. Tento článek se zaměří na důležitost a praktické využití session.gc_divisor pro správu session v PHP.

Co je session.gc_divisor?

session.gc_divisor je konfigurační direktiva v PHP, která ovlivňuje pravděpodobnost spuštění Garbage Collectoru (GC) pro session. Garbage Collector je proces, který čistí staré a nepoužívané session data, aby se uvolnilo místo a zdroje serveru.

PHP session mechanismus využívá tři hlavní direktivy pro řízení GC:

  1. session.gc_probability: Určuje pravděpodobnost, s jakou se spustí GC po otevření session.
  2. session.gc_divisor: Tato direktiva slouží jako jmenovatel ve zlomku, jehož čitatel je session.gc_probability.
  3. session.gc_maxlifetime: Definuje, po jaké době nečinnosti bude session data považována za zastaralá a tudíž vhodná k čištění.

Výpočet pravděpodobnosti spuštění GC je tedy následující: Pravdeˇpodobnost spusˇteˇnıˊ GC=session.gc_probabilitysession.gc_divisorPravdeˇpodobnost spusˇteˇnıˊ GC=session.gc_divisorsession.gc_probability

Jak session.gc_divisor ovlivňuje výkon

Pokud je hodnota session.gc_divisor nastavena vysoko, znamená to, že GC se spustí méně často. Toto nastavení může být vhodné pro výkonné servery s velkým množstvím paměti, kde není časté spouštění GC nutné. Na druhou stranu, pro servery s omezenými zdroji může být vhodnější nižší hodnota session.gc_divisor, aby se pravidelně uvolňovalo místo.

Doporučené hodnoty a praktické nastavení

Výchozí hodnota session.gc_divisor v PHP je 100. Toto číslo znamená, že pokud je session.gc_probability rovněž nastaveno na 1 (což je výchozí), GC se spustí s pravděpodobností 1/100 (1%) pro každou session.

Pro servery s vysokou zátěží a výkonnou infrastrukturou může být vhodné toto číslo zvýšit, aby se snížila četnost spouštění GC a ušetřily zdroje. Naopak, v prostředí s menšími servery může být užitečné snížit session.gc_divisor, například na 50, což zvýší pravděpodobnost spuštění GC na 2%.

 

Správné nastavení session.gc_divisor je klíčové pro udržení výkonu a stability PHP aplikací. Při rozhodování o optimální hodnotě je třeba zvážit mnoho faktorů, včetně typu hardwaru, očekávané zátěže a specifik aplikace. Experimentováním a monitorováním výkonu lze nalézt nejlepší konfiguraci pro konkrétní prostředí.

onu s session.gc_divisor