solr es调优化和问题排查
(1)TOP 显示当前进程状态,结合 ps -aux 可以看是哪一个服务。mpstat 可以看是cpu的负载
(2)TOP -H -u 用户名 显示该用户下 所有的线程。 还有pstree
(3)jstat -gc pid 1000 100 查看当前程序的GC问题
(4)jstack pid 看 有哪些进程是 RUNNING WAITING
(5)jmap -histo:live 24715 | less 查看java中内存的分配情况 jmap -heap pid 当前堆内存中分配情况
(6)cat /proc/net/sockstat 看当前的socket是否有异常
降低solr CPU和 内存的使用:
autowarmCount设为0,filterCache的大小都调到3000 减少内存的使用和CPU的使用
通过进行日志挖掘,限制最大最大可以查询的数据量,避免深分页
降低错误率,不要返回exception 返回 “”
ES优化
(1)多个分片放在一台服务器下(这多个分片组成的数据是完整的),有个属性可以优先设置优先读取当前服务器中的其他节点。
(2)缓存 set get 改为异步方法,而非同步方法
(3)将构建索引构建选择在请求量不大的时间段(假的读写分离),因为构建索引的时候会消耗cpu,会影响Query使用cpu.
(4)close 不需要的index,释放非必需index所占用的内存和CPU。
(5)search preference 可设置为local 避免跨机房网络传输。
(6)上新时间点会频繁更新doc,导致cpu利用率过高,采用timeline的方式,以时间轴的方式去判定状态。
方向:
是否可以做读写分离,分片的意义是不是不大
搜索服务中的问题:
(1)用线程的问题,如果请求量过多的话,线程有可能阻塞。
(2)打分公式中 累计取redis的时间会比较长,造成整体时间长,统计数据量,加入超时限制callable future get
(3)该filter的进行filter 关键字的匹配从filter中去除,只filter一些通用条件,减少query中的重复计算
(4)打分脚本script采用store的方式
(5)增加service层的缓存区间,比如用户请求20条数据,设置发送到es端为100条并进行缓存,以此减少对es频繁的访问
(6)挖掘搜索日志,限制size 避免深分页。
(7)采用游标curosr和scroll
(8)full gc 导致 队列中的请求过多,造成swap memeory https://www.cubrid.org/blog/maxclients-in-apache-and-its-effect-on-tomcat-during-full-gc
搜索的准确率和召回率:
(1)slop 过大 则准确率降低,但是召回率升高
solr es调优化和问题排查的更多相关文章
- ES 调优查询亿级数据毫秒级返回!怎么做到的?--文件系统缓存
一道面试题的引入: 如果面试的时候碰到这样一个面试题:ElasticSearch(以下简称ES) 在数据量很大的情况下(数十亿级别)如何提高查询效率? 这个问题说白了,就是看你有没有实际用过 ES,因 ...
- 实时查询系统架构:spark流式处理+HBase+solr/ES查询
最近要做一个实时查询系统,初步协商后系统的框架 1.流式计算:数据都给spark 计算后放回HBase 2.查询:查询采用HBase+Solr/ES
- lucent,solr,ES比较
|0什么是全文搜索 什么是全文搜索引擎? 百度百科中的定义:全文搜索引擎是目前广泛应用的主流搜索引擎.它的工作原理是计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现 ...
- solr性能调优
Schema Design Considerations indexed fields indexed fields 的数量将会影响以下的一些性能: 索引时的时候的内存使用量 索引段的合并时间 优化时 ...
- SOLR缓存调优
缓存在 Solr 中充当了一个非常重要的角色,Solr 中主要有这三种缓存: Filter cache(过滤器缓存),用于保存过滤器(fq 参数)和层面搜索的结果 Document cache(文档缓 ...
- [redis]复制机制,调优,故障排查
在redis的安装目录下首先启动一个redis服务,使用默认的配置文件,作为主服务 ubuntu@slave1:~/redis2$ ./redis-server ./redis.conf & ...
- ES的优化布局
分词优化:IK Analyser Elastic Search 5.x官方提供的中文搜索并不友好,分词时经常将一句话分成很多单字,这时候可以使用IK Analyser插件进行优化,当然你在写java代 ...
- Es性能优化
1. Es中10亿级别的数据量,如何提高查询效率 (1) 性能优化关键:file system cache a. 不要期待随手挑一个参数,就可以万能的应对所有性能慢的场景 b. es依赖于底层的fil ...
- ES调优
ES Connection timed out,调优方向 1. 使用游标滚动查询 scrollId 游标id searchResponse.getScrollId() scroll 设置游标的保留时间 ...
随机推荐
- STM32之RGB灯仿真
实验目的 点灯是练习GPIO输出的最佳实验.由于疫情期间没法返校,手头上没有现成的实验板,于是借助Proteus进行仿真.本实验点的不是普通的灯,而是RGB混色灯,实现多种颜色的显示.后期还可以加上P ...
- linux安装python3环境并配置虚拟环境
1.安装必要库 yum -y install gcc yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite- ...
- Jenkins集成jacoco收集单元测试覆盖率
Jenkins集成jacoco收集单元测试覆盖率 2020-02-28 目录 0 整体思路1 Jenkins创建JacocoIntegrateTestDemo项目2 配置源码管理3 配置Build4 ...
- Oracle v$session视图显示客户端IP地址
在Oracle数据库中,我们使用session相关视图(v$session.v$active_session_history,dba_hist_active_session_history等)查找问题 ...
- JAVA面向对象 - 抽象类、接口
抽象类 用abstract关键字来修饰一个类时,这个类就叫抽象类,用abstract关键字来修饰一个方式时,这个方法就是抽象方法.当一个类继承的父类是抽象类的话,需要我们把抽象类中的所有抽象方法全部实 ...
- vue(六)--计算属性(computed)
计算属性关键词: computed demo1: <div id="app"> <p>原始字符串: {{ message }}</p> < ...
- js中div显示和隐藏钮为什么页面总是跳一下到最上面
<div class="menu_left"> <ul > <li id="t1" style="background- ...
- python下timer定时器常用的两种实现方法
方法一,使用线程中现成的: 这种一般比较常用,特别是在线程中的使用方法,下面是一个例子能够很清楚的说明它的具体使用方法: #! /usr/bin/python3 #! -*- conding: u ...
- PC远程传文件到树莓派(PSCP详细版)
1.下载pscp软件 下载地址:http://www.pc6.com/softview/SoftView_456976.html 百度云下载地址:https://pan.baidu.com/s/1bZ ...
- ES6基础与解构赋值(高颜值弹框小案例!)
let只作用在当前块级作用域内使用let或者const声明的变量,不能再被重新声明let不存在`变量提升` console.log(dad); var dad = '我是爸爸!';//预定义undef ...