定期MySql超时,然后是ASP.NET网站中的连接峰值

时间:2014-06-30 19:06:26

标签: mysql asp.net .net amazon-ec2 amazon-rds

我们每隔几天就会收到少量的MySql超时错误,这些错误与我们的MySQL RDS实例上的CPU和数据库连接的大量峰值相对应。这些查询通常非常快(<5ms)突然超时。

此时,数据库操作在一分钟左右非常慢(可能是因为正在分配新连接)。新连接的数量通常会翻倍,并且似乎与要回收的整个连接池相对应。

超时似乎与繁重的数据库负载无关。当这种情况发生在12%左右时,CPU通常低于7%。

创建这些连接后,旧连接似乎会保持几个小时。

我们有一些理论:

  • EC2和RDS之间偶尔出现网络打嗝
  • 连接池回收(有这样的事吗?)
  • 备份所有查询的服务器上的资源争用(不存在死锁)

非常感谢任何有关调试的帮助。

系统详细信息:

  • Windows 2012 EC2实例
  • .NET 4.5
  • MySql Connector 6.8.3
  • Entity Framework 6.0.2
  • MySql.Data.Entities 6.8.3
  • MySql 5.6.12(托管在亚马逊的RDS中)

1 个答案:

答案 0 :(得分:0)

我想将此作为评论而不是答案,但是&#34; ...必须有50个评论的声誉......&#34;

  1. 你是否在连接上最大化?显示变量,例如&#39; max_connections&#39 ;; show process_list; (以root用户身份)
  2. 您的磁盘I / O:iostat -x 5如何通过命令行,并特别注意队列大小&amp;服务/等待时间。如果出现问题,您可以购买AWS保留的IOPS以获得更好的可靠性&amp;性能
  3. 你可以对它进行描述 - 我喜欢Jet Profiler,简单&amp;低负荷。