新工作第十七周

今天是大年初一,祝愿大家健健康康,短短几天,过年的喜悦被恐惧占据了,瞬间意识到什么才是大事,全家三口哪儿也没去,安安心心过除夕。
这周工作时间就三天,其他时间什么也没干,简单做个总结,过了今天,希望后面不要荒废下去。
本周将MySQL官方手册的前五章看完了,也算告一段落,具体详细看了MySQL各种命令行工具,比较重要的是mysqlimport/mysqldump、mysqladmin、mysqldumpslow,import和dump进行数据物理备份和导出,是重要的运维工具之一,在以前的周记中也实际操练过;mysqldumpslow是分析慢查询的工具,基于线上的慢查询语句定位了一些有问题的SQL语句,年后可以优化一些程序;mysqladmin是管理MySQL最重要的工具,后续要熟练使用。

Elasticsearch也在持续看, 希望
过节期间将官方文档和专栏看完,这样上班后可以进行实战操练。
在以前的周记中也说过xhprof工具,花了两天时间,抽样分析了几个重要的程序,年后可以进行优化,能够进一步减少程序执行时间,并提升单机的支撑能力。
xhprof的几个关键特性:

  • 函数调用度量,包括运行次数、内存消耗、CPU时间。
  • 通过层级调用,了解一个程序上下文调用关系,即使不看代码,也能大概了解程序逻辑结构。
  • 能够输出diff和aggregate报告,提供flat和hierarchical视图。

对于我来说,用的最多的就是Callgraph试图查看,能够发现一些问题,同时重点关注函数调用者和被调用者之间的关系、inclusive/exclusive执行时间、函数的调用次数。
xhrpof默认提供的XHProf UI工具其实已经足够使用了,但如果要长期关注程序运行情况,可以使用XHGui这样的工具。
结合到业务,目前使用的是Yaf框架,使用上发现的一些问题:第三方插件加载和初始化花费的时间较长,数据库连接句柄的复用,MySQL连接后是否要执行 set names utf8mb4 等等,程序对应模块实际运行时间只占总体时间的60%,大量时间消耗在框架和基础库本身,可见优化的点有很多。
这周也整理了下以前收藏的资料,真的是太多了,其实并没有太大的意义,每年重复来重复去总结和计划也是自我安慰。结合工作本身,核心关注几个重点其实即可,要学会查阅官方手册,多看awesome了解技术趋势和工具(有效利用工具真的太重要了),看一些有价值的paper和经典技术书籍,最重要的还是实践实践,要乐于享受而不是被动应付。
而在非技术领域,可能就是要多注意身体,看2-3本能锻炼心智的书,新的一年闺女要上小学了,媳妇要成为她最好的老师,每个人都有自己的挑战。
行到水穷处,坐看云起时。