我想对Nginx+Passenger进行基准测试,我想知道在下面的nginx.conf
中是否有什么可以调整以提高吞吐量和减少延迟。这是在一个4核i7 (8个硬件线程)上运行的,主存为16 on .
load_module /usr/lib/nginx/modules/ngx_http_passenger_module.so;
# One per CPU core:
worker_processes auto;
events {
}
http {
include mime.types;
default_type application/octet-stream;
access_log off;
sendfile on;
keepalive_timeout 60;
# 8 should be number of CPU threads.
passenger_root /usr/lib/passenger;
passenger_max_pool_size 8;
server {
listen [::]:80;
server_name passenger;
root /srv/http/benchmark/public;
passenger_enabled on;
passenger_min_instances 8;
passenger_ruby /usr/bin/ruby;
passenger_sticky_sessions on;
}
}
我使用的是具有多个并发连接的wrk
(例如100)。
以下是一些具体问题:
发布于 2019-02-26 16:44:12
乘客在这里。
“能否进一步改进Nginx的配置?”
可能,Nginx有很多杠杆,如果您所做的只是在基准测试中提供已知的有效负载,那么您可以使用Nginx的缓存来显著提高性能。
“它是否使用到乘客应用服务器的HTTP/1.1持久连接?”
不使用unix套接字。
“使用动态模块是否会导致性能问题?”
不,一旦nginx加载了库,对其进行函数调用与任何其他c++函数调用都是一样的。
“我还需要做些什么来最大限度地提高集成的效率吗?”
您可能需要查看乘客的turbo缓存和/或nginx缓存。
“我还没有设置乘客日志文件,以确保登录IO不会成为瓶颈。”
很好,但是将日志记录级别调低到0,以避免一些处理。
“每个应用服务器使用线程有意义吗?我假设它只与IO绑定的工作负载相关。”
不太清楚你的意思,你说的是乘客的多线程支持还是nginx的?
“如果我将处理器与8个应用服务器挂钩,这是否表明有足够数量的服务器?”
如果您是CPU绑定,那么添加更多的进程是没有帮助的。
“Nginx+Passenger与乘客独立之间的预期性能差异是什么?”
不多,乘客独立使用nginx内部。如果您使用内置引擎与乘客独立,您可能会看到一些改进,但这意味着您不能使用缓存,这是更重要的。
https://stackoverflow.com/questions/54874029
复制相似问题