之前是使用12台机分布式搜索,1台为主机做索引并分发给子机,8台做大索引搜索服务,3 台做小索引搜索服务,配置基本是内存在4-8G,cpu:2-8core的服务器,索引的大小为8G。搜索的响应时间 是150ms左右。(使用solr架构的搜索服务)

在一次技术群中,中听到一位sina的架构师,他们是采用基于lucene做的搜索服务,索引在20多G数据量,差不多是在亿的级别上,PV量在500万/天左右,高峰时期500个并发量/s,采用的是增量索引 ,读写索引都在同一台机上。他们并没有采用分布式,而是采用单机提供服务,主要是在配置上内存提高 到32-64G,再加cpu:32个core.

到底他们在架构上采取了什么样的优化,并不得而知。但从中可以得知,采取大内存的处理比使用硬盘的快1000倍左右。所以我们也测试 了一下采用大内存的设计。使用的机器配置是32G,4个core CPU。

使用的搜索服务是用solr搭建的,主要修改它的索引目录位置,将索引目录设置为内存(在linux中,可以将内存映射为硬盘),然后关掉了其它8台大索引的服务,即是将主要的搜索服务都分给新配置的机器。测试了几天,它的性能果真是好很多。平均响应时间是30ms。在取文档的时间上几乎为0ms,主要消耗的时间在计算跟排序上,由于排序时用了六个索引字段,动态计算bf分数,这里才是费了最多时间的。而这里其实也可以优化的,即在建索引的时候,就先计算好每个文档的bf分数(有时间再做优化)。相信可以提高到10ms左右的响应时间 。

solr的本身设计也是多线程,高峰的时候有几十条线程并发,负载到了4左右,现在单机的瓶颈在CPU上,如果cpu再高些,基本上就可以安稳地顶起高峰时期,或者再多台同样配置的机器负载。

现在的索引只有8G,如果到了20G(一亿左右的数据量)的话,不知道会怎么样,请拭目以待。

转载于:https://www.cnblogs.com/cuihongyu3503319/p/9473416.html

提高solr的搜索速度相关推荐

  1. solr mysql 速度_提高solr的搜索速度

    之前是使用12台机分布式搜索,1台为主机做索引并分发给子机,8台做大索引搜索服务,3 台做小索引搜索服务,配置基本是内存在4-8G,cpu:2-8core的服务器,索引的大小为8G.搜索的响应时间 是 ...

  2. lucene正向索引(续)——域(Field)的元数据信息在.fnm里,在倒排表里,利用跳跃表,有利于大大提高搜索速度。...

    4.1.2. 域(Field)的元数据信息(.fnm) 一个段(Segment)包含多个域,每个域都有一些元数据信息,保存在.fnm文件中,.fnm文件的格式如下: FNMVersion 是fnm文件 ...

  3. 【Elasticsearch】es 提高 搜索速度

    1.概述 官网:Tune for search speededit 将内存分配给文件系统缓存 Elasticsearch严重依赖于文件系统缓存,以加快搜索速度.通常,您应该确保至少有一半的可用内存分配 ...

  4. CSS中的emmet语法(使用缩写的方式提高书写html编写速度)

    使用CSS的emmet语法:使用缩写的方式提高书写html编写速度. (1)快速生成html结构语法: 如果想要生成多个相同的标签,加上"*"就可以了,如div*3,生成三个div ...

  5. mysql 如何提高批量导入的速度

    mysql 如何提高批量导入的速度 最近一个项目测试,有几个mysql数据库的表数据记录达到了几十万条,在搭建测试环境 导入 测试数据时,十分慢. 在网上搜索了一下,有下面一些方法可以加快 mysql ...

  6. 网页速度很慢优化方案:如何提高网页加载速度,提升网站加载速度

    网站加载速度的快慢,直接影响用户的去留.这里为大家持续更新我的经验,帮你解决网页速度很慢,慢在哪里,该怎么优化的问题.希望对你有所帮助! 1.  网站空间要好:网站需要一个稳定的服务器或者虚拟机,可以 ...

  7. 程序员如何提高编程时打字速度的5个Tips

    文章目录 程序员如何提高编程时打字速度 前言 打字速度等级 测试编程时打字速度 提高编程时打字速度的5个Tips Tips1: 选用合适的键盘 Tips2: 保持正确的坐姿和打字姿势 Tips3: 选 ...

  8. solr简单搜索案例

    solr简单搜索案例 使用Solr实现电商网站中商品信息搜索功能,可以根据关键字搜索商品信息,根据商品分类.价格过滤搜索结果,也可以根据价格进行排序,实现分页. 架构分为: 1. solr服务器 2. ...

  9. Elasricsearch搜索速度优化

    Elasricsearch搜索速度优化 1.合理设置副本数量 增加副本,可以提升搜索的能力. 如果副本设置过多,会对服务器造成额外的压力,因为主分片需要给所有副本同步数据.另外,副本过多也会占用磁盘空 ...

最新文章

  1. java循环制作万年历,java使用Calendar制作万年历
  2. LiquidCrystal库函数
  3. 【Python学习系列二十】scikit-learn库模型持久化
  4. 线程回顾Thread
  5. Android Caused by: java.lang.IllegalArgumentException: column '_id' does not exist
  6. 【二分】最大均值(ybtoj 二分-1-3)
  7. ARM中断分析之一:中断控制器和CPU、外设的关系
  8. vue i18n 国际化 使用方法
  9. 开源Blog系统-欧式风格家具网站源码v1.5.4
  10. python逐行读取txt文件readline_Python - 无法读取整个.txt文件:.readlines错误?
  11. feign整合sential_Sentinel 和 Feign 集成时,方法名称写错
  12. win10计算机ser,win10 ch341ser.inf安装失败如何处理_win10无法安装ch341ser.inf修复方法...
  13. java流程图平行四边形_编程技巧之流程图
  14. 轻松搞懂word2vec / FastText + SVM(支持向量机)实现中英文情感分类
  15. 搜索引擎的排序技术综述
  16. cf950f Curfew
  17. html语音合成text2audio讯飞,python讯飞语音合成
  18. Xcode打包cocos2dx项目启动页突然黑屏
  19. 学生成绩管理系统完整版
  20. vue elementui checkbox第一次点击选不中的问题

热门文章

  1. Eclipse 构建Maven项目
  2. 建议11: 区别对待==和Equals
  3. Cocos2D 添加 UIView
  4. 快速学习23种设计模式思想Design Patterns
  5. RUNOOB python练习题2
  6. WebLogic调用WebService提示Failed to localize、Failed to create WsdlDefinitionFeature
  7. mkdir命令使用范例
  8. 【swift学习笔记】三.使用xib自定义UITableViewCell
  9. A 子类继承父类,子类的构造函数会覆盖父类的构造函数
  10. SQL SERVER2000将多行查询结果拼接到一行数据及函数的创建