`

solr调优

阅读更多

    基于Lucene的SOLR一直以稳定、高性能著称,虽然其在高并发下对CPU要求较高,但能解决复杂的查询并能以如此快的速度内返回搜索结果,实在是开发搜索的一大利器。公司部署在Linux服务器上的Master-Slave架构的SOLR在过去1年多以来运行都比较稳定。

    最近一周,有开发人员反馈索引更新速度非常慢,造成一大堆数据还未等待索引操作,客户端提交索引的逻辑优化很多遍都没有效果。对于索引性能的检查,主要是从客户端和服务端两个地方入手:
    1、客户端,检查结果发现多线程并未出现死锁,通过solrj发送索引命令因为执行速度太慢一直被阻塞在线程池中,客户端使用的是官方推荐的ConcurrentUpdateSolrServer,采用批量adds的方式更新索引(平均每秒需要更新3万条),使用效率更高的二进制请求(替换XML请求);客户端未不是问题的根源。
    2、服务端,IO压力不大,内存充裕,CPU占用率偏高达到40%以上;查看solr日志发现大量出现adds 300条索引的时间QTime达到惊人的几十秒;索引瓶颈出现在服务端。
    于是安排开发人员分析是否因为随着数据量的上升(1.3亿条索引数据、占用磁盘空间50G左右),而带来的索引压力大造成速度被拖垮?通过调整solrconfig.xml的一系列参数,如增大ramBufferSizeMB,加大mergeFactor,减少autoCommit次数,尽量减少磁盘操作,测试索引速度,但收效甚微。通过GC日志分析垃圾回收正常,即使更换垃圾回收策略也没有明显的提升空间。
    最后只能去dump线程分析CPU花费在哪些上面,在dump日志中看到tomcat的很多线程都处于等待状态,处于Running状态的经常是分词,于是把堆栈拷贝出来给分词器开发人员分析,开发人员从堆栈中看出代码执行在简繁体转换,在快速修复分词器的这个bug后更新到SOLR服务器,索引速度恢复如初。
分享到:
评论

相关推荐

    linux+tomcat+mysql+solr调优

    linux+tomcat+mysql+solr调优,整理的比较粗糙,给大家分享参考下

    SOLR检索调优

    SOLR 检索调优

    solr同步调优

    solr同步调优,达到15分钟处理10万条数据更新,大约20万次solr操作(删除和插入),失败率1/10万

    solr4.4部署、维护、调优

    solr4.4部署、维护、调优,包括安装jkd,tomcat部署,solr4.4部署

    solr深入浅出

    介绍了Solr的特性,Solr服务原理,源码结构,Solr的安装与配置,Solr的应用,SolrJ的用法,solr性能调优等等

    SOLR的应用教程

    6 solr性能调优 55 6.1 Schema Design Considerations 55 6.1.1 indexed fields 55 6.1.2 stored fields 55 6.2 Configuration Considerations 55 6.2.1 mergeFactor 55 6.2.2 mergeFactor Tradeoffs 56 6.3 Cache ...

    spark-solr:使用SolrJ从Solr作为Spark RDD读取数据并将对象从Spark索引到Solr的工具

    索引编制例子索引和查询Twitter数据索引和查询纽约市黄色出租车CSV数据配置和调优查询参数询问领域过滤器行数max_rows request_handler 使用分片内拆分提高读取并行度分裂split_field splits_per_shard flatten_...

    HBase视频教程下载|基于微博数据应用的HBase实战开发

    课时25:项目介绍与Solr环境搭建 课时26:数据层设计与中文分词器配置 课时27:Spring集成HBase之核心操作 课时28:Spring集成HBase之核心操作(续) 课时29:基于dom4j进行数据文件解析 课时30:数据层设计与实现之...

    Eclipse开发分布式商城系统+完整视频代码及文档

    │ │ JVM调优实战.doc │ │ Tomcat7优化.docx │ │ 深入理解Java内存模型.pdf │ │ │ └─课后资料 │ ├─笔记 │ │ 淘淘商城_day20_课堂笔记.docx │ │ │ └─视频 │ 07-使用Jedis连接集群操作.avi │ ...

    java+大数据.pdf

    hadoop(10天) hive/hBase/Sqoop/Ooz/hue/flume(每个三天) lucence/solr/elasticsearch(10天) scala/phthon(每个五天) 通信框架(Mina/netty)(⼤数据中⽤到) spark(各个模块都讲解)(10天) CDH(五天) openstack...

    Lucene实战

    包括认识Lucene、建立索引、为应用程序添加搜索功能、高级搜索技术、扩展搜索、使用Tika提取文本、Lucene的高级扩展、使用其他编程语言访问Lucene、Lucene管理和性能调优等内容,最后还提供了三大经典成功案例,为...

    java+大数据(1).pdf

    linux(3天/15天) 根据情况讲解 ,三天只能掌握基础知识 ,剩下12天给⼤家让⼤家⾃学,如果需要也可以讲解15天 JAVA虚拟机调优(三天)spark 中需要⽤到虚拟机的知识 hadoop(10天) hive/hBase/Sqoop/Ooz/hue/flume...

    大数据开发工程师的岗位职责.docx

    2、有搜索引擎全文检索开发经验 ,如:elasticsearch、solr; 3、熟悉python、R任意一门开发语言; 4、有SAAS,PAAS企业级应用平台或者互联网,金融等大型应用平台开发经验优先考虑; 5、 本科及以上学历,计算机/软件...

Global site tag (gtag.js) - Google Analytics