ฉันมีบริการ REST อย่างง่ายที่ตั้งค่าโดยกำเนิด (ปฏิบัติการแบบสแตนด์อโลน) จัดการ 135k/rps
บริการกำลังทำงานบน localhost:8181
เกณฑ์มาตรฐาน autocannon ที่ทำงานจากผลลัพธ์ของเครื่องจักรที่แยกจากกัน:
âââââââââââââ¬ââââ ââââââ¬ââââââââââ¬â ว âââ¬âââââââââââ¬âââ ââââââââ¬âââââââââ â
â สถิติ â 1% â 2.5% â 50% â 97.5% â เฉลี่ย â Stdev â ต่ำสุด â
âââââââââââââ¼ââââ ââââââ¼ââââââââââ¼ââ ว ว ââââââ¼ââââââââââ¤
â ความต้องการ/วินาที â 58335 â 58335 â 109247 â 135039 â 106779.2 â 18509.53 â 58312 â
âââââââââââââ¼ââââ ââââââ¼ââââââââââ¼ââ ว ว ââââââ¼ââââââââââ¤
ไบต์/วินาที 9.74 MB 9.74 MB 18.3 MB 22.5 MB 17.8 MB 3.09 MB 9.74 MB 9.74 MB
âââââââââââââ´ââââ ââââââ´ââââââââââ´â ว âââ´âââââââââââ´âââ ââââââââ´âââââââââ â
เมื่อพร็อกซีตั้งค่าอัปสตรีมพื้นฐานผ่าน nginx ประสิทธิภาพจะลดลงอย่างมาก:
âââââââââââââ¬ââââ ââââââ¬ââââââââââ¬â ว âââ¬âââââââââââ¬âââ âââââââ¬ââââââââââ
â สถิติ â 1% â 2.5% â 50% â 97.5% â เฉลี่ย â Stdev â ต่ำสุด â
âââââââââââââ¼ââââ ââââââ¼ââââââââââ¼ââ ว ว âââââ¼ââââââââââ¤
â คำขอ/วินาที â 13359 â 13359 â 14991 â 19103 â 15767.12 â 1878.98 â 13352 â
âââââââââââââ¼ââââ ââââââ¼ââââââââââ¼ââ ว ว âââââ¼ââââââââââ¤
ไบต์/วินาที 2.53 MB 2.53 MB 2.83 MB 3.61 MB 2.98 MB 355 kB 2.52 MB
âââââââââââââ´ââââ ââââââ´ââââââââââ´â ว âââ´âââââââââââ´âââ âââââââ´ââââââââââ
นี่คือการกำหนดค่า nginx ของฉัน (ฉันได้ทดลองเล็กน้อยซึ่งส่งผลให้มีการปรับปรุงเล็กน้อยมาก):
nginx.conf
ผู้ใช้ www-data;
worker_processes อัตโนมัติ
pid /run/nginx.pid;
รวม /etc/nginx/modules-enabled/*.conf;
เหตุการณ์ {
worker_connections 768;
เปิด multi_accept;
}
http {
open_file_cache สูงสุด = 200,000 ไม่ใช้งาน = 20s;
open_file_cache_valid 30 วินาที;
open_file_cache_min_uses 2;
open_file_cache_errors บน;
access_log off;
error_log off;
ส่งไฟล์บน;
tcp_nopush บน;
tcp_nodelay ปิด;
keepalive_timeout 35;
types_hash_max_size 2048;
client_max_body_size 100M;
รวม /etc/nginx/mime.types;
แอปพลิเคชัน default_type/octet-stream;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
เปิด ssl_prefer_server_ciphers;
gzip ปิด;
gzip_min_length 10240;
gzip_comp_level 1;
gzip_vary บน;
gzip_disable msie6;
gzip_proxied หมดอายุแล้ว ไม่มีแคช ไม่มีที่เก็บ การตรวจสอบสิทธิ์ส่วนตัว
ปิด server_tokens;
รวม /etc/nginx/conf.d/*.conf;
รวม /etc/nginx/sites-enabled/*;
}
ไซต์ที่เปิดใช้งาน/reverse-proxy.conf
ต้นน้ำ pindap_api {
little_conn;
เซิร์ฟเวอร์ localhost:8181;
}
เซิร์ฟเวอร์ {
ฟัง 80;
server_name api.pindap;
access_log off;
error_log off;
ที่ตั้ง / {
ปิด proxy_buffering;
proxy_pass http://pindap_api;
}
}
เซิร์ฟเวอร์ {
ฟัง 80;
server_name pindap;
access_log off;
error_log off;
ที่ตั้ง / {
ปิด proxy_buffering;
proxy_pass http://localhost:8181;
}
}
อะไรคือสาเหตุของสิ่งนี้? ฉันจะลองอะไรได้อีก