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对内存占用排序。

最后修改:2019 年 07 月 16 日
喜欢就给我点赞吧