Điểm:0

Hiệu suất máy chủ chậm [nginx + php+fpm + mariadb]

lá cờ co
Rob

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?

Michael Hampton avatar
lá cờ cz
Bật [nhật ký truy vấn chậm](https://mariadb.com/kb/en/slow-query-log/) (với thời gian long_query_time hợp lý hơn nhiều, chẳng hạn như 1 giây), sau đó kiểm tra sau để xem có gì thú vị không đã được đăng nhập.
Rob avatar
lá cờ co
Rob
Tôi đã làm. Đây là truy vấn chậm được ghi lại lần cuối: https://pastebin.com/spyvBGSR CHỈNH SỬA: đây là nhật ký chậm của PHP. Mysql dường như không phải là vấn đề.
lá cờ cn
Nếu bạn thường xuyên nhận được `memcached-class-object-cache.php` được tham chiếu ở đầu nhật ký chậm PHP-FPM, điều đó cho thấy có vấn đề với phiên bản/máy chủ Memcached. Tại sao không phải Redis thay thế?
Rob avatar
lá cờ co
Rob
Đã thay thế Memcached bằng Redis. Không có cải tiến.
Rob avatar
lá cờ co
Rob
Đây là ảnh chụp màn hình từ hồ sơ xdebug: https://prnt.sc/1tuike7 Tôi không có kinh nghiệm về điều này nên điều này không trả lời bất kỳ câu hỏi nào cho tôi.
lá cờ ua
Loại bỏ bộ nhớ đệm. Bạn không có một hệ thống đủ bận rộn để sử dụng nó.
Rob avatar
lá cờ co
Rob
Tại sao tôi muốn loại bỏ bộ nhớ đệm và phục vụ các yêu cầu chậm cho người dùng của mình?
Điểm:0
lá cờ co
Rob

Có vẻ như vấn đề đã được giải quyết. Đã liên hệ với nhà cung cấp VPS của tôi, họ xác nhận rằng máy chủ của tôi đang điều chỉnh nhiệt và họ sẽ giải quyết vấn đề này. Điều này trả lời tại sao một số yêu cầu chậm.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.