1.前言
又是一年年末,不知不觉已经毕业两年半了。回头一看去年的总结,发现给今年定的目标一个都没完成(理直气壮)。
按惯例做个总结,一方面是给明年的自己提些要求;另一方面则是希望记录现在的想法,希望几年后能通过总结回忆起今年的自己,如果忘记了那就会有一种这一年真的白过了的错觉,毕竟现在的我已经回忆不起来十年前的想法了。
2.1工作
整一年的工作围绕着两点:es迁移升级、搜索规模提升。
前者包括es存算分离上线、集群迁移至k8s以及开发主节点动态切换等内容,后者则进行了内存、IO的一些探索,在同等程度下让es承载更大的搜索量,包括且不限于提升内存cache率和降低文件IO。
-
存算分离:我理解存算分离的最大好处就是将应用层的副本备份转移到存储层,上层可以少存储一份数据,即使节点宕机后其他节点也可以加载分片进行恢复;当然也伴随着一系列的问题,共享存储的IO吞吐是所有节点共用的,远比每台节点配个ssd或云盘要小,因此集群对导致大量IO的查询承载能力会变得更差,换个角度说就是极其依赖文件cache。
-
内存与IO:考虑到es搜索时对page cache的依赖,上半年基于pcstat开发了一个检测es各索引cache大小的监控工具,下半年已经开源,老大整理了关于工具的一些应用场景 。探索还包括针对lucene的不同文件与各类查询的关系,尝试提升内存的有效缓存率,例如通过directIO读取fdt文件以提升拉数据场景下tim等索引文件的cache率。IO这块由于磁盘与共享存储的cache行为不一致导致部分磁盘上很有效的优化点在共享存储上没有很明显的提升,也算是踩的坑吧,尽量控制验证环境与生产的一致还是很重要的。IO这测还发现了mmap的预读远比niofs要高的多,最终也通过减少预读降低IO将搜索量提升到预期的规模。
-
迁移至k8s:集群迁移到k8s主要是不想人肉去管理各个节点,尤其是近一年的频繁升级操作,基于k8s的集群与ecs会有一些不同,连接集群的应用层也需要做一些相应的适配。
-
动态切主:主要是滚动升级重启es主节点时,降低master节点切换的服务不可用时长,服务影响从分钟级降低至秒级。
整体一年的工作还算顺利,虽然期间有过迷茫期,例如提升规模如何找准一个点去探索,初期只能通过一些经验以及直觉去寻找可能存在的优化空间,后期通过实践发现一些可操作性就会变得简单不少;也挺感谢同事的帮助,每次迷茫时跟他们聊一聊可能问题就有了一些头绪。
2.2个人
今年还是一如既往的宅,上半年浑浑噩噩的过,下半年的有段时间天天夜里失眠,一两个小时睡不着觉,躺在床上胡思乱想,应该还是宅久了太闲了吧,那段时间做什么都提不起劲,只想依托着惯性做个废物躺平,打游戏看番都觉得没意思,一个人久了似乎对生活失去了追逐的动力。
还有段时间从早到晚刷手机,把知乎、虎扑、豆瓣、贴吧、微博、脉脉以及b站轮回着刷,但是又找不到有价值有意思的信息,在这些流量为王的社区里找到一个不浮躁的小圈子如同屎坑里淘金,有一瞬间开始怀念几年前的b站,内容不如现在多但是刷到的可比现在的b站热门榜好玩的多(圈子越大越容易变味)。有时候也在想是不是该控制一下自己,发现一个东西有问题后别因为惯性而继续陷入其中。
平时除了工作出门,基本上就出门跑步了,今年整体跑量还是没起来(户外跑一下雨就断跑),不过还是提着一口气跑了20km,虽然有些勉强;跑步也是我那段低谷期唯一能坚持的事情,因为只需要跟着惯性往前跑啥都不用想,跑累了还可以防止失眠,希望明年可以正常跑个半马吧。最近还有同事能一起在椭圆机上运动,以后雨天的夜晚还能锻炼下,努努力跑个半马应该不难。
今年还跟着前同事去被foosball大佬狠狠的虐了,平时在公司内部娱乐玩玩的水平跟不上他们极快的反应,也开始跟着慢慢的练习控球,只可惜近期有段时间没能打上foosball了,公司难以凑满4个人,感觉已经手生了。
关于健康情况,除了下半年开始每天吃早餐以外,生活就不怎么健康导致体检前有点小慌,庆幸的是体检除了尿酸略高以外没啥毛病,明年还是接续保持多喝水少久坐注意饮食吧,毕竟以后的路还长。
3.期望
其实对未来还是迷茫居多,除了工作方向上短期有些小目标,生活上没有勇气立下很大的目标,和十年以前的我不会想十年后的现在会过什么样的生活一样,应该说还是充满很多可能性吧,努力做好眼前的事情。
不过照规矩,明年的flag还是要立的:
- 年度跑量破600km,完成一次不那么勉强的半马
- 每周获取一些有效讯息,包括不限于infoq v2ex或是看书等途径(少看垃圾!)
- 每周做一次个人小结(工作之外),多回顾之前定下的短期目标,多记录自己的一些想法
- 提升沟通和抓问题本质能力,减少无意义的扯皮
- 保持健康