Tôi đang gặp sự cố khi tìm nút cổ chai trong hiệu suất máy chủ chậm của mình. Trang wordpress đơn (10-40 người dùng trực tuyến) với bộ nhớ đệm fastcgi và bộ nhớ đệm đám mây HTML đầy đủ. Hiệu suất trang web tốt đối với khách truy cập do bộ nhớ đệm, người dùng đã đăng nhập đang phải đối mặt với thời gian tải trang 1-10 giây. Màn hình truy vấn được sử dụng để gỡ lỗi. Trang web đã chạy tốt hơn trên máy 1 nhân, ram 2gb. Không có ý tưởng những gì đang gây ra điều này. Bất kỳ sự giúp đỡ nào cũng được đánh giá cao. Cảm ơn bạn.
Ví dụ về tải một bài đăng chậm:Màn hình truy vấn tải chậm
Ví dụ về tải một bài đăng tốt: Màn hình truy vấn tải nhanh
Tôi đang chạy KVM 2 Cores @ 3,50+ GHz Bộ nhớ 8 GB SSD 160 GB.
phiên bản nginx: nginx/1.14.1
PHP 7.4.22 (cli) + bộ nhớ đệm
10.6.3-MariaDB
root@localhost:~# miễn phí -m
tổng số buff/bộ đệm được chia sẻ miễn phí đã sử dụng hiện có
Mem: 7987 1546 195 121 6245 6020
Đổi hàng: 8191 268 7923
Cài đặt PHP-FPM: (Đã thử tăng chúng, không thay đổi)
chiều = động
pm.max_children = 100
pm.start_servers = 8
pm.min_spare_servers = 4
pm.max_spare_servers = 8
pm.max_requests = 200
cơ sở dữ liệu
Phiên bản máy chủ 5.5.5
tiện ích mở rộng mysqli
Phiên bản máy khách 70422 (7.4.22)
innodb_buffer_pool_size 2147483648 (~2 GB)
key_buffer_size 134217728 (~128 MB)
max_allowed_packet 16777216 (~16 MB)
max_connections 151
query_cache_limit 1048576 (~1 MB)
query_cache_size 67108864 (~64 MB)
query_cache_type BẬT
nginx.conf
dữ liệu www của người dùng;
worker_processes tự động;
pid /run/nginx.pid;
bao gồm /etc/nginx/modules-enabled/*.conf;
sự kiện {
công_nhân 2048 ;
# đa_chấp vào ;
}
http {
##
# Cài đặt cơ bản
##
gửi tệp trên;
bật tcp_nopus;
bật tcp_nodelay;
loại_hash_max_size 2048;
# server_token tắt;
bật proxy_buffering;
truy cập_đăng xuất;
# server_name_hash_bucket_size 64;
# máy chủ_tên_trong_chuyển hướng tắt;
bao gồm /etc/nginx/mime.types;
ứng dụng default_type/octet-stream;
##
# Cài đặt SSL
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Bỏ SSLv3, tham khảo: POODLE
bật ssl_prefer_server_ciphers;
##
# Cài đặt ghi nhật ký
##
# truy cập_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Cài đặt Gzip
##
bật gzip;
gzip_disable "msie6";
# gzip_vary bật;
# gzip_proxied bất kỳ;
# gzip_comp_cấp 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# văn bản gzip_types/văn bản thuần túy/ứng dụng css/ứng dụng json/văn bản javascript/ứng dụng xml/ứng dụng xml/xml+văn bản rss/javascript;
##
# Cấu hình máy chủ ảo
##
################## bộ nhớ đệm ###############
proxy_cache_path /etc/nginx/static-cache levels=1:2 keys_zone=s3_cache:200m max_size=1800G inactive=10y use_temp_path=off;
fastcgi_cache_path /etc/nginx/fastcgi-cache levels=1:2 keys_zone=phpcache:50m max_size=1g inactive=7d use_temp_path=off;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
############################
client_max_body_size 2000M;
bao gồm /etc/nginx/conf.d/*.conf;
bao gồm /etc/nginx/sites-enabled/*;
}
conf máy chủ nginx
# truyền tập lệnh PHP tới máy chủ FastCGI
vị trí ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_read_timeout 150;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
bao gồm fastcgi_params;
fastcgi_cache_bypass $skip_cache;
fastcgi_no_cache $skip_cache;
fastcgi_cache phpcache;
fastcgi_cache_valid 200 301 302 60m;
lỗi fastcgi_cache_use_stale hết thời gian cập nhật invalid_header http_500 http_503;
fastcgi_cache_min_uses 1;
bật fastcgi_cache_lock;
add_header X-FastCGI-Cache $upstream_cache_status;
}
CHỈNH SỬA:
Tôi đã thực hiện một số thử nghiệm bên ngoài Wordpress. Tạo 100000 chuỗi ngẫu nhiên trong chu kỳ.
<?php $start_time = microtime(true); ?>
<?php ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
# define("WP_USE_THEMES", false);
#require_once("/var/www/server/wp-blog-header.php");
for($i = 0; $i < 100000; $i++){
generateRandomString(2);
}
function generateRandomString($length = 10) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
?>
This page was generated in <?php echo(number_format(microtime(true) - $start_time, 2)); ?>
Và kết quả rất giống nhau. Một số yêu cầu hoàn thành sau 0,1 giây, một số yêu cầu mất tới 5 giây. Có vẻ như PHP đang hoạt động tốt. Có lẽ đó là php-fpm làm chậm mọi thứ sau đó kết nối với nginx?