You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 lines
8.3 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 用户故事 | “半路出家 ”,也要顺利拿下性能优化!
性能优化从来不是一件容易的事,学习相关知识自然也并不轻松。专栏更新至今,大家已经学习了五十多个案例和知识点。一路以来,有汗水有喜悦,有困难也有收获。你又是如何度过的呢?
这一期,我们邀请到了专栏学习期间,无论留言还是打卡都比较活跃的几个同学,让他们讲出自己的学习故事,分享自己的学习心得。
### 我来也
我是非计算机相关专业毕业的程序员由于对编程很感兴趣而加入了程序员的大军。因为C语言学得很扎实有幸在毕业后找了一份“码农”工作。从09年毕业到现在我一直在武汉一家休闲游戏公司从事休闲游戏服务端的开发还没有换过工作。
作为服务端的开发人员,在平常工作中,我难免会遇到线上程序出现性能问题。跟不少人一样,我以前的分析方法比较“原始”。
有时候我完全靠猜,比如从最近的变动入手,推测可能是什么程序导致的。当然,确定了程序后,偶尔也会用二分法,找出哪部分代码是“罪魁祸首”。
有时候我也会查看一些Linux性能指标不过以前确实只会用top和vmstat看看CPU负载、内存、磁盘、软中断等简单的性能指标。只有遇到具体的某个指标异常时我才会“谷歌一下”分析方法。
显然,这样解决起“新”问题来,很不及时,也并不准确;而靠着“踩坑”来学东西的成本也有点高。不过,以前确实没能找到实惠又系统的学习方法,这一方面也只能久久搁置着。
碰到极客时间应该说是一种幸运。在极客时间上学了《从0开始学架构》《Go语言核心36讲》《数据结构与算法之美》等专栏后我对专栏的质量很有信心。
所以当《Linux性能优化实战》专栏出来的时候我看到副标题“10分钟帮你找到系统瓶颈”就毫不犹豫地购买了。当然结果也没有令我失望可以说是收获满满。
还记得在学本专栏的《CPU性能篇》时公司的服务器从某里云平台切换到了某迅云。没想到的是刚学过的知识就立刻派上了用场。
之前服务器1分钟的平均负载一直在1以下切换云以后突然间歇性地升高到了14就连5分钟的平均负载都升高到了8。虽然业务暂时没有受到明显的影响但本着负责的态度再加上正在学习本专栏我就想着用现学知识来分析一下原因。
我先收集了高负载时的软硬中断数、磁盘I/O、CPU负载、运行中的进程及线程等指标确认了各项指标平稳与低负载时无明显变化。因为把可能导致平均负载升高的指标都排查了一遍运行中的程序队列也看过了所以我首先排除了自身原因。
后来,结合观测时收集到的信息,我发现该负载的升高很有规律,几乎是间隔固定的时间触发一次,持续时长也很固定。而这个现象持续了近半个月后,在部署程序没有任何调整的情况下,服务器的平均负载又恢复了正常,负载再未出现异常升高的现象。
虽然我最终没能找到具体原因,但经过系统性的排查,明确排除了自身程序的嫌疑,知道了解决问题的方向。这对我来说,是个不小的进步。
其实在极客时间,我订购了不少专栏,有些专栏知识平常用的并不多,我就会粗学。而这个专栏,跟我的工作非常紧密,讲得也非常条理易懂,所以我一直学得比较细,专栏里的每个案例都会跟着老师过一遍。
我会用老师介绍过的性能工具,在生成环境中试试,看有没有指标异常,防患于未然。这样,在解决性能问题时,我就从以前的“被动应战”,变为现在的“主动出击”。即使是遇到突发情况,也能很快地定位大致位置。
另外,老师在留言和学习群里,都非常积极地解答同学们的疑惑,也让我学到了不少。可能是我的接触面有限,我觉得把老师专栏中的知识吃透,就足够我用了。 我会继续反复学习,把这些知识变成我自己的能力,希望大家也能有同样多的收获。
### hurt
我目前在北京是一枚pythoner参加工作已经三年多了。我的第一份工作是做web相关的开发第二份工作则是做物联网后台开发。
就现阶段而言开发上涉及到的业务方面比较多对性能方面还没有过高要求。不过如果想成为更优秀程序员的话还是希望能在这方面有所提高而不只是会应用而已。另外因为我并不是计算机专业出身平常也只看过一些Unix和Linux的书所以想更系统、全面地有所提高。
我平常会利用上下班的地铁时间来学习专栏,因为自己对容器比较感兴趣,所以如果遇到相关内容,我就会比较系统地去操作和了解一下。毕竟,技术还是需要实际操作的,虽然目前来说,我还只是“见招拆招”的水平。
在学习专栏过程中印象比较深的是老师特别负责和严谨的态度。有什么问题去问老师老师都会尽快给出解决方案而且有一次还特意给封装了一份docker镜像一次不行就又来了一次很认真也很耐心。在这里我先给老师点个赞。
虽然我目前没有跟上进度每篇都打卡,但是肯定不会放弃,会坚持努力去学习的,就像其他同学所说的,会有所收获。
作为一个买了三十多个专栏的极客时间老用户,我能感觉到,极客时间还是很用心地在做一件事情,而自己也跟着学习成长了。能让读者和作者很好交流,这一点真的很赞,很用心。希望我们大家共同进步吧,真的向极客出发。
### 渡渡鸟
我大学专业是化学在2016年进入一家做政府网站的公司担任实施工程师职责就是教客户如何使用网站后台技术含量几乎为零。2017年我决定学习Linux报了线上的培训班在18年一月份终于学完并于四月份跳槽成为了一名运维工程师。
对我而言服务器性能调优是绕不过去的坎这也是运维知识体系中最底层并且最难的一部分。在专栏学习中这部分知识点主要氛围四个模块CPU、内存、磁盘、网络每个模块的学习又分成三步走原理、指标、优化。
原理是最核心的尤其是针对我这种半路出家也没学过计算机原理和C语言的同学。这也是我学这个专栏花费时间最多的地方。因为基础欠缺比较多我还是要依靠百度和谷歌搜索给自己答疑解惑。不过尽管如此在基础原理部分还是会有不理解的地方这些一般就要选择性地跳过了毕竟过分地追究原理也会严重影响性能学习的进度。
第二个指标,主要通过工具来获取,是定位问题和调优的依据。其实一些指标的要点,多看工具手册就能掌握,但重点是将指标和工具联系起来。这一点,在学完专栏后可以说是“神清气爽”,因为每个总结都很清晰到位。
最后的优化部分,先要根据性能指标找出问题,然后根据原理进行优化,最后再用工具衡量优化效果。这部分需要大量的经验,专栏中的案例也可以作为练手的好素材。
目前,性能优化专栏已经接近尾声,大部分内容学完后,我的收获很大。从开始学习到现在,我通过专栏中的方法,找到并解决了服务器上部分性能问题。这要是换做以前,我肯定不能这么“快准狠”地定位到问题。
在这里,我非常感谢专栏作者倪朋飞老师,如果不是刚好学到了这个专栏,想要掌握这些知识点和经验,花费的时间肯定要多很多。对我而言,时间就是钱,这个专栏真的是帮我省了一大笔钱。
当前网络上的大部分学习资料,要么不成体系,要么水平只是入门级,要么就是不够权威和准确。极客时间能邀请到这么多大佬开设专栏,确实是我这种学习者的福音。希望极客时间能越做越好,能将更多的知识带给更多的学习者。