(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调优化和问题排查的更多相关文章

  1. ES 调优查询亿级数据毫秒级返回!怎么做到的?--文件系统缓存

    一道面试题的引入: 如果面试的时候碰到这样一个面试题:ElasticSearch(以下简称ES) 在数据量很大的情况下(数十亿级别)如何提高查询效率? 这个问题说白了,就是看你有没有实际用过 ES,因 ...

  2. 实时查询系统架构:spark流式处理+HBase+solr/ES查询

    最近要做一个实时查询系统,初步协商后系统的框架 1.流式计算:数据都给spark 计算后放回HBase 2.查询:查询采用HBase+Solr/ES

  3. lucent,solr,ES比较

    |0什么是全文搜索 什么是全文搜索引擎? 百度百科中的定义:全文搜索引擎是目前广泛应用的主流搜索引擎.它的工作原理是计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现 ...

  4. solr性能调优

    Schema Design Considerations indexed fields indexed fields 的数量将会影响以下的一些性能: 索引时的时候的内存使用量 索引段的合并时间 优化时 ...

  5. SOLR缓存调优

    缓存在 Solr 中充当了一个非常重要的角色,Solr 中主要有这三种缓存: Filter cache(过滤器缓存),用于保存过滤器(fq 参数)和层面搜索的结果 Document cache(文档缓 ...

  6. [redis]复制机制,调优,故障排查

    在redis的安装目录下首先启动一个redis服务,使用默认的配置文件,作为主服务 ubuntu@slave1:~/redis2$ ./redis-server ./redis.conf & ...

  7. ES的优化布局

    分词优化:IK Analyser Elastic Search 5.x官方提供的中文搜索并不友好,分词时经常将一句话分成很多单字,这时候可以使用IK Analyser插件进行优化,当然你在写java代 ...

  8. Es性能优化

    1. Es中10亿级别的数据量,如何提高查询效率 (1) 性能优化关键:file system cache a. 不要期待随手挑一个参数,就可以万能的应对所有性能慢的场景 b. es依赖于底层的fil ...

  9. ES调优

    ES Connection timed out,调优方向 1. 使用游标滚动查询 scrollId 游标id searchResponse.getScrollId() scroll 设置游标的保留时间 ...

随机推荐

  1. 盒模型大小取决于它的padding,margin,border数值

    盒模型规定了元素框处理元素内容width与height值.内边距padding.边框border 和 外边距margin 的数值大小.边框内的空白是内边距padding,边框外的空白是外边距margi ...

  2. 使用JDBC分别利用Statement和PreparedStatement来对MySQL数据库进行简单的增删改查以及SQL注入的原理

    一.MySQL数据库的下载及安装 https://www.mysql.com/ 点击DOWNLOADS,拉到页面底部,找到MySQL Community(GPL)Downloads,点击 选择下图中的 ...

  3. 《自拍教程25》在Linux上配置环境变量

    我们说的环境变量,一般是指的是PATH环境变量, Linux我们用Ubuntu操作系统来举例. 我们从官网下载了Sublime Text的Linux已编译好的包. https://download.s ...

  4. 题解【CF1311F Moving Points】

    \[ \texttt{Preface} \] 赛时,把 " 任意时刻 " 理解成 " 整数时刻 " 了,看起来一脸不可做的亚子,还各种推式子. 话说我为什么觉得 ...

  5. SpringBoot 教程之 profile 的应用

    目录   区分环境的配置  区分环境的代码  激活 profile  示例源码  参考资料 一个应用为了在不同的环境下工作,常常会有不同的配置,代码逻辑处理.Spring Boot 对此提供了简便的支 ...

  6. 剑指offer-面试题51-数组中的逆序对-归并排序

    /* 题目: 求给定数组的逆序对数. */ /* 思路: 归并排序. */ #include<iostream> #include<cstring> #include<v ...

  7. android中常用的布局管理器

    Android中的几种常用的布局,主要介绍内容有: View视图 RelativeLayout    相对布局管理器 LinearLayout     线性布局管理器 FrameLayout     ...

  8. sc 与 net 命令

    查看命令的帮助: help sc 或者 help net net: net start mysql  打开服务 net stop mysql 关闭服务 net pause mysql 暂停服务 sc ...

  9. CF #619 div.2

    序 希望,不要还有一天像今天一样糟糕. T1 three strings 笔记本的google 炸了,读题可难受了 多组测试数据 我们的想法是,用string存字符串,若 对于任意的i,a[i],b[ ...

  10. SqlServer 常用语句方法

    批量生成删表语句 select 'drop table '+b.name+'.'+a.name+';' from sys.tables a left join sys.schemas b on a.s ...