`

mysql 中too many connection解决之道

阅读更多
在http://www.mysqlperformanceblog.com/2013/11/28/mysql-error-too-many-connections/
中提到了如何处理了too many connection,其中要点有:

1) 大多数活动的连接是否真的有必要?是否应该检查去关掉他们?
2) 建议使用wait_timeout限制等待的连接
3) Threads_running参数表达的是不包括那些限制睡眠的线程的,计算的是当前活动的线程使用的查询,使用方法:
    mysqladmin extended -i1 | grep Threads_running

而threads_connected包括的是所有闲置线程在内的了;

4) 文章说到,max_connections=1000 对于16G内存来说是不错的选择,但具体情况要具体分析!
5) Percona Server 5.5 中有自己的线程池http://www.percona.com/doc/percona-server/5.5/performance/threadpool.html
  

附录:
  1.系统mysql的进程数
ps -ef | grep "mysql" | grep -v "grep" | wc –l
2.Slave_running
mysql > show status like 'Slave_running';
如果系统有一个从复制服务器,这个值指明了从服务器的健康度
3.Threads_connected
mysql > show status like 'Threads_connected';
当前客户端已连接的数量。这个值会少于预设的值,但你也能监视到这个值较大,这可保证客户端是处在活跃状态。
4.Threads_running
mysql > show status like 'Threads_running';
如果数据库超负荷了,你将会得到一个正在(查询的语句持续)增长的数值。这个值也可以少于预先设定的值。这个值在很短的时间内超过限定值是没问题的。当Threads_running值超过预设值时并且该值在5秒内没有回落时, 要同时监视其他的一些值。

5.Aborted_clients
mysql > show status like 'Aborted_clients';
客户端被异常中断的数值,即连接到mysql服务器的客户端没有正常地断开或关闭。对于一些应用程序是没有影响的,但对于另一些应用程序可能你要跟踪该值,因为异常中断连接可能表明了一些应用程序有问题。
6.Questions
mysql> show status like 'Questions';
每秒钟获得的查询数量,也可以是全部查询的数量,根据你输入不同的命令会得到你想要的不同的值。
7.Handler_*
mysql> show status like 'Handler_%';
如果你想监视底层(low-level)数据库负载,这些值是值得去跟踪的。
如果Handler_read_rnd_next值相对于你认为是正常值相差悬殊,可能会告诉你需要优化或索引出问题了。Handler_rollback表明事务被回滚的查询数量。你可能想调查一下原因。
8.Opened_tables
mysql> show status like 'Opened_tables';
表缓存没有命中的数量。如果该值很大,你可能需要增加table_cache的数值。典型地,你可能想要这个值每秒打开的表数量少于1或2。
9.Select_full_join
mysql> show status like 'Select_full_join';
没有主键(key)联合(Join)的执行。该值可能是零。这是捕获开发错误的好方法,因为一些这样的查询可能降低系统的性能。
10.Select_scan
mysql> show status like 'Select_scan';
执行全表搜索查询的数量。在某些情况下是没问题的,但占总查询数量该比值应该是常量(即Select_scan/总查询数量商应该是常数)。如果你发现该值持续增长,说明需要优化,缺乏必要的索引或其他问题。
11.Slow_queries
mysql> show status like 'Slow_queries';
超过该值(--long-query-time)的查询数量,或没有使用索引查询数量。对于全部查询会有小的冲突。如果该值增长,表明系统有性能问题。
12.Threads_created
mysql> show status like 'Threads_created';
该值应该是低的。较高的值可能意味着你需要增加thread_cache的数值,或你遇到了持续增加的连接,表明了潜在的问题。
13.客户端连接进程数
shell> mysqladmin processlist
mysql> show processlist;
你可以通过使用其他的统计信息得到已连接线程数量和正在运行线程的数量,检查正在运行的查询花了多长时间是一个好主意。如果有一些长时间的查询,管理员可以被通知。你可能也想了解多少个查询是在"Locked"的状态—---该值作为正在运行的查询不被计算在内而是作为非活跃的。一个用户正在等待一个数据库响应。
14.innodb状态
mysql> show innodb status;
该语句产生很多信息,从中你可以得到你感兴趣的。首先你要检查的就是“从最近的XX秒计算出来的每秒的平均负载”。
(1)Pending normal aio reads: 该值是innodb io请求查询的大小(size)。如果该值大到超过了10—20,你可能有一些瓶颈。
(2)reads/s, avg bytes/read, writes/s, fsyncs/s:这些值是io统计。对于reads/writes大值意味着io子系统正在被装载。适当的值取决于你系统的配置。
(3)Buffer pool hit rate:这个命中率非常依赖于你的应用程序。当你觉得有问题时请检查你的命中率
(4)inserts/s, updates/s, deletes/s, reads/s:有一些Innodb的底层操作。你可以用这些值检查你的负载情况查看是否是期待的数值范围。
15.主机性能状态
shell> uptime
16.CPU使用率
shell> top
shell> vmstat
17.磁盘IO
shell> vmstat
shell> iostat
18.swap进出量(内存)
shell> free
19.MySQL错误日志
在服务器正常完成初始化后,什么都不会写到错误日志中,因此任何在该日志中的信息都要引起管理员的注意。
20.InnoDB表空间信息
InnoDB仅有的危险情况就是表空间填满----日志不会填满。检查的最好方式就是:show table status;你可以用任何InnoDB表来监视InnoDB表的剩余空间。
21.QPS每秒Query量
QPS = Questions(or Queries) / seconds
mysql > show /* global */ status like 'Question';
22.TPS(每秒事务量)
TPS = (Com_commit + Com_rollback) / seconds
mysql > show status like 'Com_commit';
mysql > show status like 'Com_rollback';
23.key Buffer 命中率
key_buffer_read_hits = (1-key_reads / key_read_requests) * 100%
key_buffer_write_hits = (1-key_writes / key_write_requests) * 100%
mysql> show status like 'Key%';
24.InnoDB Buffer命中率
Innodb_buffer_read_hits = (1 - innodb_buffer_pool_reads / innodb_buffer_pool_read_requests) * 100%
mysql> show status like 'innodb_buffer_pool_read%';
25.Query Cache命中率
Query_cache_hits = (Qcahce_hits / (Qcache_hits + Qcache_inserts )) * 100%;
mysql> show status like 'Qcache%';
26.Table Cache状态量
mysql> show status like 'open%';
27.Thread Cache 命中率
Thread_cache_hits = (1 - Threads_created / connections ) * 100%
mysql> show status like 'Thread%';
mysql> show status like 'Connections';
28.锁定状态
mysql> show status like '%lock%';
29.复制延时量
mysql > show slave status
30.Tmp Table状况(临时表状况)
mysql > show status like 'Create_tmp%';
31.Binlog Cache使用状况
mysql > show status like 'Binlog_cache%';
32.Innodb_log_waits量
mysql > show status like 'innodb_log_waits';
分享到:
评论

相关推荐

    关于mysql提示too many connections问题解决方法.doc

    MySQL数据库在运行过程中可能会遇到“Too many connections”的错误提示,这意味着服务器上的MySQL实例...通过上述方法,可以有效管理和解决MySQL中的“Too many connections”问题,确保数据库服务的稳定性和性能。

    Mysql错误:Too many connections的解决方法

    总之,“Too many connections”错误可以通过优化应用程序、调整MySQL配置、监控连接状态以及提升服务器性能等多方面进行解决。关键在于平衡并发连接需求与服务器资源的使用,确保数据库系统的稳定性和高效性。

    访问应用很慢,访问Nginx时,报错:accept() failed (24 Too many open files).docx

    在本文中,我们将讨论 Nginx 访问慢和 accept() failed 错误的解决方案。这个问题通常是由于 Nginx 的连接数超过了系统设定的最大值造成的。下面是解决这个问题的方法。 一、临时修改 ulimit 值 可以使用 ulimit ...

    mysql "too many connections" 错误 之 mysql解决方法

    MySQL中的“Too many connections”错误通常发生在服务器上可用的连接数全部被客户端占用时,这意味着不能再接受新的连接请求。此问题通常与两个主要因素有关:MySQL服务器的最大连接数限制和客户端应用程序的连接...

    行业-38 案例实战:数据库无法连接故障的定位,Too many connections.rar

    总之,"Too many connections"错误的解决需要综合考虑代码优化、数据库配置调整、连接池管理以及系统监控等多个方面。通过系统性的排查和改进,可以有效地防止此类问题的发生,确保数据库系统的稳定运行。

    数据库系统化实战(MySQL)-丁奇

    在稳定性方面,丁奇提到了如何处理连接数问题,例如推荐使用长连接还是短连接,以及如何预防和解决too many connections的问题。他还提到了源码改造,如root connection总是可用的实现,以及长连接资源消耗、选择性...

    MySQL基本语句和连接字符串-JAVA程序员JAVA工程师面试必看.doc

    MySQL是世界上最流行的开源关系型数据库管理系统之一,对于Java程序员和工程师来说,掌握MySQL的基本语句和连接字符串是非常重要的技能。以下是对这些知识点的详细解释: **MySQL基本语句** 1. **INSERT INTO**: ...

    高并发系统MySQL遇到的挑战.pdf

    6. **连接池问题**:连接池管理不当可能导致“DB too many connections”或“get connection timeout”的问题。未使用线程池时,随着连接数增加,性能会急剧下降。需要合理设置连接池大小,并确保及时归还连接,避免...

    CI框架出现mysql数据库连接资源无法释放的解决方法

    然而,在使用过程中,可能会遇到一些问题,如数据库连接资源无法释放,导致“Too many connections”错误。本文将深入探讨这个问题的原因以及解决方案。 当CI框架在处理大量并发请求时,如果每个请求都创建一个新的...

    eclipse常见报错

    6. Mysql 的错误:Data source rejected establishment of connection message from server: "Too many connections"。 解决方法:检查 Mysql 的 max connections 设置,避免多次 insert、update 操作没有关闭 ...

    设置数据库的连接上线

    - **答案**:如果设置过低,则在高并发场景下可能会出现“Too many connections”的错误提示,导致新的请求无法正常建立连接。 **Q2:过高设置会有哪些负面影响?** - **答案**:过高设置可能会导致服务器资源过度...

    php.ini-development

    configuring many of the aspects of PHP's behavior. ; PHP attempts to find and load this configuration from a number of locations. ; The following is a summary of its search order: ; 1. SAPI module ...

    VB编程资源大全(英文源码 数据库)

    It is handy in studying database programming.<END><br>20 , MySQLExplorer.zip Explorer for MySQL Data Base.You can retrieve and execute your query. <END><br>21 , ICDBaseSource115.zip DAO based ...

Global site tag (gtag.js) - Google Analytics