连接数过多导致程序连接报错的原因

涉及到的参数:

  

max_connections

1024


max_user_connections


1000


wait_timeout


100

连接数是直接反应数据库性能好坏的关键指标。可能的原因包括:

(1)sql查询堵死,造成后面的DML操作等待;

(2)增删改查操作频繁,磁盘IO遇到瓶颈,导致无法处理繁忙请求等。

如果出现too manyconnections,直接增大max_connections值得同时,一般设置为500-1000,在大多数情况下就可以了,但是如果继续增加,比如增加为10000,就是治标不治本。因为连接数增大,会导致每个连接所占用的内存也增加,这样机器很容易因内存不足而死机。

mysql>show variables like ‘%connections%‘;

+----------------------+-------+

|Variable_name        | Value |

+----------------------+-------+

|max_connections      | 151   |

|max_user_connections | 0     |

+----------------------+-------+

2 rows inset (0.00 sec)

在处理完一条请求后,会根据wait_timeout(服务器关闭非交互连接之前等待活动的秒数)的值来释放连接,一般设置为100s即可。如果没有设置,采用默认的28800s,即8h,客户端连接到mysql服务器处理完相应的操作后,要等待8h才会释放内存,如果数据库服务器有大量的闲置连接,不仅会白白消耗内存,如果连接一直累加而不断开,最终会达到mysql连接的上限数,就会报这个错误。

mysql>show variables like ‘wait_timeout%‘;

+---------------+-------+

|Variable_name | Value |

+---------------+-------+

|wait_timeout  | 28800 |

+---------------+-------+

1 row inset (0.00 sec)

在配置文件中:

wait_timeout=100

时间: 2024-10-12 07:54:00

连接数过多导致程序连接报错的原因的相关文章

GG链路过多端口不足导致的报错OGG-01223

如果我们GG同步链路在增多,就有可能出现这个报错,在日志中能体现. 2014-05-20 13:32:38 WARNING OGG-01223 TCP/IP error 111 (Connection refused). 2014-05-20 13:33:19 WARNING OGG-01223 TCP/IP error 111 (Connection refused). 2014-05-20 13:34:00 WARNING OGG-01223 TCP/IP error 111 (Connec

SQL语句异常导致项目报错

1.错误描述 严重:Exception occurred during processing request:Statement Callback;SQL[   ];OALL8处于不一致状态; nested exception is java.sql.SQLException:OALL8处于不一致状态. java.sql.SQLException:违反协议 Caused by:java.sql.SQLException:OALL8处于不一致状态 2.错误原因 (1)连接Oracle驱动不匹配 (

Couldn't load libPassword from loader:NDK开发中C文件编译成cpu的so类库时,找不到类库报错的原因之一

LogCat输出: 03-03 12:42:32.665: E/AndroidRuntime(32432): FATAL EXCEPTION: main03-03 12:42:32.665: E/AndroidRuntime(32432): Process: com.toro.passwordencode, PID: 3243203-03 12:42:32.665: E/AndroidRuntime(32432): java.lang.UnsatisfiedLinkError: Couldn't

Sql server的Merge语句,源表中如果有重复数据会导致执行报错

用过sql server的Merge语句的开发人员都应该很清楚Merge用来做表数据的插入/更新是非常方便的,但是其中有一个问题值得关注,那就是Merge语句中的源表中不能出现重复的数据,我们举例来说明这个问题. 现在我们有一张表叫T_Class_A,其建表语句如下: CREATE TABLE [dbo].[T_Class_A]( [ID] [int] IDENTITY(1,1) NOT NULL, [ClassName] [nvarchar](50) NULL, [StudentTotalCo

1. 今天添加SDK报错的原因

今天郁闷至极,真机调试时,昨天建好的工程文件一大早来就无法识别手机,还报一大堆的错,后来下午实在没办法,把工程件删了,重新见一个工程,这下竟然没报错了,但是一添加sdk文件进里面去又报错,我日,直接快让我崩溃了,我当时采用的是直接用"Add Files to xxx", 后来才知道这样添加编译器找不到文件,而是要用到Build Phases ->compile sources--添加文件:   link binary with libraries 添加静态库.然后就解决问题了.

服务器意外重启导致storm报错的问题处理

解决方法 cat /opt/storm-0.8.2/conf/storm.yaml中找到storm.local.dir设定的目录,备份supervisor和workers两个文件夹,#nohup supervise /service/storm/ &重启 错误如下 2014-06-17 12:27:05,267 INFO [main] daemon.supervisor (NO_SOURCE_FILE:invoke(0)) - Starting supervisor with id xxx at

mysql连接数太小,导致网站报错mysql:Too many connections

2017.9.14 一个网站上线前压力测试 网页打开报错mysql:Too many connections 一看就是mysql连接数设置过小导致的 进mysql查看连接数设置 show variables like '%max_connections%'; 只有151,怎么可以,果断决定提高到1000 PS:服务器性能可以的,哈哈 打开MySQL配置文件my.cnf添加 max_connections=1000  重启MySQL即可. 再次测试没问题咯! 方法二:命令行临时修改. set gl

oracle 11g 手动删除表空间文件导致数据库报错处理方法

简单说下原因:当时图方便没进数据库,直接在datafile目录下删除了表空间对应的数据文件 导致后来数据库报错,并且不能删除表空间 错误如下:ORA-01116:error in opening database ****ORA-01110:data file 54:'/home3/datafile/arrange/NewArrange.dbf'ORA-27041:unable to open fileLinux Error:2: No Such file or directoryAdditio

canvas生成图片toDataURL报错的原因和解决方法

现象:在使用canvas的toDataURL()方法时,控制台有时会报错:Uncaught DOMException: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported. 原因:这是由于之前由drawImage()向canvas导入的图片跨域而导致的. 解决方法: 1.在引用图片之前打开跨域资源允许权限(一定要注意顺序): 1 var img=new Image;