网站打开特别慢,排查原因是 session 出了问题,不知道怎么解决了

2014-03-25 20:43:42 +08:00
 hellohacker
这几天网站打开有时候特别慢,有时候甚至出现服务器500错误,在网站打开慢的时候我使用中断语句判断是 es_session::start();的问题,在这个语句上面中断可以输出内容,在这个语句下面就无法中断输出内容。es_session 是session类,start函数声明如下:
static function start()
{ session_set_cookie_params(0,app_conf("COOKIE_PATH"),app_conf("DOMAIN_ROOT"),false,true);
@session_start();
}
但是前段时间没有使用中断语句的时候,我重启mysql 就又能访问了,现在网站一天好几次变慢,是什么原因呢 请大家指点下
4367 次点击
所在节点    程序员
5 条回复
cdffh
2014-03-25 21:33:26 +08:00
试一下 session_write_close
搜索到的:PHP只会在页面代码执行完毕之后才会把SESSION数据写入到文件中,页面不执行完毕,对应的SESSION文件一直都保存着锁定状态,而其他的页面要访问这个SESSION文件就只能保持等待状态,这就是为什么页面二需要等待页面一执行完毕之后才执行。
hellohacker
2014-03-25 21:42:55 +08:00
@cdffh "页面二需要等待页面一执行完毕之后才执行" 是不是可以这样理解:我打开了2个网页 第一个网页很慢 一直在加载,而我又打开了一个页面 在session_strat()后面 输出内容 那么就不会输出内容 因为第一个页面 还是处在加载状态
sffytian
2014-03-25 22:12:55 +08:00
如果你的session是使用文件方式存储的, session_start之后会给文件加锁, 并发量大的时候会有问题, 可以观察一下服务器的io和session存放目录是否有异常, session建议放到memcache或者redis里去.
explon
2014-03-25 23:56:21 +08:00
Session 存文件的吧,放 Memcache 或者数据库即可解决
yunmoxue
2014-03-26 12:56:27 +08:00
网站访问量突然加大了吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/105868

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX