session.gc_maxlifetime

session.gc_probability

session.gc_divisor

session.gc_divisor 与 session.gc_probability 合起来定义了在每个会话初始化时启动 gc(garbage collection 垃圾回收)进程的概率。此概率用 gc_probability/gc_divisor 计算得来。例如 1/100 意味着在每个请求中有 1% 的概率启动 gc 进程。session.gc_divisor 默认为 100。

比如:session.gc_maxlifetime=30,session.gc_divisor=1000,session.gc_probability=1,就表示每一千个用户调用session_start()的时候,就百分百的会执行一次垃圾回收机制,将磁盘上没用的session文件删除。

注意:一般对于一些大型的门户网站,建议将session.gc_divisor调大一点,减少开销

接下来,我通过一个例子演示下,如何配置才能让调用gc(垃圾回收)进程呢!

通过配置php.ini文件,修改以下几个信息:

  1. session.gc_maxlifetime = 60//当session文件在60s后还没有被访问的话,则该session文件将会被视为“垃圾文件”,并且等待gc(垃圾回收)进程的调用的时候被清理掉
  2. session.gc_probability = 1000

因为gc进程被调用的概率是通过gc_probability/gc_divisor 计算得来的,这里我将session.gc_probability改成1000,而session.gc_divisor 默认情况下也是1000。则gc进程在每次执行session_start()函数的时候都会被调用到。

以下我通过截图简单的说明下:

我开启三个会话,则创建三个对应的session文件,当每个文件在30秒内都没被调用的话,就会被当成是“垃圾文件”,等到gc进程调用的时候,“垃圾文件”就会被unlink,因为之前我已经通过修改php.ini配置文件,将gc被调用的概率改成百分百,所以接下来,如果我重新使用任何一个浏览器刷新下页面的时候,三个session文件,应该只剩下一个了

 
分类 PHP

最新文章

  1. javaScript 查询字符串参数 获取
  2. jsp实现验证码
  3. Android_Studio 及SDK下载
  4. YUI Array 之dedupe(快速去重)
  5. Intent七大属性之总结
  6. cocos2dx 3.1从零学习(六)——CocosStudio(VS2013project导入及环境设置)
  7. Java经典案例之-“分解质因数”
  8. 电源库(Sources)
  9. 201521123104《java程序设计》第13周学习总结
  10. 《java.util.concurrent 包源码阅读》 结束语
  11. Flex中配置FusionCharts
  12. BZOJ 3000: Big Number (数学)
  13. 多个for循环嵌套会影响速度
  14. (转)解决NSMutableAttributedString富文本,不同文字大小水平轴对齐问题(默认底部对齐)
  15. dos命令 创建数据库,建表,两表联查,三表联查(mysql---第一篇)
  16. Ajax实现局部数据交互的一个简单实例
  17. poj 2492(关系并查集) 同性恋
  18. Redis源码阅读(三)集群-连接初始化
  19. VS2010/MFC编程入门之十七(对话框:文件对话框)
  20. SSM框架整合遇到的问题

热门文章

  1. Centos安装JIRA 7.13版本(自己在官方下载最新版)以及破解
  2. Git常用命令详解
  3. JavaScript 高级系列之节流 [throttle] 与防抖 [debounce]
  4. 已知源目录路径sourceFilePath,此目录下还有多级子目录和多个文本文件(*.txt)。尝试编写一个方法,将此目录下所有的文件拷贝至另一个目录targetFilePath,并其中的文本文件修改成SQL文件(*.SQL)。
  5. mysql 日常操作-DDL
  6. vue-cli脚手架构建了项目,想去除Eslint验证,如何设置?
  7. MySQL中获取天、周、月等数据
  8. storm备忘
  9. leetcode-hard-ListNode-23. Merge k Sorted Lists
  10. 哨兵模式java实例