我正在 AWS 上运行一个网站,其设置如下:
- 单个 m1.small 实例(Web 服务器)
- 单个 RDS m1.small db
- Joomla 1.5
总体而言,该网站性能良好,但流量较低 - 大约每小时 50-100 次访问。然而,在高峰时段,我们看到的流量大约是这个数字的两倍。在高峰时段,几乎每天都是如此:
- Web 服务器上的 CPU 使用率缓慢上升至 100%
- RDS 服务器上的 CPU 使用率从平均约 15% 迅速上升至约 30%。
- 数据库连接数从正常平均值 2 或 3 猛增至约 140
根据 pingdom 监控显示,该网站偶尔会无法访问。
有人认识到这种行为吗?您能指出我开始调查的正确方向吗?当然,RDS 使得执行诸如慢速查询日志记录之类的操作变得很困难,因此我首先定期将 mysql 进程列表转储到一个文件中,看看是否有任何我可以发现的东西,但最好有更具体的东西可供调查。
更新
至少,有人可以确认我说的绝对正确,流量水平意味着问题一定是特定类型的查询方式执行时间比应执行的时间长吗?如果表被锁定,并且许多查询需要写入该表,就会发生这种情况,对吗?出于这个原因,我已经将 __session 表类型更改为 InnoDB。
答案1
答案2
我不认为这是 MySQL 问题。您所描述的是我在 Joomla 网站上遇到的实例(切片)内存分配不足的情况。我建议增加内存分配,然后监控结果以进行改进。
如果您仍然认为这是 MySQL 问题,我将使用 MySQL 创建一个虚拟应用程序并对其进行负载测试。