esr集群环境
集群名:esr-test
|地址|内存|
|11.0.0.31|48GB|
|11.0.0.34|48GB|
|11.0.0.35|48GB|
|11.0.1.11|64GB|
|11.0.1.35|48GB|
|11.0.1.36|48GB|
Cpu都为24核:Intel(R) Xeon(R) CPU E5-2620
ESR性能监控截图来源于bigdesk和kopf这2个插件,性能测试工具为jmeter,参数数据为网页json页面,文章部分生成权威索引,文档大小为1k-200k之间不等。
相关设置参数
ESR启动参数里面:ES_HEAP_SIZE设置的参数值为20GB
修改esr.in.sh,增加:
exportES_HEAP_SIZE=20480m
操作系统参数设置:sysctl -w vm.max_map_count=262144
JDK采用JDK1.7.0_80;
ESR的主要设置为:分片数为18,不设置冗余
esr.yml参数设置如下:
# ---------------------------------- Cluster--------------------------------
cluster.name: esr-test
script.inline: on
script.indexed: on
index.number_of_replicas: 0
index.number_of_shards: 18
index.refresh_interval: 1s
# ------------------------------------ Node------------------------------------
# node.name: node-1
# node.rack: r1
# ----------------------------------- Memory-----------------------------------
index.cache.field.type: soft
bootstrap.mlockall: true
# ---------------------------------- Network-----------------------------------
network.host:localhost
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-methods : "OPTIONS, HEAD,GET, POST, PUT, DELETE"
http.cors.allow-headers :"X-Requested-With,X-Auth-Token,Content-Type,Content-Length"
http.jsonp.enable: true
http.compression: true
# --------------------------------- Discovery----------------------------------
# discovery.zen.ping.unicast.hosts:["host1", "host2"]
discovery.zen.ping.multicast.enabled:true
threadpool:
index:
size: 30
queue_size: 1000
index.translog.interval: 10s
index.translog.sync_interval: 10s
index.translog.durability:async
第一种场景:无冗余建立索引,300并发
jmeter设置如下:
测试结果为:
结论:
数据全部入库,没有出现错误
300个thread,循环10000次的情况下,吞吐量为7024/sec。
第二种场景:2份冗余建立索引,300并发
结论:
数据全部入库成功
300个thread,循环10000次的情况下,吞吐量为1838/sec,冗余数增加需要写入的数据也增加。
此时的系统的一些性能状态图
第三种测试场景,无冗余简单的查询,100并发
结论:
所有查询都返回了正确结果,网络流量达到30多M/s,CPU使用率高达85%以上,网络限制了查询的速度