【问题标题】:Slow PHP Session缓慢的 PHP 会话
【发布时间】:2018-07-02 19:41:30
【问题描述】:

只有session_start(); 的基本页面加载得很好,但是一旦我设置了一些东西,例如$_SESSION['pet']="dog";,页面加载时间大约是 5 秒。

我正在使用 AWS 的 memcached 服务器,从 EC2 实例到它的连接时间非常快。我不确定减速是从哪里来的。

session.save_handler 设置为 memcached,session.save_path 设置为 xxx.cfg.use1.cache.amazonaws.com:11211

phpinfo 还将注册的保存处理程序显示为文件用户 memcache memcached

编辑: 我上传了测试文件来演示这个问题。第一个文件就是session_start(); print_r($_SESSION); (http://rr915webapi.us-east-1.elasticbeanstalk.com/session.php)。第二个文件是session_start();$_SESSION['pet']="dog";$_SESSION['name']="bob";(http://rr915webapi.us-east-1.elasticbeanstalk.com/session-set.php)。加载第二个文件后,您会发现第一个文件的加载时间比最初要长。

【问题讨论】:

  • 会话是存储在内存缓存中还是磁盘上?
  • 我已将 session.save_handler 设置为 memcached,并将 session.save_path 设置为 ElastiCache 实例 - 在会话下,它列出了已注册的保存处理程序:文件用户 memcache memcached
  • 有没有办法检查它是否真的在使用 memcached 服务器?
  • @austinhollis php.net/manual/en/function.session-save-path.php 你也可以直接转储
  • @NeilMasters 我确实这样做了,但不知道注册的保存处理程序的顺序是否意味着它使用的不是指定的 session.save_path

标签: php memcached


【解决方案1】:

通过在 PHP ini 文件中设置以下内容,响应时间减少到毫秒。

session.lazy_write = 0
memcached.sess_locking = Off

【讨论】:

    【解决方案2】:

    一些可能性:

    【讨论】:

    • 他们都在 us-east-1,但他们在不同的区域。那还会有影响吗?
    • 我刚刚将 EC2 实例移至 us-east-1b 以查看是否会有所不同,但距离第一个字节还有 5 秒时间
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-14
    • 1970-01-01
    • 2015-04-09
    • 2012-06-12
    • 1970-01-01
    • 2013-11-12
    • 1970-01-01
    相关资源
    最近更新 更多