mysql优化连接数防止访问量过高的方法
这篇文章主要介绍了mysql优化连接数防止访问量过高的方法,需要的朋友可以参考下
很多开发人员都会遇见”MySQL: ERROR 1040: Too many connections”的异常情况,造成这种情况的一种原因是访问量过高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分散读压力;另一种原因就是MySQL配置文件中max_connections值过小。
首先,我们来查看mysql的最大连接数:
1
2
3
4
5
6
7
|
mysql> show variables like '%max_connections%' ; + -----------------+-------+ | Variable_name | Value | + -----------------+-------+ | max_connections | 151 | + -----------------+-------+ 1 row in set (0.00 sec) |
其次,查看服务器响应的最大连接数:
1
2
3
4
5
6
7
|
mysql> show global status like 'Max_used_connections' ; + ----------------------+-------+ | Variable_name | Value | + ----------------------+-------+ | Max_used_connections | 2 | + ----------------------+-------+ 1 row in set (0.00 sec) |
可以看到服务器响应的最大连接数为2,远远低于mysql服务器允许的最大连接数值。
对于mysql服务器最大连接数值的设置范围比较理想的是:服务器响应的最大连接数值占服务器上限连接数值的比例值在10%以上,如果在10%以下,说明mysql服务器最大连接上限值设置过高。
1
|
Max_used_connections / max_connections * 100% = 2/151 *100% ≈ 1% |
我们可以看到占比远低于10%(因为这是本地测试服务器,结果值没有太大的参考意义,大家可以根据实际情况设置连接数的上限值)。
再来看一下自己 linode VPS 现在(时间:2013-11-13 23:40:11)的结果值:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
mysql> show variables like '%max_connections%' ; + -----------------+-------+ | Variable_name | Value | + -----------------+-------+ | max_connections | 151 | + -----------------+-------+ 1 row in set (0.19 sec) mysql> show global status like 'Max_used_connections' ; + ----------------------+-------+ | Variable_name | Value | + ----------------------+-------+ | Max_used_connections | 44 | + ----------------------+-------+ 1 row in set (0.17 sec) |
这里的最大连接数占上限连接数的30%左右。
上面我们知道怎么查看mysql服务器的最大连接数值,并且知道了如何判断该值是否合理,下面我们就来介绍一下如何设置这个最大连接数值。
方法1:
1
2
3
4
5
6
7
8
9
|
mysql> set GLOBAL max_connections=256; Query OK, 0 rows affected (0.00 sec) mysql> show variables like '%max_connections%' ; + -----------------+-------+ | Variable_name | Value | + -----------------+-------+ | max_connections | 256 | + -----------------+-------+ 1 row in set (0.00 sec) |
方法2:
修改mysql配置文件my.cnf,在[mysqld]段中添加或修改max_connections值:
max_connections=128
重启mysql服务即可。
1.show status
Threads_connected 当前的连接数
Connections
试图连接到(不管是否成功)MySQL服务器的连接数。
Max_used_connections 服务器启动后已经同时使用的连接的最大数量。
2.set GLOBAL max_connections=连接数;
flush privileges
3.修改/etc/my.cnf中的max_connections
4.show processlist 显示当前正在执行的mysql连接
5.mysqladmin -u<user> -p<pwd> -h<host> status
显示当前mysql状态
Uptime: 13131 Threads: 1 Questions: 22 Slow queries: 0 Opens: 16
Flush tables: 1 Open tables: 1 Queries per second avg: 0.1
mysqladmin -u<user> -p<pwd> -h<host>
extended-status
显示mysql的其他状态
+-----------------------------------+----------+
|
Variable_name | Value
|
+-----------------------------------+----------+
|
Aborted_clients | 0 |
|
Aborted_connects | 1 |
| Binlog_cache_disk_use |
0 |
| Binlog_cache_use | 0 |
|
Bytes_received | 1152 |
|
Bytes_sent | 10400 |
| Com_admin_commands |
0 |
| Com_assign_to_keycache | 0 |
.............................................................
.............................................................
| Threads_cached | 2 |
|
Threads_connected | 1 |
| Threads_created |
3 |
| Threads_running | 1 |
|
Uptime | 13509 |
|
Uptime_since_flush_status | 13509
|
+-----------------------------------+----------+
mysql优化连接数防止访问量过高的方法的更多相关文章
- mysql优化连接数
很多开发人员都会遇见”MySQL: ERROR 1040: Too many connections”的异常情况,造成这种情况的一种原因是访问量过高,MySQL服务器抗不住,这个时候就要考虑增加从服务 ...
- 【转】单表60亿记录等大数据场景的MySQL优化和运维之道 | 高可用架构
此文是根据杨尚刚在[QCON高可用架构群]中,针对MySQL在单表海量记录等场景下,业界广泛关注的MySQL问题的经验分享整理而成,转发请注明出处. 杨尚刚,美图公司数据库高级DBA,负责美图后端数据 ...
- [转载] 单表60亿记录等大数据场景的MySQL优化和运维之道 | 高可用架构
原文: http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=209406532&idx=1&sn=2e9b0cc02bdd ...
- 单表60亿记录等大数据场景的MySQL优化和运维之道 | 高可用架构
015-08-09 杨尚刚 高可用架构 此文是根据杨尚刚在[QCON高可用架构群]中,针对MySQL在单表海量记录等场景下,业界广泛关注的MySQL问题的经验分享整理而成,转发请注明出处. 杨尚刚,美 ...
- 正确修改MySQL最大连接数的三种好用方案
以下的文章主要介绍的是正确修改MySQL最大连接数的三种好用方案,我们大家都知道MySQL数据库在安装完之后,默认的MySQL数据库,其最大连接数为100,一般流量稍微大一点的论坛或网站这个连接数是远 ...
- mysql修改连接数
方法一: 进入MySQL安装目录 打开MySQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_connections=1000 服务里重起M ...
- Mysql优化系列(1)--Innodb引擎下mysql自身配置优化
1.简单介绍InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎.InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读.这些特色 ...
- Mysql优化系列(0)--总结性梳理
对于一个网站来说,在运行很长一段时间后,数据库瓶颈问题会越来越暴露出来.作为运维人员,对数据库做必要的优化十分重要!下面总结以往查阅到的以及自己工作中的一些优化操作经验,并根据OSI七层模型从下往上进 ...
- MySQL优化小建议
背景 "那啥,你过来一下!" "怎么了?我代码都单元测试了的,没出问题啊!"我一脸懵逼跑到运维大佬旁边. "你看看!你看看!多少条报警,赶快优化一下! ...
随机推荐
- CF360B Levko and Array (二分查找+DP)
链接:CF360B 题目: B. Levko and Array time limit per test 2 seconds memory limit per test 256 megabytes i ...
- Apache服务器常规操作
导读 Apache是世界上排名第一的Web服务器,50%以上的Web服务器都在使用Apache,它几乎可以在所有计算机平台上运行.下面就由我给大家说说Apache服务器的一些常规操作. Apache服 ...
- [BZOJ1101][POI2007]Zap
[BZOJ1101][POI2007]Zap 试题描述 FGD正在破解一段密码,他需要回答很多类似的问题:对于给定的整数a,b和d,有多少正整数对x,y,满足x<=a,y<=b,并且gcd ...
- Centos镜像使用帮助
https://lug.ustc.edu.cn/wiki/mirrors/help/centos
- MVC NonAction属性
3.1. NonAction属性 若将NonAction属性应用在Controller中的Action方法上,即使该Action方法是公共方法,也会告知ActionInvoker不要选取这个Actio ...
- 应用 JD-Eclipse 插件实现 RFT 中 .class 文件的反向编译
概述 反编译是一个将目标代码转换成源代码的过程.而目标代码是一种用语言表示的代码 , 这种语言能通过实机或虚拟机直接执行.文本所要介绍的 JD-Eclipse 是一款反编译的开源软件,它是应用于 Ec ...
- 1.10 编程之美-双线程下载[double threads to download]
[本文链接] http://www.cnblogs.com/hellogiser/p/double-threads-to-download-and-write.html [题目] 网络上下载数据,然后 ...
- 16.O(logn)求Fibonacci数列[Fibonacci]
[题目] log(n)时间Fib(n),本质log(n)求a^n. [代码] C++ Code 12345678910111213141516171819202122232425262728293 ...
- 15.含有指针成员的类的拷贝[ClassCopyConstructorWithPointerMember]
[题目] 下面是一个数组类的声明与实现.请分析这个类有什么问题,并针对存在的问题提出几种解决方案. C++ Code 123456789101112131415161718192021222324 ...
- DroidDraw - Android的界面设计工具
ADT中的界面开发工具实在是很烂,通常情况下都需要硬编码,对于程序员来说不但效率比较低下,而且调试起来极其不方便,还好在Google未推出GUI的"所见即所得"的工具之前,我们找到 ...