背景
搜索、ES运维场景离不开压力测试。
1.宿主机层面变更:参数调优 & 配置调整 & 硬件升级2.集群层面变更:参数调优3.索引层面变更:mapping调整
当然还有使用层面变更,使用API调优(不属于该文章的讨论范围)
ES压测,官方推荐esrally工具(python编写)。虽然esrally功能丰富,但esrally的依赖比较多,很难快速搭建可用的压测环境。对于追求轻量工具的开发者而言,可以考虑使用infinilabs提供的loadgen工具。
推荐工具:
|------------|----------|--------|--------|
| | 优势 | 缺点 | 语言 |
| esrally | 功能丰富 | 环境配置复杂 | python |
| loadgen | 轻量,无外部依赖 | 不开源 | go |
| 其他http压测工具 | | | |
【离线】esrally实践总结
本地开发环境(可接互联网)测试使用esrally相对比较方便,生产环境的机器(不接外网)如果想要使用esrally,则有诸多注意事项。具体可以参考以下文章:
https://developer.aliyun.com/article/851848?spm=a2c6h.13262185.0.0.7baa709dE62k1c
loadgen部署
选择当前最新版本:1.24.0
到该地址下载工具:
https://release.infinilabs.com/loadgen/stable/
解压即可:
tar vxzf loadgen-1.24.0-454-linux-amd64.tar.gz
解压之后只需要关注以下2个文件即可。
注:
1. loadgen.yml 配置了各种信息,并且指定了压测ES的读写请求
2. 其中 loadgen.dsl 仅为压测开始之前的测试所用,可以忽略
官方文档:
https://infinilabs.cn/docs/latest/gateway/getting-started/benchmark/
loadgen测试与问题
...
loadgen使用推荐
...
压测不符合预期需要考虑什么?
...
更多核心技术: