我在DigitalOcean有一个服务器,它主要用来运行一些低stream量的WP网站,90%的网站运行良好。 但! 其中一个网站,不断有5-20(取决于我把最大的孩子),每个进程正在吃5%-20%CPU的任何地方,可以在这里看到 。 它在一天中的所有时间都保持这种状态,但是我怀疑它们会变得越来越活跃。
重新启动php-fpm或其他任何服务都无济于事 – 我已经查看了日志中找不到任何我认为会导致此问题的内容。
我在整个服务器上还是很新的东西,我不得不说我不确定是什么原因造成的。 但如果有人能指引我正确的方向,我将不胜感激!
一点信息:
DigitalOcean Droplet (4gb ram, 2 CPUs) CentOS 7.3.1611 x64 nginx / php-fpm Running WP sites (6-7 sites)
PHP-fpm.conf
listen = 127.0.0.1:9001 listen.allowed_clients = 127.0.0.1 user = int group = int pm = dynamic pm.max_children = 10 pm.start_servers = 3 pm.min_spare_servers = 2 pm.max_spare_servers = 10 pm.max_requests = 300 env[HOSTNAME] = $HOSTNAME env[PATH] = /usr/local/bin:/usr/bin:/bin env[TMP] = /tmp env[TMPDIR] = /tmp env[TEMP] = /tmp
Nginx.conf:
limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:40m; limit_req_zone $binary_remote_addr zone=req_limit_per_ip:40m rate=20r/s; server { listen 114.242.22.180:80; server_name int www.int; root /home/int/web/int/public_html; index index.php index.html index.htm; access_log /var/log/nginx/domains/int.log combined; access_log /var/log/nginx/domains/int.bytes bytes; error_log /var/log/nginx/domains/int.error.log error; limit_conn conn_limit_per_ip 40; limit_req zone=req_limit_per_ip burst=40 nodelay; location = /wp-login.php { allow xxx.xxx.xxx.xxx; deny all; } location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location / { index index.php index.html index.htm; try_files $uri $uri/ /index.php?$args; location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { expires max; } location ~ ^(.+\.php)(.*)$ { fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; if (!-f $document_root$fastcgi_script_name) { return 404; } fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_pass 127.0.0.1:9001; fastcgi_index index.php; include /etc/nginx/fastcgi_params; } } error_page 403 /error/404.html; error_page 404 /error/404.html; error_page 500 502 503 504 /error/50x.html; location /error/ { alias /home/int/web/int/document_errors/; } location ~* "/\.(htaccess|htpasswd)$" { deny all; return 404; } location /vstats/ { alias /home/int/web/int/stats/; include /home/int/web/int/stats/auth.conf*; } include /etc/nginx/conf.d/phpmyadmin.inc*; include /etc/nginx/conf.d/phppgadmin.inc*; include /etc/nginx/conf.d/webmail.inc*; include /home/int/conf/web/nginx.int.conf*; }
我们可以看到CPU正在使用,但是哪个进程正在使用它? PHP-FPM? MySQL的? Nginx的? 你从NginX获取access.log文件的频率如何? 它不是恒定的吗? 如果它是不变的,那么你可能会受到DDoS攻击。
如果以上全部是:是Cloudflare或Fail2Ban是必需的(forme,我都有)