zoukankan      html  css  js  c++  java
  • session的垃圾回收机制

    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文件,应该只剩下一个了

  • 相关阅读:
    springcloud2.0 添加配置中心遇到的坑
    redis 字符串和集合操作
    Linux
    流畅的python 符合python风格的对象
    流畅的python 对象引用 可变性和垃圾回收
    流畅的python 闭包
    流畅的python 使用一等函数实现设计模式
    互联网协议入门
    流畅的python 字典和集合
    流畅的python python数据模型
  • 原文地址:https://www.cnblogs.com/hongfei/p/2552434.html
Copyright © 2011-2022 走看看