1

是的,我读过session_start 似乎很慢(但只是有时),但我的问题略有不同。

我们有一个 PHP 应用程序,它在 memcached 中存储非常简单的会话(具体来说是 elasticache),并且一直在监控我们性能最慢的页面加载。几乎所有慢速的人大部分时间都花在了Zend_Session::Start,我们不知道为什么。这是一个非常AJAX-y前端的应用程序,越来越多地向单页应用程序发展,每次页面加载都会同时向后端发出许多请求,并且某些请求的时间是它们应该仅基于此的时间的三到四倍.

显然,这不是每个请求,但我们担心的请求已经足够多。有没有其他人看到过这种行为?我们的印象是 memcache 没有阻塞(怎么可能?),所以最糟糕的是用户有一个 bum 会话,但multiple-second等待时间session_start似乎莫名其妙。

4

1 回答 1

0

看看你的会话垃圾收集机制(玩概率和除数)。

如果 gc 降低了应用程序的速度,请考虑手动清理旧会话(例如,将 gc 概率设置为 1 并通过 cron 运行 gc 脚本)。

另一种可能性:

  • 会话机制被锁定(因此应用程序等待解锁,然后写入)
  • 保存的数据过多
于 2014-04-03T06:55:33.203 回答