Linux常用性能分析工具

引言

在昨天之前,一直没有仔细注意到自己电脑在开启一定多的服务之后,负载量到了多少.但是因为遇到了这么一个情况,在开启网易云音乐之后,因为软件的原因导致内存溢出,将系统的内存占用光了,电脑卡死.最开始一直没查出来是什么原因,后来使用到了这么几个工具top,和vmstat才查明白.当然性能分析工具不光在私人电脑上用得到,在服务器运维方面其实也有很大用处,还是很有必要学习的.

top工具

在终端直接使用输入top回车
这里写图片描述
如上图,第一行内容正式系统当前的负载情况,可以再通过uptime看一下.
这里写图片描述
命令显示如上图,对应的后面的三个load average数值代表的是在过去的1分钟,5分钟,15分钟内进程队列中的平均进程数量.
在top命令的输出图中,需要注意的是load average的输出值,这三个值的大小一般不能大于系统的逻辑CPU数量,比如输出中本系统有4个逻辑CPU,如果load average的三个值长期大于4,说明负载挺严重.当然一般电脑应该都够用,这里需要考虑的是服务器上的情况.
如果cpu还有不少空闲,这个时候可以结合vmstat来判断我们的系统是否过于繁忙,如果确定很繁忙,就需要考虑是否要更换CPU或者增加内存了.

vmstat监控系统的整体性能

vmstat是一个相当全面的性能分析工具,通过它可以查看到系统当前的进程状态,内存使用状态,虚拟内存的使用情况,磁盘I/O,中断,上下文切换,CPU的使用情况等性能信息,建议熟练此命令.
以下是正常情况下的
这里写图片描述
其中

procs
r:等待运行的进程数
b:处于非中断睡眠状态的进程数
memeory
swap:虚拟内存使用情况(单位KB)
free:空闲的内存
buff:被用来做缓存的内存数量.
swap
si:从磁盘交换到内存的交换页数量.
so:从内存交换到磁盘的交换页数量.
io
bi:发送到块设备的块数(单位:块/秒)
bo:从块设备接收到的块数.
system
in:每秒中断的次数,包括时钟中断.
cs:每秒的环境(上下文)切换次数.
cpu
按照CPU的总使用百分比来显示
us:CPU使用时间.
sy:CPU系统使用时间.
id:闲置时间.

标准情况下r和b的值应该为:r<5,b≈0(服务器上,以下也是).
如果user%+sys%<70%则表示系统性能较好,如果user%+sys%>=85%或者以上,这表示系统性能比较糟糕,这时就要对系统进行全面的检查了.
其中
user%表示CPU处在用户模式下的时间百分比.
sys%表示CPU处于系统模式下的时间百分比.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
常用的嵌入式Linux性能分析工具有以下几种: 1. top:可以实时查看系统中各进程的资源占用情况,包括CPU、内存、虚拟内存等。使用示例:在终端输入top命令即可。 2. vmstat:可以查看系统中各进程的虚拟内存使用情况,以及系统的I/O和CPU等情况。使用示例:在终端输入vmstat命令即可。 3. strace:可以跟踪系统调用,可以用来查看进程的系统调用情况,以及定位程序的问题。使用示例:在终端输入strace命令加上需要跟踪的进程ID即可。 4. perf:可以进行系统级别的性能分析,可以查看CPU的各种事件,包括指令、缓存等等。使用示例:在终端输入perf命令加上需要跟踪的进程ID即可。 下面以top和perf为例,详细说明如何使用: 1. top使用示例: 在终端输入top命令后,可以看到类似下面的输出: ``` top - 11:37:20 up 2:18, 2 users, load average: 0.53, 0.60, 0.61 Tasks: 87 total, 1 running, 86 sleeping, 0 stopped, 0 zombie %Cpu(s): 6.8 us, 1.0 sy, 0.0 ni, 92.1 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1023684 total, 151540 free, 407304 used, 464840 buff/cache KiB Swap: 0 total, 0 free, 0 used. 459836 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 718 root 20 0 12844 1892 1664 R 0.7 0.2 0:00.10 top 1 root 20 0 23488 3900 2820 S 0.0 0.4 0:02.65 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.05 ksoftirqd/0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 7 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 8 root RT 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 9 root RT 0 0 0 0 S 0.0 0.0 0:00.00 rcu_sched 10 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0 11 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 khelper ... ``` 其中,第一行显示了系统的负载情况,后面的各列分别表示进程的PID、用户、CPU占用率、内存占用率、运行时间和命令名称等信息。可以通过按下键盘上的数字键1、2、3等,来切换不同的查看模式。 2. perf使用示例: 在终端输入perf命令后,可以看到类似下面的输出: ``` Samples: 1K of event 'cycles:uppp', Event count (approx.): 1658641088 Children Self Command Shared Object Symbol + 94.89% 0.00% test test [.] main + 5.11% 0.00% test [unknown] [.] 0x000000000000ed5d + 0.00% 0.00% test [unknown] [.] 0x0000000000000000 ... ``` 其中,第一行显示了事件名称和事件计数。后面的各行显示了各个符号的占比情况,包括自身占比和子进程占比。可以通过加上不同的选项来对perf进行更详细的设置,例如可以使用“-e”选项来指定需要监测的事件,使用“-p”选项来指定需要监测的进程ID等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值