PS:欢迎大家关注我的公众号:CloudDeveloper(ID:cloud_dev),专注技术分享,努力打造干货分享平台。扫描文末二维码即可。日常工作中会涉及到一些Linux性能分析问题,所以决定总结一些常用的性能分析方法,仅供参考。说到性能分析,基本上就是CPU、内存、磁盘IO和网络。本文先来看CPU部分。CPU基本信息在进行性能分析之前,首先要知道CPU有哪些信息。您可以通过以下方式查看CPU配置信息。在Linux下,lscpu命令如lsxxx用于查看基本信息,如ls查看当前目录文件信息,lscpu查看CPU信息,lspci查看PCI信息。可以看到我的机器配置很低,1核2.5GHz(在阿里云买的最低配置的服务器)。/proc/cpuinfo/proc目录是内核透传给用户态的,里面有很多信息文件,比如内存文件meminfo等,可以使用cat/proc/cpuinfo查看CPU信息。此处显示的信息可以特定于每个逻辑核心。由于我只有一个核心,所以只显示一组信息。dmidecode命令用于获取DMI(DesktopManagementInterface)硬件信息,包括BIOS、系统、主板、处理器、内存、缓存等。对于CPU信息,可以使用dmidecode-tprocessor查看。CPU使用率分析知道了CPU的基本信息,我们就可以使用另一个命令来分析CPU的使用率了。top下面这些小玩意相信大家都不陌生,windows的任务管理器,top的功能和它是一样的。top显示出来的效果虽然没有想象中那么华丽,但也已经让人惊叹他们怎么长得这么像了。我们关注这几个字段:loadaverage:这三个数字分别代表最后1分钟、5分钟和15分钟的责任。值越大,负载越重。一般要求不超过核数,例如单核情况<1。如果机器的核心数长期高于机器的核心数,说明机器的CPU消耗严重。%Cpu(s):表示当前CPU的使用率,如果要查看所有核心(逻辑核心)的使用率,可以按数字“1”查看。这里有几个参数,分别表示为:-us用户空间占用CPU时间的比例-sy系统占用CPU时间的比例-ni优先级发生改变的进程占用CPU时间的比例用户空间-id占CPU空闲时间的比例-wa占IO等待时间的比例(当IO等待高时,可能是磁盘性能有问题)-hi硬件中断-si软件中断-st窃取时间各进程的使用:这里可以列出每个进程的使用情况,包括内存和CPU,如果要查看具体的进程,可以使用top-ppid来查看。和top一样,还有一个改进版的工具:htop,功能和top一样,但是比top更酷,更易用。你可以看到它的效果。ps很多人可能会忽略这条命令,认为这不是用来查看进程状态信息的,其实不是,这条命令可以通过它的参数显示很多功能。例如ps辅助。如果配合watch,可以达到和top一样的效果,比如:watch-n1"psaux"(-n1表示updateevery1s)。vmstat这个命令基本上可以看到机器当前的运行状态和问题,非常强大。可以使用vmstatn后跟一个数字,表示每隔ns显示系统的状态,信息包括CPU、内存、IO。更详细的内容可以关注我的公众号查看,那里的阅读体验更棒。PS:更多干货可以关注我的微信公众号:CloudDeveloper(ID:cloud_dev),坚持分享干货。
