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 设置游标的保留时间 ...
随机推荐
- [MongoDB]mongodb的命令行操作
./mongo1.查看所有数据库show dbs2.切换数据库use 数据库名3.查询所有集合show collections4.查询所有文档db.文档名.find()db.文档名.find().pr ...
- 重构与动态为angularjs栏位赋值或获取值
先来看下面一段html: 这个ng-model名称带有一定的规律带有序号. 先来实现数据绑定,从数据取到数据后,为ng-model绑定相对应的值: var c = response.data $sco ...
- maven 新建站点
站点建立步骤启动eclipse_sts--->新建项目--->搜索maven -->选择maven-archetype-webapp 红色错误配置新建项目完成后--->inde ...
- JVM第二篇 类加载子系统
1.内存结构概述 简图 详细 2.类加载器与类加载的过程 类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识[CA FE BA BY ...
- Gird(1)
目录 网格布局 grid(1) 实现方式 对容器设置的属性 行高与列宽的设置 单元格的间距 内容的位置 表格在容器的位置 兼容问题 网格布局 grid(1) 实现方式 display:grid 也可成 ...
- 二次剩余的判定及Cipolla算法
二次剩余 ppp是奇素数.所有的运算都是在群Zp∗Z_{p}^{*}Zp∗中的运算.方程x2=a≠0x^2=a \neq 0x2=a̸=0问是否有解,以及解是什么?若有解,aaa就是模ppp的二次 ...
- 使用expect实现自动交互,shell命令行自动输入
背景 有需求,在允许命令或者脚本跳出交互行,需要进行内容输入,但需要人手动输入,不是很方便,此时可以通过expect来实现自动互动交互. expect是一个自动交互功能的工具,可以满足代替我们实际工作 ...
- 01、模拟ATM机界面程序
一.概述 设计一个简单的模拟自动取款机ATM界面的程序,实现用户登录及取款等功能. 二.需求分析 (1)模拟自动取款机ATM界面,有常用功能. (2)主要功能包括;用户输入密码登录主界面.取款功能.取 ...
- Dom中的一些接口
节点都是单个对象,有时需要一种数据结构,能够容纳多个节点.DOM 提供两种节点集合,用于容纳多个节点:NodeList和HTMLCollection.这两种集合都属于接口规范.许多 DOM 属性和方法 ...
- Html5学习系列
Html5学习系列 HTML5 规定了一种通过 video 元素来包含视频的标准方法 Ogg = 带有 Theora 视频编码和 Vorbis 音频编码的 Ogg 文件 MPEG4 = 带有 H.26 ...