Điểm:1

nginx làm chậm dịch vụ nghỉ ngơi của tôi gấp 5 lần

lá cờ us

Tôi có một dịch vụ REST đơn giản được thiết lập để xử lý nguyên bản (có thể thực thi độc lập) với tốc độ 135k/rps. Dịch vụ đang chạy trên localhost:8181

điểm chuẩn autocannon chạy từ sản lượng máy riêng biệt:

âââââââââââââ¬ââââ ââââââ¬ââââââââââ¬â âââââââââ¬âââââââ âââ¬âââââââââââ¬âââ ââââââââ¬âââââââââ â
â Stat â 1% â 2,5% â 50% â 97,5% â Trung bình â Stdev â Min â
âââââââââââââ¼ââââ ââââââ¼ââââââââââ¼ââ ââââââââ¼âââââââââ â¼âââââââââââ¼âââââ ââââââ¼ââââââââââ¤
â Req/Sec â 58335 â 58335 â 109247 â 135039 â 106779.2 â 18509.53 â 58312 â
âââââââââââââ¼ââââ ââââââ¼ââââââââââ¼ââ ââââââââ¼âââââââââ â¼âââââââââââ¼âââââ ââââââ¼ââââââââââ¤
â Byte/Sec â 9,74 MB â 9,74 MB â 18,3 MB â 22,5 MB â 17,8 MB â 3,09 MB â 9,74 MB â
âââââââââââââ´ââââ ââââââ´ââââââââââ´â âââââââââ´âââââââ âââ´âââââââââââ´âââ ââââââââ´âââââââââ â

Khi được ủy quyền với thiết lập ngược dòng cơ bản thông qua nginx, hiệu suất giảm đáng kể:

âââââââââââââ¬ââââ ââââââ¬ââââââââââ¬â âââââââââ¬âââââââ âââ¬âââââââââââ¬âââ âââââââ¬ââââââââââ ┅
â Stat â 1% â 2,5% â 50% â 97,5% â Trung bình â Stdev â Min â
âââââââââââââ¼ââââ ââââââ¼ââââââââââ¼ââ ââââââââ¼âââââââââ â¼âââââââââââ¼âââââ âââââ¼ââââââââââ¤
â Req/Sec â 13359 â 13359 â 14991 â 19103 â 15767,12 â 1878,98 â 13352 â
âââââââââââââ¼ââââ ââââââ¼ââââââââââ¼ââ ââââââââ¼âââââââââ â¼âââââââââââ¼âââââ âââââ¼ââââââââââ¤
â Byte/Sec â 2,53 MB â 2,53 MB â 2,83 MB â 3,61 MB â 2,98 MB â 355 kB â 2,52 MB â
âââââââââââââ´ââââ ââââââ´ââââââââââ´â âââââââââ´âââââââ âââ´âââââââââââ´âââ âââââââ´ââââââââââ bạn

Đây là các cấu hình nginx của tôi (tôi đã thử nghiệm một chút, dẫn đến những cải tiến rất nhỏ):

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 kết_nối 768 ;
    multi_accept on;
}

http {
    open_file_cache max=200000 không hoạt động=20 giây;
    open_file_cache_valid 30 giây;
    open_file_cache_min_uses 2;
    open_file_cache_errors bật;

    truy cập_đăng xuất;
    lỗi_đăng xuất;

    gửi tệp trên;
    bật tcp_nopus;
    tắt tcp_nodelay;
    keepalive_timeout 35;
    loại_hash_max_size 2048;

    client_max_body_size 100M;


    bao gồm /etc/nginx/mime.types;
    ứng dụng default_type/octet-stream;


    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    bật ssl_prefer_server_ciphers;


    gzip tắt;
    gzip_min_length 10240;
    gzip_comp_level 1;
    bật gzip_vary;
    gzip_disable msie6;
    gzip_proxied đã hết hạn xác thực riêng tư không lưu trữ bộ đệm;

    server_tokens tắt;

    bao gồm /etc/nginx/conf.d/*.conf;
    bao gồm /etc/nginx/sites-enabled/*;
}

kích hoạt trang web/reverse-proxy.conf

ngược dòng pindap_api {
    less_conn; 
    máy chủ cục bộ: 8181;
}

người phục vụ {
    nghe 80;
    tên_máy chủ api.pindap;

    truy cập_đăng xuất;
    lỗi_đăng xuất;

    địa điểm / {
        tắt proxy_buffering;
        proxy_pass http://pindap_api;
    }
}

người phục vụ {
    nghe 80;

    máy chủ_tên pindap;         

        truy cập_đăng xuất;
        lỗi_đăng xuất;

        địa điểm / {
        tắt proxy_buffering;
        proxy_pass http://localhost:8181;
        }
}

Điều gì có thể là nguyên nhân của việc này? Tôi có thể thử những gì khác?

djdomi avatar
lá cờ za
https://stackoverflow.com/questions/64862439/nginx-reverse-proxy-low-performance - có thể trợ giúp được không?
djdomi avatar
lá cờ za
Tôi cũng thiếu `proxy_http_version 1.1;` và để sử dụng lại kết nối `proxy_set_header Connection "";` để sử dụng keepalive, có thể đây có thể là một nút cổ chai
enko avatar
lá cờ us
@djdomi cảm ơn bạn đã liên kết và những gợi ý này. Tôi đã thấy một sự cải thiện nhỏ (~ +5k vòng / giây) khi thêm ```proxy_http_version 1.1;``` Nếu không thì nó giống nhau. Tôi đã thử một số cài đặt hệ thống trong bài đăng mà bạn đã đề cập, phạm vi cổng là 32768 đến 60999, nhưng với nó được đặt từ 1024 đến 65000 - không có tác động gì. Tôi chợt nhận ra rằng điều này có thể hoặc có thể không phải do máy chủ nhà phát triển này đang chạy máy tính để bàn Ubuntu 20.04 và có thể có một số vấn đề về cấu hình/nhân ít rõ ràng hơn. Vì vậy, tôi sẽ kiểm tra nó khi phát hành máy chủ để xem điều này có còn xảy ra không.
enko avatar
lá cờ us
cập nhật nhanh: Tôi đã quyết định thử một proxy khác để xem liệu toàn bộ hệ thống của nó có vấn đề không. HAProxy xử lý 114k rps. Nó vẫn chậm hơn so với 135k rps gốc, nhưng chạy dịch vụ REST trên cùng một máy được mong đợi. Ngoài ra, tôi thấy cấu hình HAProxy dễ làm việc hơn một chút - vì vậy tôi nghĩ rằng tôi sẽ sử dụng nó để thay thế, vì dự án này không cần máy chủ tệp tĩnh và sẽ hoàn toàn dựa vào microservice.

Đă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.