当前位置: 首页 > news >正文

ElasticSearch常用优化点

  1. 关闭交换分区:因为Linux采用了三级页表虚存管理,关闭交换分区可以减少系统IO,页面换入唤出时所耗费的总线时间以及减少系统中断次数;swap的使用会显著增加延迟和降低吞吐量。
  2. 文件描述符配置:任何网络应用都需要增加文件描述符的数量,默认进程的文件描述符是1024. 我们进行网络IO,打开文件,管道,内存映射等操作都需要文件描述符资源;一般调整到65532;
  3. JVM内存设置: max(节点系统内存/2, 32G),因为JVM有一项技术叫指针压缩技术,如果地址大于4字节的,无法压缩到4字节,只能用8个字节存放地址,造成内存浪费,另外,内存越大,从概率上来讲,GC的effort越大,时间越长。另外,真正在工作的是Lucene分片,也需要给他预留足够的内存;
  4. mlock技术:用C语言写过服务的同学队mlock这个系统调用应该不会感到陌生,这个可以使得堆内存被锁定,不被MMU进行换入唤出,对高并发服务端系统这个是必须的,就像我们对于一些高并发的C语言系统,需要自己使用伙伴算法和slab/slob内存管理算法管理内存;
  5. 线程池和队列大小:ES并发处理请求的能力,根据业务自行调整,不建议非常大;
  6. 建索引:不建议大报文频繁建索引,可以把写入过程理解为一次embeding,只不过我们用的是非常简单的TF-IDF算法,分词越多,生成的倒排索引规模越大,对性能消耗越大,对于一些复杂的embeding算法,更加建议使用向量数据库。一般只对需要搜索的字段建索引,然后由上层应用去聚合输出;
  7. 根据业务优先级,紧急程度,使用队列消峰限速写入ES;

相关文章:

  • React第三十一章(组件实战)
  • git使用经验(一)
  • 【数据结构初阶八大排序】---冒泡、选择、插入、希尔、堆排、快排、归并、计数
  • C语言【文件操作】详解上(会使用fopen和fclose打开和关闭文件)
  • OCR 识别案例
  • Java爬虫|爬虫爬jj榜单数据写入excel
  • ngx_http_escape_location_name
  • ETL与数据迁移:从传统系统到云平台的平稳过渡全攻略
  • 【C++网络编程】第5篇:UDP与广播通信
  • Java面试总结+算法
  • 适合各个层次的 7 个计算机视觉项目【1】:植物病害检测
  • Mamba 模型:深度学习序列建模的新突破​
  • s1: Simple test-time scaling 【论文阅读笔记】
  • 麒麟系统运维指令
  • 怎么快速部署Sock5代理到ubuntu云服务器
  • Dify本地安装部署笔记
  • Windows数字取证中ActivityCache(活动缓存)
  • 【计算机网络中的奈氏准则与香农定理】
  • Vscode HTML5新增元素及属性
  • npm常用的命令
  • 科技网站设计案例/上海网站优化公司
  • 网站开发和c语言/上海seo排名
  • 网站多久才能做起来/让手机变流畅的软件下载
  • 公司注册网站的费用多少/汽车宣传软文
  • 网站备案规定/站长工具推荐
  • 网站开发后端/网络营销sem培训