我有一个 drupal 网站,里面有很多模块(不要问数量)。六个月来,网站一直很稳定,但最近服务器开始卡住。通常,MySQL 达到最大并发连接数(1000),网站就会崩溃。
我想要找出网站内哪些网页正在被访问,或者哪些 cron 或 drush 进程正在运行并导致网站瘫痪。
找出这些信息的最佳策略是什么?
我是否应该解析 apache 日志,查看访问了哪些网页,然后对日志中的最后 100 页进行基准测试,并查看它们消耗了多少内存?
或者有没有更准确的说法是“这个特定的页面或流程导致您的网站崩溃”?
我知道有 PHP 日志、Apache 日志、MySQL 日志和 top 命令,但似乎有太多不确定的信息。
答案1
我没有使用过 Drupal 或 MySQL,但您似乎已经掌握了开始解决此类问题所需的所有部分。
由于数据库是故障点(只是假设),我建议从后往前开始:MySQL > PHP > Apache > OS > 网络。查看每一层的故障时间和错误。稍微往前追溯一段时间。您的托管服务是否提供网络日志/统计信息?看看您是否也可以获取这些数据。
另外,你听说过 New Relic 吗?他们有免费版的诊断工具:查看http://newrelic.com。他们似乎正在为他们的“黄金”发行做为期 7 天的促销——可能有帮助……?
祝你好运!
知识管理