我应该如何配置Nginx以最大限度地提高运行在计算机上的单个Ruby应用程序的吞吐量?
我想对Nginx+Passenger进行基准测试,我想知道在下面的我应该如何配置Nginx以最大限度地提高运行在计算机上的单个Ruby应用程序的吞吐量?,nginx,config,passenger,benchmarking,Nginx,Config,Passenger,Benchmarking,我想对Nginx+Passenger进行基准测试,我想知道在下面的Nginx.conf中是否有可以调整的内容,以提高吞吐量并减少延迟。它运行在4核i7(8个硬件线程)上,主内存为16GB load_module /usr/lib/nginx/modules/ngx_http_passenger_module.so; # One per CPU core: worker_processes auto; events { } http { include mime.types;
Nginx.conf
中是否有可以调整的内容,以提高吞吐量并减少延迟。它运行在4核i7(8个硬件线程)上,主内存为16GB
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;
}
}
我正在使用具有多个并发连接(例如100)的wrk
以下是一些具体问题:
- Nginx配置是否可以进一步改进?
- 是否使用HTTP/1.1与乘客应用程序服务器的持久连接
- 使用动态模块是否会导致性能问题
- 我还需要做些什么来最大限度地提高集成工作的效率吗
- 我还没有设置乘客日志文件来确保日志IO不是瓶颈
- 关于进程的数量——我有8个硬件线程,所以我将其设置为至少使用8个实例。
- 每个应用服务器使用线程有意义吗?我假设它只与IO绑定的工作负载相关
- 如果我将处理器与8台应用服务器挂钩,这是否表明服务器数量足够?或者我应该试试,比如说,16岁
- Nginx+乘客与独立乘客之间的预期性能差异是什么