我的问题是:这个概率是否适用于任何给定Apache服务器上所有虚拟主机上运行的所有Apache线程?
例如:
>如果概率设置为1/100,这是否意味着运行PHP进程的任何Apache线程都会进入可能运行gc的进程池?
>或者,这仅适用于任何给定VirtualHost运行的线程吗?或者其他类型的分区?
>最后,如果一个PHP进程触发gc,它是否在所有PHP会话上执行gc?或者只是VirtualHost的会话?或其他类型的分配?
我正在尝试测量我需要调整给定VirtualHost的gc_probability设置,整个服务器,或者什么.
If the probability is set to 1/100,does that mean that any Apache thread that runs a PHP process goes into the pool of processes that may have gc run?
如果该进程触及session [session_start()],那么是的,它可能会运行垃圾回收.
如果您需要不同的虚拟主机以具有不同的垃圾收集和会话,则应使用session.save_path选项为每个虚拟主机设置不同的路径.您可以在apache虚拟主机配置中使用诸如`PHP_value session.save_path“/srv/www/www.example.org/sessions”之类的指令执行此操作.如果有多个不同的应用程序运行不同的会话要求,则可能需要设置不同的路径和GC.
老实说虽然PHP会话垃圾收集不是很好.最好完全禁用它并使用从cron启动的脚本来定期清理旧会话.或另一种需要程序支持的替代方法是将会话存储在数据库中.
如果您要为外部方托管东西,那么您几乎肯定希望为每个虚拟主机设置单独的会话目录.