【发布时间】:2015-10-21 14:58:33
【问题描述】:
我们有一个使用 Symfony2 的网站,有一些流量。
网站每天都会因此错误而失败 1 或 2 分钟(15-20 个错误)。这发生在随机时间,找不到模式。它甚至不适合高峰时段。
2015-10-09 02:23:57.635 [2015-10-09 06:23:38] request.CRITICAL: Uncaught PHP Exception RuntimeException: "Failed to start the session" at /var/www/thing.com/httpdocs/app/cache/prod/classes.php line 121 {"exception":"[object] (RuntimeException(code: 0): Failed to start the session at /var/www/thing.com/httpdocs/app/cache/prod/classes.php:121)"} []
似乎不是双头问题或双头问题。 网站不会与任何可能会干扰会话的 PHP 遗留代码进行交互。
会话存储在数据库中,因此文件问题被丢弃。 降低了会话持续时间,因此会话表不会变得太大并且问题仍然存在。
认为这可能是 HWIOAuthBundle 的问题,它是 facebook 登录,但找不到冲突在哪里。
此外,该站点使用大量的 render_esi 来缓存 Symfony2 内部缓存系统。
更新 ---------------------------------- ---
清空了旧会话文件的 /var/lib/php/sessions 文件夹,而不是没有使用。
降低了会话寿命。 session 表中的 Sql 条目从 ~300 万增加到 ~130 万。
似乎问题已经消失了,但这并不是真正的解决方案。 我的猜测是symfony2中的pdo_handler有性能问题。
也许对这件事有更多了解的人(pdo_handler,表优化)可以为高流量指出一个真正的解决方案。
【问题讨论】: