Elasticsearch经验总结(持续补充)

版权声明 本站原创文章 由 萌叔 发表 转载请注明 萌叔 | http://vearne.cc 起因: ES在笔者所在的公司使用也有3年多了,集群的规模达到上百台,期间也有很多的经验,我这里总结出来分享给大家,技术水平有限,如有错误请指正。 事项: 这些事项,我把它们以问题的形式列出,并会持续补充 1. 关于shard大小的分配 ES的shard是在index创建好时,就已经分配了,所以shard数量的选择非常重要,根据经验shard的大小在10GB ~ 20GB 较为合适。选择这个大小的原因如下 1)ES是通过移动shard来实现负载均衡,如果shard过大移动会非常缓慢 2)另外每个shard相当于一个lucene实例,lucene实例也对应着一组Java线程,所以shard数也不应该过多 2. 关于index的命名设计 如果数据是随着时间增长的,可以选择按月,或者按天分库 index的命名可以是 index_201701、index_201702、index_201703 或 index_20170301、index_20170302、index_20170303 然后可以为他们指定别名index_2017,这样可以直接使用这个别名查询所有index库 另外ES的库是可以关闭的,关闭以后,不占内存空间,只消耗硬盘空间 3. SSD OR 机械硬盘? Elasticsearch的速度有赖于索引,大量的索引是以文件的形式存储在硬盘上的,如果你的数据量较大,且单次的查询或聚合量较大,那么应该使用SSD,据我们的测试表明,再查询的数据量较大的情况下, 使用SSD的ES速度是机械硬盘的ES速度的10倍, 官方说法在正确配置的情况下,SSD的写入速度是机械硬盘的500倍 给一个参考值 数据单条记录1kB 操作系统Centos 6.7 内存64G ES版本2.3 ,堆内存31GB 单个ES data node处理能力 机械硬盘 SSD 1w/min 10w/min 见参考资料[1] If you are using SSDs, make sure your OS I/O scheduler is configured correctly. When you write data to disk, the I/O scheduler decides when that data is actually sent to the disk. The default under most *nix distributions is a scheduler called cfq (Completely Fair Queuing). ...

December 31, 2017 · 3 min

我看过的好书推荐

版权声明 本站原创文章 由 萌叔 发表 转载请注明 萌叔 | http://vearne.cc 起因:以前一直想有人能给我介绍下有哪些好的计算机方面的书,却也一直没怎么得到高人的点拨,现在自己跌跌撞撞的走过10年的职场生活,也算读了几本书,跟大家分享一下。 我尽量按照体系或者编程语言分类: 公共篇: 书名: 《携程架构实践》 推荐理由:对大型互联网的架构和重要组件都有涉及,基本属于点到为止。 但是萌叔仍然推荐阅读一下。 1)此书中提到的很多解决方案是携程内部现在正在使用的,具有很高的参考价值。 2)对特定领域问题的解决方案的演进和思考,对未来的架构发展方向有指引作用。 3)经常搬砖的朋友,可以提高一下自己的格局。 书名: 《构建高性能web站点》 推荐理由: 跟web站点性能调优的常用思路和方法都能在这里找到。 书名:《数学之美》 推荐理由: 能使你建立起框架性的,提纲挈领的书。 书名:《编写可读代码的艺术》 推荐理由: 代码规范引导。任何外来强加的代码规范,都不及发自内心的想写更好,更可读代码的愿望。另外就是多读一些开源项目的代码,对写好代码有很大的帮助,有一天你会突然明白,原来还能这么写。 书名:《Linux/Unix设计思想》 推荐理由: 从哲学方面探讨了linux和unix的设计思想,可以用来开脑洞。 书名:《白帽子讲web安全》 推荐理由: web安全方面的入门好书,XSS和CSRF都有涉及 书名:《lucene实战》第二版 推荐理由: lucene核心开发者编著。lucene是solr和elasticsearch的底层。要想把solr和elasticsearch弄明白,这本书必须得看。 书名:《Elasticsearch源码解析与优化实战》 推荐理由:基于6.1.2源码的深度解读,相关原理和软件配置参数讲解的也很详细,对Elasticsearch的深入学习大有益处。 书名:《python绝技:运用python成为顶级黑客》 推荐理由: 不要被这本书的名字给唬住了,其实这本书的英文名称叫《Violent Python》主要是讲使用Python来进行安全方面的实践,100%的实操,而不是空洞的理论,涉及网络和安全相关知识 书名:《Unix环境高级编程》 推荐理由: 任何一门编程语言都需要把自己的程序转换为对操作系统接口的调用。所以了解系统API是非常重要的。读完这本书再去看本门语言中对线程和进程的使用会感到非常的熟悉。但是读本书的时候最好有C语言基础,否则肯定读不懂。 书名:《linux内核设计与实现》 推荐理由: 标题特别唬人,但其实里面真正设计到编程的部分并不多,很大部门都是在阐释设计思想,建议看英文版,中文版有缺失,导致无法看懂。看中文版最好玩的地方在于,每当你看中文版看不懂的时候,一看英文版就明白了 书名:《图灵程序设计丛书:Linux Shell脚本攻略》 推荐理由: 这本阿三写的神书,确实比《shell高级编程》读起来舒服多了,不过这本书里写的都是常用命令和常用参数,比较简单。 书名:《Redis设计与实现》 推荐理由: 这本书的作者,功力绝对不一般。读完这本书我认识了跳跃表,并且redis为了实现低内存开销和高性能所采用的方法也让人有眼前一亮的感觉。 书名:《MySQL是怎样运行的-从根儿上理解MySQL》 推荐理由:直接深入实现细节,包括索引结构,查询流程。更难能可贵的是本书有非常丰富的彩色图表,让人一目了然。豆瓣评分高达9.5分。萌叔强烈推荐。在此感谢作者,也感谢给我推荐这本书的峰云大神。 书名:《SRE-Google运维解密》 推荐理由:本书介绍了google内部生产实践中遇到的一些问题,并且他们对于这些问题的思考和解决方案。 对于规模较大的公司,有一定的借鉴意义。 站在巨人的肩膀上,你能看得更远。 书名:《深入理解linux网络》 推荐理由:豆瓣评分高达9.5分。 深入linux内核源码,了解数据包发送和接收细节、epoll的底层工作原理。 本书对应对面试和日常服务性能优化都有帮助。另外本书配有大量彩色图表,表述调理清晰。 提示:本书不适合初学者。 书名:《Apache APISIX实战》 推荐理由: APISIX项目官方团队编写,对于理解网关设计理念,工作原理,插件扩展有一定的帮助。 ...

December 31, 2017 · 1 min

联系

你可以通过我的电子邮箱与我取得联系。 QQ:346873803 Email:asdwoshiaotian@gmail.com

December 31, 2017 · 1 min

关于

一个在一线多年的资深程序员,总结工作和生活中遇到的技术问题。 请我喝杯咖啡☕!

December 31, 2017 · 1 min