我已经运行网站一段时间了,在网站上看到的最明显的错误是“建立数据库连接时出错”。当线程达到某个限制(通常是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。
谢谢。