文章目录
概述
不知道大家有没有这样的经历,生产环境下服务器上面CPU使用量过高,监控系统产生了报警,我们赶紧登陆到服务器上面,却不知道怎么定位这种CPU使用量过高的问题。本来系统没有什么太使用内存的程序,但是当前可用系统内存很少了,不知道什么程序使用着大量的程序资源、swap分区的内存被哪些程序使用着呢?程序日志中存在着大量的网络超时日志,但是不知道如何定位。
作为一个程序员,系统性能优化和系统资源定位是不可避免的事情。不管是单点应用还是分布式系统,并且性能优化也是软件系统中最有挑战的工作之一,更是每个工程师都需要掌握的核心技能。
下图中是Linux服务器出现性能问题时,可以从几个方面多个维度去分析问题,有些问题之间是有相关性的,比如CPU使用率过高,可能就会导致网络性能问题的发生等等。
内存性能分析
CPU性能分析
网络性能分析
磁盘性能分析
应用性能分析
文件系统
Linux内核
架构设计
性能监控
性能测试
总结
大家尽量从原理的角度入手,再去掌握工具。目前性能问题定位的工具有很多比如(sar, top, vmstat, iostat等等)这些工具都会输出相应的性能指标,如果不知道系统的原理的话,很难看懂这些指标的含义,后续会出一个系列的性能优化的文章,从案例的角度,大家一起学习原理和工具的使用。下面放出一个 Brendan Gregg Linux性能测试大神的测试工具集合。Brendan Gregg的博客在参考资料中有列出,感兴趣的同学可以看看,受益匪浅。
参考资料
Linux性能测试大神的博客,里面说明了很多测试的方法和手段
- http://brendangregg.com
- 《鸟哥的Linux私房菜》
- 《Linux性能优化大师》
- 极客时间《Linux性能优化》
![](https://img-blog.csdnimg.cn/2020090618421047.jpg)
微信公众号名称:技术茶馆
微信公众号ID : Night_ZW