我有一个非常好的 nginx 配置,我正在尝试测试 的负载10 秒内 1000 个请求 用于使用 https 连接从 nginx 加载 index.html 页面。
对于所有 1000 个样本,延迟和连接时间是一致的 .但是前几个样本的响应时间还可以,但对于剩余的样本来说真的很糟糕。我附上 sample 。请看第一张截图。您可以看到条目是一致的。 但是在第二个屏幕截图中,您会发现响应时间随着进度越来越大 .
这可能是什么原因????
对于虚拟主机,我不能编辑它。
可以看到我把 ulimit -a 和 -n 设置为 200000 左右。会
这适用于虚拟机吗?
响应时间一致?
连接需要时间加密和系统忙于 cpu
周期?我只是想了解问题是否出在
硬件/软件级别?
我的硬件是虚拟托管的。下面是配置
这是 nginx 配置:
server {
listen 80;
server_name xxxx;
# Strict Transport Security
add_header Strict-Transport-Security max-age=2592000;
rewrite ^/.*$ https://$host$request_uri? permanent;
}
server {
listen 443 ssl;
server_name xxxx;
location / {
try_files $uri $uri/ @backend;
}
## default location ##
location @backend {
proxy_buffering off;
proxy_pass http://glassfish_servers;
proxy_http_version 1.1;
proxy_set_header Connection "";
# force timeouts if the backend dies
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
#proxy_redirect off;
# set headers
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
ssl_certificate /etc/nginx/ssl/ssl-bundle.crt;
ssl_certificate_key /etc/nginx/ssl/xxxx.key;
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 10m;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;
}
这是我收集的汇总报告:
最佳答案
也许这不是 nginx 的问题。根据您配置 JMeter 的方式,负载可能比您预期的要高得多。
我会推荐以下内容:因为每 10 秒 1000 个请求是 100 个请求/秒,
jmeter
中找到以下行或 jmeter.bat
文件:HEAP="-Xms512m -Xmx512m"
并调整值以从 50% 开始,以总物理 RAM 的 80% 结束
jmeter -n -t /path/to/your/testplan.jmx -l /path/to/testresults.jtl
您也可以查看 JMeter Plugins项目,它提供即 PerfMon Metrics Collector因此您将能够在负载测试期间监控您的服务器运行状况,并使用一些扩展图表来可视化您的测试或Taurus它是 JMeter 和其他负载测试工具的包装器,可简化配置和执行过程,并使结果分析更容易。
关于ubuntu - nginx响应或采样时间vs延迟vs连接时间与jmeter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32993484/