解决方案 »

  1.   

    session写入文件i/o过高,导致写入失败,如果量很大通过缓存实现。
      

  2.   

    tmp目录会回收文件应该不会导致session丢失吧 或者是搞了负载均衡  或者是代码有问题   再说高负载情况下   一般不会用文件来存储session吧
      

  3.   

    是否在考察session的GC机制。
    每次建立Session时,都有一定的概率(session.gc_probability / session.gc_divisor)启动GC. 本来概率并不算高(默认应该只有1/1000),但如果并发量大,负载高,触发GC的机会还是很高的。
      

  4.   


    GC只清理那些过期的数据吧后来想想   会不是session id 生成算法也不是不可能冲突   特别在高并发的时候  同毫秒数访问 产生同样的rand 就出现冲突了
      

  5.   

    GC應該只清理過期的session。
    不知道你講的高併發是指多少併發呢。
    多个用户在同一台服务器时所生产的PHPSESSIONID重复的概率极低(至少为百万份之一)。
    如果高併發超過這個,就有可能出現session丟失。
      

  6.   

    不好意思,刚仔细看了一下帖子,是之前看错了。
    现在想了想,高并发访问可能导致的几个情况(这里只讨论session_save_handler是文件的情况):
    1. session  文件大量生成和随机读写。可能会造成系统IOwait加大,应该会导致页面响应变慢,不至于会丢失session.2. 高并发和负载的情况下,/tmp目录由于会大量生成session文件,导致目录迅速填满。Linux系统中如果有daily或者month的cron定时清理(一般是/etc/cron.daily,/etc/cron.month),其中会调用tmpwatch清理/tmp中的文件(可定制时间),这种情况下是可能出现session文件被清理的可能性的。个人拙见。欢迎讨论。
      

  7.   

    这里会不会存在磁盘inode占满的情况?