免责声明: 本文档可能包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。
本文主要对Linux实例总体负载情况的查询和分析进行说明。
阿里云提醒您:
- 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
- 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
- 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
Linux实例如果总体负载过高,可能会引发死机或卡顿等异常。可以参阅如下步骤进行整体排查。
/var/spool/cron
等系统配置中是否有cron(计划任务)在对应时间段内执行。
sar是System Activity Reporter(系统活动情况报告)的缩写。sar工具对系统状态进行取样后,通过计算数据和比例来表达系统当前的运行状态。其特点是可以连续对系统取样,获得大量的取样数据。其取样数据和分析结果可以存入文件,所需的负载很小。
sar是Linux系统中较为全面的性能分析工具,可以从多个方面对系统的活动进行监控和报告,包括文件读写情况、系统调用使用情况、串口、CPU效率、内存使用情况、进程活动及IPC有关的活动情况等等。
如果您的系统中默认未安装sar工具,可参考如下步骤进行安装。
yum install sysstat
/etc/init.d/sysstat start
执行如下命令,查看CPU负载。
sar -u 1 5
系统显示类似如下。
Linux 3.10.0-123.9.3.el7.x8664 (iZ23pddtofdZ) 07/04/2016 _x86_64 (1 CPU)
10:16:35 AM CPU %user %nice %system %iowait %steal %idle
10:16:36 AM all 14.14 0.00 1.01 0.00 0.00 84.85
10:16:37 AM all 14.14 0.00 0.00 1.01 0.00 84.85
10:16:38 AM all 0.00 0.00 1.01 0.00 0.00 98.99
10:16:39 AM all 0.00 0.00 0.00 0.00 0.00 100.00
10:16:40 AM all 1.00 0.00 0.00 0.00 0.00 99.00
Average: all 5.86 0.00 0.40 0.20 0.00 93.54
注:
- %user:用户模式下消耗的CPU时间比例。
- %nice:通过nice改变了进程调度优先级的进程,在用户模式下消耗的CPU时间比例。
- %system:系统模式下消耗的CPU时间比例。
- %iowait:CPU等待磁盘I/O导致空闲状态消耗的时间比例。
- %steal:利用Xen等操作系统虚拟化技术,等待其它虚拟CPU计算占用的时间比例。
- %idle:CPU空闲时间比例。
执行如下命令,查看平均负载。
sar -q 1 60
系统显示类似如下。
sar -q 1 6Linux 3.10.0-123.9.3.el7.x8664 (iZ23pddtofdZ) 07/04/2016 _x86_64 (1 CPU)
10:23:13 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
10:23:14 AM 0 142 0.00 0.01 0.05 0
10:23:15 AM 0 142 0.00 0.01 0.05 0
10:23:16 AM 0 142 0.00 0.01 0.05 0
10:23:17 AM 0 142 0.00 0.01 0.05 0
10:23:18 AM 0 142 0.00 0.01 0.05 0
10:23:19 AM 0 142 0.00 0.01 0.05 0
Average: 0 142 0.00 0.01 0.05 0
注:指定-q参数后,可以查看运行队列中的进程数、系统上的进程大小、平均负载等信息。与其它命令相比,随时间变化查看各项指标的情况。
- runq-sz:运行队列的长度,即等待运行的进程数。
- plist-sz:进程列表中进程(processes)和线程(threads)的数量。
- ldavg-1:最后1分钟的系统平均负载。
- ldavg-5:过去5分钟的系统平均负载。
- ldavg-15:过去15分钟的系统平均负载。
执行如下命令,查看内存负载。
sar -r 1 3
系统显示类似如下。
sar -r 1 3
Linux 3.10.0-123.9.3.el7.x8664 (iZ23pddtofdZ) 07/04/2016 _x86_64 (1 CPU)
10:27:34 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
10:27:35 AM 275992 740664 72.85 181552 315340 362052 35.61 471216 115828 60
10:27:36 AM 276024 740632 72.85 181552 315340 362052 35.61 471220 115828 64
10:27:37 AM 276024 740632 72.85 181552 315340 362052 35.61 471220 115828 64
Average: 276013 740643 72.85 181552 315340 362052 35.61 471219 115828 63
注:
- kbmemfree:该值和free命令中的free值基本一致,它不包括buffer和cache空间。
- kbmemused:该值和free命令中的used值基本一致,它包括buffer和cache空间。
- %memused:物理内存使用率,该值是kbmemused和内存总量(不包括Swap内存)的百分比。
- kbbuffers和kbcached:这两个值和free命令中的buffer和cache一致。
- kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存,即RAM加上Swap的内存。
- %commit:该值是kbcommit与内存总量(包括Swap内存)的百分比。
执行如下命令,查看内存负载。
sar -W 1 3
系统显示类似如下。
Linux 3.10.0-123.9.3.el7.x8664 (iZ23pddtofdZ) 07/04/2016 _x86_64 (1 CPU)
10:28:59 AM pswpin/s pswpout/s
10:29:00 AM 0.00 0.00
10:29:01 AM 0.00 0.00
10:29:02 AM 0.00 0.00
Average: 0.00 0.00
注:
- pswpin/s:每秒从交换分区到系统的交换页面(Swap page)数量。
- pswpout/s:每秒从系统交换到Swap的交换页面(Swap page)的数量。
sar命令的参数说明如下,注意区分大小写。
htop是Linux系统中的一个互动进程查看器,可以让用户进行交互式操作,可横向或纵向滚动浏览进程列表,支持鼠标操作。用户可以安装htop,监控服务器的负载。
yum install htop
功能键 | 对应功能 | 说明 |
F1 | Invoke htop Help | 查看htop帮助说明 |
F2 | Htop Setup Menu | htop配置菜单 |
F3 | Search for a Process | 搜索进程 |
F4 | Incremental process filtering | 进程过滤器 |
F5 | Tree View | 显示树形结构 |
F6 | Sort by a column | 选择排序方式 |
F7 | Nice - (change priority) | 可减少nice值,用于提高对应进程的优先级 |
F8 | Nice + (change priority) | 可增加nice值,用于降低对应进程的优先级 |
F9 | Kill a Process | 结束指定进程 |
F10 | Quit htop | 结束htop |
在htop界面,用户可以通过鼠标单击相关进程、列、功能键,也可以通过上下键或 PgUP、PgDn 键选定想要的进程,左右键或 Home、End 键移动字段,常用的快捷键如下所示。
Space:标记或取消标记一个或多个进程。
s:选择某一进程,按 s 键后,用strace追踪进程的系统调用。
l:显示进程打开的文件。如果安装了lsof,按此键可以显示进程所打开的文件。
M:按Memory使用率排序。
P:按CPU使用率排序。
T:按Time+使用率排序。
F:跟踪进程,如果排序顺序引起选定的进程在列表上随意移动,让选定条跟随该进程。这对监视一个进程非常有用。这种方式,用户可以让特定进程在屏幕上一直可见。使用方向键会停止该功能。
K:显示或隐藏内核线程。
H:显示或隐藏用户线程。
Ctrl和L:刷新界面
/
, 然后可以通过输入进程名进行搜索,例如搜索ssh进程。t
或按 F5,显示树形结构,与pstree显示效果类似,可以看到所有程序树状执行的结构。