NGinx线程最大使用率原因导致建立数据库连接的错误

时间:2018-11-03 07:55:19

标签: wordpress nginx

我已经运行网站一段时间了,在网站上看到的最明显的错误是“建立数据库连接时出错”。当线程达到某个限制(通常是220)时,通常会发生此错误。

我一直在使用'htop'命令观察服务器活动。最引人注目的是上面的数字:

Tasks: 191, 220 thr; 6 running

现在,当线程数达到220时,我的站点将生成“建立数据库连接时出错”。为了解决这个问题,我尝试使用各种NGINX设置。目前,我的一些设置是:

www.conf设置:

pm = ondemand
pm.max_children = 200
pm.start_servers = 70
pm.min_spare_servers = 35
pm.max_spare_servers = 70
pm.process_idle_timeout = 10s;
pm.max_requests = 500

我的nginx.conf设置是

worker_processes 6;
worker_connections 2000;
# multi_accept on;

keepalive_timeout 65;
types_hash_max_size 2048;
client_max_body_size 200m;

我的Mysql设置是

Key_buffer_size     = 16M
max_allowed_packet  = 256M
thread_stack        = 192K 
thread_cache_size       = 8
innodb_buffer_pool_size = 5G

线程达到220,然后再次减小,然后又回到220。当线程达到220时,任务也达到190或更高,并且肯定会出现“建立数据库连接错误”错误。

现在,我想知道是什么导致线程增加?以及为什么它会在没有保持恒定的情况下上升和下降?流量大致相同。它与数据库大小有关吗,大约为1.2GB。

我正在使用NGINX,Ubuntu 18.01,php 7.2,Wordpress,16GB Ram,6 CPU,Digital ocean。

谢谢。

0 个答案:

没有答案