The post How MySQL handles connection ? Troubleshooting MySQL ERROR 1040, Too many connections! appeared first on The WebScale Database Infrastructure Operations Experts.
]]>When a client tries to log into MySQL it may sometimes be rejected and receive an error message saying that there are “too many connections“. This means that the maximum number of clients that may be connected to the server has been reached. Either the client will have to wait for another client to log off, or the administrator will have to increase the maximum number of connections allowed.
Information about connections to a server can be found using the SHOW STATUS statement:
SHOW STATUS LIKE 'max_used_connections';
Recently one of customers ( among the top 5 largest e-commerce companies in the world ) called us to check how graceful their connection handling works during peak hours of business, They had issues in the past with ” ERROR 1040: Too many connections “ and that clearly explains the maximum number of clients that may be connected to the server has been reached so either the client will have to wait for another client to log off, or the administrator will have to increase the maximum number of connections allowed. so wanted us to do a detailed health-check on MySQL connection management and address “Too many connections” error proactively, We have explained below on how we could successfully reproduce this issue and recommended the fix:
The default setting for system variable max_connections is “151”and we are benchmarking 50K connections so the first step before benchmarking is to increase max_connections to 50000. we increased max_connections to 50000 dynamically and what happened after that was not expected, We have copied the results below:
root@MDB1:~# mysql -uroot -pMDB@PassWd2020 -se "select @@max_connections" @@max_connections 697
We got only 697 connections, Let’s interpret MySQL error log before proceeding to next steps.. We have copied the same below:
2020-01-30T19:52:35.136192Z0 [Warning] Changed limits: max_open_files: 5129 (requested 10000) 2020-01-30T19:54:13.241937Z0 [Warning] Changed limits: max_connections: 4152 (requested 10000) 2020-01-30T19:57:47.51617Z0 [Warning] Changed limits: table_open_cache: 533 (requested 15000)
This is due to open files limitations for MySQL so let’s increase now the number of allowed open files for MySQL, The following steps we did to fix this resource limit issue:
root@MDB1:~# cat /etc/systemd/system/mysql.service.d/override.conf [Service] LimitNOFILE=55000 TasksMax=55000 LimitNPROC=55000
** MySQL uses some files for additional work and we need to set LimitNOFILE, TasksMax and LimitMPROC higher to get 50000 connections, lets set it to 55000 and reload the systemd daemon and restart the MySQL service.
root@MDB1:~# systemctl daemon-reload root@MDB1:~# systemctl restart mysql
Now let’s check max_connections to confirm the change applied:
root@MDB1:~# mysql -uroot -pMDB@PassWd2020 -se "select @@max_connections" mysql: [Warning] Using a password on the command line interface can be insecure. @@max_connections 50000
We have no fixed value recommendations for system variable max_connections, It completely depends on your application load and how your application does connection handling. We advice our customers to avoid too many connections opened concurrently because each thread connected needs memory and there is also resource intensive context switching causing overall performance degradation, Thanks for reading and comments are welcome !
References
The post How MySQL handles connection ? Troubleshooting MySQL ERROR 1040, Too many connections! appeared first on The WebScale Database Infrastructure Operations Experts.
]]>The post 2020 New Year Resolution with MinervaDB appeared first on The WebScale Database Infrastructure Operations Experts.
]]>MinervaDB wishing you all a very happy and prosperous new year – 2020 ! When we talk to our customers (both existing and prospective) and other community stakeholders during the month January, We get to know their resolutions (specifically on Business and Database Infrastructure Operations) and every company is so very passionate to share their goals for 2020, They actually spend so much energy is articulating this very well, loud and clear so that the true spirit never get diluted. In this blog we would like share with you few interesting points which really can influence all of the readers (most of our expected audiences are geeks and technology business owners) too. This post is mostly about how our resolutions are very well aligned to our customers ambitions / goals, As we often say – We are not an yet another DBA outsourcing company, We are always an extended team of customers committed to building optimal, scalable, highly reliable, fault-tolerant and secured Database Infrastructure Operations, Our accomplishments totally depend on the customer success.
Every successful business build loyalty and customer satisfaction year-on-year, They solve more customer problems faster and scale the growth ( with much deeper technology commitments ) to create an impact, so the following are our customer goals for 2020:
We are living on an Datanomy world, The data powers business and Database Infrastructure going unavailable will directly impact customers, employees and investors, We at MinervaDB is committed to building and delivering optimal, scalable, highly available, fault-tolerant, reliable and secured database infrastructure operations for our customers globally. To know more on how MinervaDB creates value for your Database Infrastructure Operations, Please download our corporate flyer PDF here.
The post 2020 New Year Resolution with MinervaDB appeared first on The WebScale Database Infrastructure Operations Experts.
]]>The post Why engage MinervaDB for web-scale DBA consulting and remote DBA services ? appeared first on The WebScale Database Infrastructure Operations Experts.
]]>
The post Why engage MinervaDB for web-scale DBA consulting and remote DBA services ? appeared first on The WebScale Database Infrastructure Operations Experts.
]]>