You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP session.gc_probability与gc_divisor参数不同取值的影响咨询

PHP 7.4中session.gc_divisor与session.gc_probability参数调整的区别及0值影响

首先明确核心逻辑:PHP会话垃圾回收(GC)的触发概率由公式 session.gc_probability / session.gc_divisor 计算,每次请求时都会根据这个概率判断是否启动GC,清理过期的会话文件。PHP 7.4.26默认两者都是1000,对应0.1%的触发概率。

一、设为100或1与默认1000的区别

  • 均设为100:概率为100/100=100%,意味着每次请求都会强制触发会话GC。这种设置会让服务器在每个请求时都扫描所有会话文件,高并发场景下会大幅增加CPU和IO负载,拖慢请求响应速度,只适合极低流量的测试环境,或者必须实时清理过期会话的特殊场景。
  • 均设为1:概率为1/1=100%,和设为100的效果完全一致——每次请求必触发GC,性能代价同样很高,不建议生产环境使用。
  • 对比默认1000:默认0.1%的概率意味着平均每1000次请求才会触发一次GC,这种设置在会话清理和服务器性能之间做了平衡,是生产环境的常规选择,既能定期清理过期会话,又不会给服务器带来额外的性能负担。

二、二者均设为0的结果

当session.gc_probability和session.gc_divisor都设为0时,PHP会直接禁用自动会话垃圾回收机制。此时过期的会话文件会一直保留在服务器的会话存储目录中,不会被自动清理。如果长期不处理,会积累大量无用文件,占用磁盘空间,甚至可能影响文件系统的读写性能。这种情况下,你需要手动编写清理脚本,或者通过系统定时任务(比如Linux的cron)定期清理会话目录里的过期文件。

内容的提问来源于stack exchange,提问作者Atul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 07:25:20