linux环境下查看系统负载的几种方式
一、uptime和w命令
uptime
命令和w
命令都可以显示系统当前的负载:
ma@centos7:~$ uptime
09:37:15 up 19 days, 20 min, 1 user, load average: 0.00, 0.01, 0.05
ma@centos7:~$ w
09:37:17 up 19 days, 20 min, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
ma pts/0 200.200.65.82 09:28 5.00s 0.01s 0.00s w
- 09:37:15 up 19 days, 20 min:系统启动时间
- 1 user:当前有一个用户在线
- load average: 0.00, 0.01, 0.05:1分钟、5分钟和15分钟内的cpu平均负载
关于系统负载
系统平均负载被定义为在特定时间间隔内运行队列中的平均进程数,如果一个进程满足以下条件则其就会位于运行队列中:
- 它没有在等待I/O操作的结果
- 它没有主动进入等待状态(也就是没有调用
wait
) - 没有被停止(例如:等待终止)
一般来说,每个CPU内核当前活动进程数不大于3,则系统运行表现良好!当然这里说的是每个cpu内核,如果主机是四核cpu的话,那么只要uptime最后输出的一串字符数值小于12即表示系统负载不是很严重。如果达到20,那就表示当前系统负载非常严重。
二、/proc/loadavg
/proc/loadavg
也能显示系统的负载信息:
ma@centos7:~$ cat /proc/loadavg
0.01 0.02 0.05 1/199 19643
前面三个也是分别表示1分钟、5分钟以及15分钟的系统平均负载。后面的1/199
表示系统当前共有199个进程,其中1个进程处于运行状态。19643
表示最后一个运行的进程ID。
三、查看CPU负载情况
mpstat
命令可以打印出当前系统的cpu信息,统计当前CPU的各项指标信息:
ma@centos7:~$ mpstat
Linux 3.10.0-862.14.4.el7.x86_64 (centos7) 05/07/19 _x86_64_ (2 CPU)
10:03:33 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
10:03:33 all 0.03 0.00 0.03 0.00 0.00 0.07 0.09 0.00 99.78
%user
:在internal时间段里,用户态的CPU时间(%),不包含nice值为负进程。(usr/total)*100%nice
:在internal时间段里,nice值为负进程的CPU时间(%)。(nice/total)*100%sys
:在internal时间段里,内核时间(%)。(system/total)*100%iowait
:在internal时间段里,硬盘IO等待时间(%)。(iowait/total)*100%irq
:在internal时间段里,硬中断时间(%)。(irq/total)*100%soft
:在internal时间段里,软中断时间(%)。(softirq/total)*100
常用参数
-P CPU
:打印指定CPU的信息,默认只打印所有CPU汇总后的统计数据,加上-P ALL
会把每个CPU的统计信息都打印出来。interval times
:每隔interval统计一次信息,共统计times次。
例如,每1秒打印一次cpu信息,共打印2次:
最后会针对这三次生成一次统计信息。
四、查看内存
free
命令可以查看当前的内存:
maqian@os:~$ free -m
total used free shared buff/cache available
Mem: 16285 5096 10964 17 223 11057
Swap: 29663 0 29663
Mem
表示的是系统的物理内存,Swap
是虚拟内存。
五、使用top查看CPU和内存占用
top
命令可以查看当前系统下所有进程的CPU和内存占用情况:
输入命令后会进入交互式界面,在交互式页面输入P
可以对CPU占用排序,输入M
对内存占用排序。
此处评论已关闭