MySQL“连接太多”+ 6000查询/秒

我们有一个很大的mysqlinnodb)数据库,其中有很多插入查询和每秒6000个查询。

设置是:
max_connections = 1000

通常当我show status like '%onn%';

Threads_connected = 3

不过有时(每隔几分钟)我们就会得到一个“连接太多”的错误。

我在这里阅读: http : //dev.mysql.com/doc/refman/5.5/en/too-many-connections.html
max_connections> 1000会占用大量内存,并可能不稳定。

如何处理这样的错误? 有没有一个查询队列,确保在这里有一个一致的查询stream程?

你确定线程连接吗?

免责声明:我是一个SqlServer数据库的家伙,所以 – 我的MySql知识是有限的。

仍然。

如果你通常只有3个线程连接 – 这是一个巨大的冲击超过1000.如果你使用适当的池,这可能是一些重载的结果,突然之间延迟交易完成,导致新的连接大开销。

我只是看着我的小型服务器,我打开了59个连接(汇集,保持活着2分钟),每秒大约30个批次(我们使用HPC – 所以在这种情况下,他们需要新的工作 – 加上一些结果和下载)。 这比你有更多的 – less批次。 如果我的联系突然超过200我真的调查这一点。 假设你有3个连接的同时,每秒真的有6000个批次 – 这是300个爆炸(非常粗略)连接的因素,这是真正的调查和find原因。

另外 – 定义你的RAM。 我的意思是,什么是相当大的。 有了这个数量的sql语句,我期望一个真正的服务器(64 + gb内存,2xXeon什么的)。 1000个连接可能不会使用大量内存的真实服务器 – 他们虽然做一个小vps。 但是大多数这样的小实例每秒不运行6000个select。