Am un serviciu REST simplu configurat care în mod nativ (executabil autonom) se ocupă de 135k/rps.
Serviciul rulează pe localhost:8181
benchmark-ul autotunului care rulează de la randamente de mașini separate:
âââââââââââââ¬âââââââ¬ââââ ââââââ¬ââââââââ↽ âââ¬âââââââââââ¬â†ââââââââ¬âââââââ†â
â Stat â 1% â 2,5% â 50% â 97,5% â Medie â Stdev â Min â
âââââââââââââ¼ââ†ââââââ¼ââââââââââ¼ââ ââââââââ¼âââââââââ â¼âââââââââââ¼âââ†ââââââ¼ââââââââââ€
â Necesar/Sec â 58335 â 58335 â 109247 â 135039 â 106779,2 â 18509,53 â312 â
âââââââââââââ¼ââ†ââââââ¼ââââââââââ¼ââ ââââââââ¼âââââââââ â¼âââââââââââ¼âââ†ââââââ¼ââââââââââ€
â octeți/sec â 9,74 MB â 9,74 MB â 18,3 MB â 22,5 MB â 17,8 MB â 3,09 MB â 9,74 MB
âââââââââââââ´âââââââ´ââââ ââââââ´ââââââââ↽ âââ´âââââââââââ´âââââââ´âââ ââââââââ´âââââââ†â
Când se folosește proxy cu configurarea de bază în amonte prin nginx, performanța scade dramatic:
âââââââââââââ¬âââââââ¬ââââ ââââââ¬ââââââââ↽ âââ¬âââââââââââ¬â†âââââââ¬ââââââââ†Ő
â Stat â 1% â 2,5% â 50% â 97,5% â Medie â Stdev â Min â
âââââââââââââ¼ââ†ââââââ¼ââââââââââ¼ââ ââââââââ¼âââââââââ â¼âââââââââââ¼âââ†âââââ¼ââââââââââ¤
â Req/Sec â 13359 â 13359 â 14991 â 19103 â 15767,12 â 1878,98 â â 13
âââââââââââââ¼ââ†ââââââ¼ââââââââââ¼ââ ââââââââ¼âââââââââ â¼âââââââââââ¼âââ†âââââ¼ââââââââââ¤
â Octeți/sec â 2,53 MB â 2,53 MB â 2,83 MB â 3,61 MB â 2,98 MB â 355 kB â 2,52 MB
âââââââââââââ´âââââââ´ââââ ââââââ´ââââââââ↽ âââ´âââââââââââ´âââââââ´âââ âââââââ´âââââââ↼
Iată configurațiile mele nginx (am experimentat ușor, ceea ce a dus la îmbunătățiri foarte mici):
nginx.conf
utilizator www-date;
worker_proceses auto;
pid /run/nginx.pid;
includ /etc/nginx/modules-enabled/*.conf;
evenimente {
conexiuni_muncitor 768;
multi_accept pe;
}
http {
open_file_cache max=200000 inactiv=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors activat;
access_log off;
error_log off;
sendfile activat;
tcp_nopush activat;
tcp_nodelay dezactivat;
keepalive_timeout 35;
types_hash_max_size 2048;
client_max_body_size 100M;
includ /etc/nginx/mime.types;
aplicație de tip_default/octet-stream;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers activat;
gzip off;
gzip_min_length 10240;
gzip_comp_level 1;
gzip_vary on;
gzip_disable msie6;
gzip_proxied a expirat fără cache fără stocare autentificare privată;
server_tokens dezactivat;
includ /etc/nginx/conf.d/*.conf;
includ /etc/nginx/sites-enabled/*;
}
site-enabled/reverse-proxy.conf
în amonte pindap_api {
minimum_conn;
server localhost:8181;
}
Server {
asculta 80;
nume_server api.pindap;
access_log off;
error_log off;
Locație / {
proxy_buffering dezactivat;
proxy_pass http://pindap_api;
}
}
Server {
asculta 80;
nume_server pindap;
access_log off;
error_log off;
Locație / {
proxy_buffering dezactivat;
proxy_pass http://localhost:8181;
}
}
Care ar putea fi cauza acestui lucru? Ce altceva pot încerca?