【发布时间】:2017-03-13 09:08:18
【问题描述】:
我正在对一个 t2.micro 盒子进行负载测试,该盒子在 docker 容器中运行了 nginx 和 postgrest。 Nginx 在 postgrest 前充当代理。 如果我直接进入上游(postgrest),我会得到一个很好的图表(峰值约为 900/rps) 如果我通过nginx,我会得到这种图表
CPU 未达到最大值(仅约 50%)
这是使用的 nginx 配置。评论的所有内容都已尝试过,没有任何影响。我还玩过 worker_connections 的值和相关的东西。 这种周期性下降是由什么触发的?
worker_processes 2; #worker_rlimit_nofile 2048; 事件{ # multi_accept on; worker_connections 1024; 使用 epoll; } http { 解析器 127.0.0.11 ipv6=off; 包括 mime.types; #tcp_nodelay 关闭; #tcp_nopush 开启; 上游postgrest { 服务器postgrest:3000; 保活 64; } 服务器 { 听 80; server_name 本地主机; 字符集 utf-8; 位置/休息/ { default_type 应用程序/json; #proxy_buffering 关闭; proxy_pass http://postgrest/; # PostgREST 的反向代理 } } }【问题讨论】:
-
延迟图也很有趣,它保持在大约 10 毫秒直到第一次下降,然后跳到大约 1 秒并且大部分停留在那里,反映了一点吞吐量图,但它没有出现回到 10 毫秒。也没有错误,每个请求都是 200 OK
-
一个新的发展。如果我让容器使用主机网络,性能会更差,下降几乎为 0。有人知道如何比较主机和桥接模式的网络设置,看看有什么不同的参数吗?
标签: performance nginx reverse-proxy throughput postgrest