已经监视mysql服务器多年了,我注意到mysql数据库max_used_connections不能通过4832。一旦达到4832,MySQL开始显示缓慢,而负载/cpu使用率/内存则处于适度使用状态。max_connections设置为6000 (显示像“max_connections”这样的变量)。运行Ubuntu20.04,下面的Mysql5.7.33是我修改的配置:
mysql.conf
max_connections = 6000 # have tried other values like 10000
open_files_limit = 1048576修改/etc/systemd/system/mysql.service
LimitNOFILE=infinity
LimitMEMLOCK=infinity/etc/安全/限制f
* soft nofile 1048576
* hard nofile 1048576
* soft nproc 1084576
mysql soft nproc 1084576
mysql hard nproc 1084576
mysql soft nofile 1084576
mysql hard nofile 1084576乌尔
ulimit -n; // 1048576
ulimit -u; // 257436以前,服务器是12核心48 12内存,达到4832。我升级到16核心64 16内存,max_used_connections仍然达到4832max。它总是达到4832,没有进一步的。有什么想法吗?
发布于 2021-06-25 19:35:25
听起来系统开始交换了。这对表演来说太糟糕了。
几乎没有一个MySQL系统真正需要超过1000个连接。在解决这个问题之前,你会从中得到什么(当它达到4823)?
SHOW GLOBAL STATUS LIKE 'Threads_running';我需要更多的信息..。RAM大小,innodb_buffer_pool_size值,max_connections值。这是一个网络应用程序吗?或者是客户的其他东西?
一个典型的问题来自客户端(例如,web服务器子服务器)不必要的数量。我认为这是第一件要处理的事情。降低"max_children“(或其他什么)。
如果Threads_running超过20,那么您可能有一些需要优化的缓慢查询。设置long_query_time = 1并打开慢速日志。一段时间后,使用pt-query-digest分析顽皮查询的慢速日志。
https://dba.stackexchange.com/questions/294787
复制相似问题