生产环境的性能测试和调优

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

生产环境的性能测试和调优本周花了一些时间,做生产环境的性能测试和调优。我们有一套基于Go语言的线上开放API,跑了一断时间,发现响应时间间歇性的有延迟。但凡100%重现的问题都是小问题,最怕的就是,偶尔慢一下。所以,找了一些工具,重现问题、压力测试、监控以及调优。这里首先推荐一下vegeta性能工具,也是基于Go写的。用这个工具,我们就可以写一个PHP脚本,把生产环境的访问accesslog采集成vegeta的target格式的文件,然后用vegeta去模拟并发来重现问题:在压力测试的过程中,除了正常的服务器监控,我们增加了对MongoDB的profiing,然后用MongoDB性能索引工具dex实时监测MongoDB的慢查询,得到索引优化建议。同时,我们还针对我们的Go的API增加了线上代码profiling的开关,通过特定的命令打开ppro性能数据采集,然后用超赞的gotoolpprof去分析采集下来的代码级别性能数据(可以清晰的看到内存的分配,CPU时间的分配),然后找到性能罪魁祸首。另外,gotoolpprof文章里提到的havlakbenchmark代码,是基于早起版本的Go编写的,我对代码稍作修改,适配到了最新的Go1.5,放到了Github上。想学习pprof的可以直接拉代码,玩耍!另一篇也可以参考intel的Goprofiling。既然提到了Go,如果你对Go语言感兴趣,可以读读大神Rob的文章:GoatGoogle(你要Fuck那堵墙)。上周有对同仁做过一场技术选型的培训,细节就不多透漏了,但是,如果你想了解那些牛逼的公司都在用什么技术栈,可以利用好这个工具:StackShare,说不定能找到很多你之前不了解的技术和工具呢。我是Mac和Linux控,对terminal情有独钟,能用命令的是懒的打开IDE或者GUI终端来做事情的。命令行的高效,外人看来是装逼。也好,提到装逼,本周我就推荐两款看起来装逼,但是用起来爽歪歪的命令行辅助工具:tldr和thefuck。想不起某个命令的时候,trdr一下,快速看一些常用模式;命令记错了?没事,fuck一下,立刻帮你纠正。如果,你也和我一样,配置了很多的alias,但是有时候一些好用的alias忘记了,怎么办?配置好这款,当你敲下长长的命令gitstatus,它会立刻提示你“Youknowyouhaveanaliasforthat,right?gst”,下次就不会忘记少打几个字符了!由于项目计划的原因,准备2016年开始研究和小范围采用hadoop或者spark,如果你和我一样,对大数据超级不敏感,并且头疼,入门级捷径,其实没有,不过,概念上的快速理解,可以参考这里:2分钟读懂大数据框架。我猜,这个链接一定是点的人最多的^_^Redis里“大数据”预警,读到这篇文章的时候,我发现我们也在大量依赖Redis的数据自动过期。只是估计我们的量没那么大,还没发现,不过值得警惕。涨姿势的Redis数据过期问题。本周知乎看到了大家讨论的Pythonclass&type。想起,这个真是一个好问题,任何Python程序猿都应该懂并且理解的好问题。顺便分享一篇好文。Python程序猿,建议你们好好读读:Pythontypesandobjects搞不清楚class&type,只能说你会用Python,丹别说你懂Python。另外,不愿意看英文的,这里进看中文WhatismetaclassinPythonHowcanImakeachainoffunctiondecoratorsinPythonWhatdoestheyieldkeyworddoinPythonCreateasingletoninPython让你涨姿势的各种写法以上是Python进阶的必读!虽然我不是前端,但是我觉得我和前端杠上了。本周继续推荐一篇从另一个角度、分析的非常不错的前端生态发展回顾。PostCSS已入我法眼,准备研究看看。作者:大房

1 / 3
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功