私はDigitalOceanにサーバーを持っており、それは主にいくつかの低トラフィックを実行するために使用されていましたWPサイト、そしてサイトの90%は正常に実行されています。しかし!サイトの1つは、常に5〜20を持っており(最大の子を何に配置するかによって異なります)、各プロセスは5%〜20%のCPUを消費しています ここに表示 。1日中いつでもその状態が続きますが、アクティブなユーザーが多いほど悪化するのではないかと思います。
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が使用されていることがわかりますが、どのプロセスがCPUをすべて使用していますか? PHP-FPM? MySQL? NginX? NginXからaccess.logファイルにログを取得する頻度はどれくらいですか?一定ではないですか?一定の場合は、DDoS攻撃を受けている可能性があります。
上記のすべてが次の場合:はいCloudflareまたはFail2Banが必要です(以前は両方あります)