elasticsearch,load-balancing,Nginx,elasticsearch,Load Balancing" /> elasticsearch,load-balancing,Nginx,elasticsearch,Load Balancing" />

nginx作为elasticsearch负载平衡器的性能较低

nginx作为elasticsearch负载平衡器的性能较低,nginx,elasticsearch,load-balancing,Nginx,elasticsearch,Load Balancing,我正在尝试将nginx配置为弹性搜索集群(1.3.7版)前面的负载平衡器 我正在测试集群中的3个基准服务器和3个elasticsearch节点。 使用nginx作为负载平衡器,我的性能下降了大约50% 没有nginx,我可以在300秒内处理28K请求,但有了它,300秒内只能处理13k请求。 服务器是虚拟机,所以不应该是网络问题,至少是物理问题。 Nginx服务器没有高cpu负载或资源限制 配置非常简单: user www-data; worker_processes auto; pid /ru

我正在尝试将nginx配置为弹性搜索集群(1.3.7版)前面的负载平衡器

我正在测试集群中的3个基准服务器和3个elasticsearch节点。 使用nginx作为负载平衡器,我的性能下降了大约50%

没有nginx,我可以在300秒内处理28K请求,但有了它,300秒内只能处理13k请求。 服务器是虚拟机,所以不应该是网络问题,至少是物理问题。 Nginx服务器没有高cpu负载或资源限制

配置非常简单:

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

worker_rlimit_nofile 4096;

events {
        worker_connections 1024;
}
以及ES的具体用途:

server {
    listen       9100;
    server_name elasticsearch.site.com;
    location / {
        proxy_pass http://elasticsearch;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_set_header Proxy-Connection "Keep-Alive";
    }
    access_log  /var/log/nginx/access.log;
    error_log   /var/log/nginx/error.log error;
}

upstream elasticsearch {
    server elasticsearch1:9200;
    server elasticsearch2:9200;
    server elasticsearch3:9200;
    keepalive 15;
}
我想知道是否有任何方法可以理解为什么nginx每秒不能发送更多请求,或者是否有任何方法可以调试这种情况。
了解超时、保持活动连接或nginx处理的任何其他资源将非常好。

您不需要负载平衡器-ES已经提供了该功能。您只是添加了另一个组件,这可能会导致行为异常,并会添加不必要的网络跃点。进行dns循环


ES会将您的数据分片(默认情况下分为5个分片),并尝试在您的实例中均匀分布。根据您的环境调整碎片和副本。

是否尝试haproxy?如果您特别想要某种负载平衡,那么如果缓冲是应用程序速度缓慢的原因,我也不会感到惊讶。两个配置选项考虑调谐:和。我尝试使用代理服务器作为ES客户端节点,性能稍微好一点,15K在300秒,仍然远远没有理想的情况。添加一个LB将提供与平台基础结构的代码隔离。将更容易移动集群,或在ES节点中进行更改,而无需更改代码。端点将始终相同。