【发布时间】:2012-05-10 06:21:16
【问题描述】:
出于某种奇怪的原因,就在今天,我们的服务器决定在会话开始期间非常慢。对于每个 session_start,服务器要么在 30 秒后超时,要么需要大约 20 秒才能启动会话。这很奇怪,因为它已经很长时间没有这样做了(我们的服务器上一次这样做是大约 7 个月前)。我尝试将会话更改为通过数据库运行,并且效果很好,但是,随着我们当前的网站的构建,在每个页面上都需要几天时间并更改会话的加载以包含新会话处理程序。因此我的问题仍然存在:
为什么这么慢,为什么只是有时?
我们在具有 24GB 内存的专用 hetzner 服务器上运行,CPU 速度足以运行一个简单的网络服务器(我相信是 Xeon,但我不确定)。我们使用 apache+fastcgi+php5 设置在服务器上运行 debian。
服务器不会报告太多负载,无论是通过服务器状态还是top 命令。 Vnstat 报告我们的网络链接没有任何问题(同样,这不会导致本地会话处理缓慢)。 IOtop 报告进程接管整个硬盘驱动器没有问题。如果通过 vim 完成,写入会话文件所在的 tmp 文件夹会很快。
再次说明,我主要关心的不是我们是否应该切换到数据库或内存缓存版本的会话,只是想问为什么会发生这种情况,因为我看的所有内容at 似乎工作正常,除了 PHP 本身。
编辑: 我们的 PHP tmp 目录中的最大文件是 2.9 MB,所以我相信不会有任何影响。
更新:我从来没有弄清楚出了什么问题和/或如何解决它,但是在我们切换到 memcached/db 会话后问题就消失了。
【问题讨论】:
-
查看您的
tmp目录。 PHP 将它的会话存储在那里。看看有没有什么问题。 -
磁盘或文件系统可能有问题?
-
“在每个页面上都需要几天的时间来更改会话的加载以包含新的会话处理程序”如果是这种情况,您应该认真考虑首先解决这个问题
-
RepWhoringPeeHaa @ 正如我所提到的,我肯定会这样做。我的工作已经进入系统,所以很遗憾我还没有创建应用程序所拥有的会话管理。这也不是我们需要解决的问题,因为如上所述,超过 7 个月没有问题。
-
您认为最近是否有任何更改导致了这种行为?您能否查看昨天的日志文件的最后一部分,看看是否记录了指示故障的内容?
标签: php apache session debian fastcgi