使用w查看系统负载、vmstat命令、top命令、sar命令、nload命令

简介:

使用w查看系统负载

系统平均负载被定义为在特定时间间隔内运行队列中的平均进程数

如果一个进程满足以下条件则其就会位于运行队列中:

它没有在等待I/O操作的结果

它没有主动进入等待状态(也就是没有调用'wait')

没有被停止(例如:等待终止)



1、直接输出w

[root@centos7 ~]# w

第一行 15:02:01 up 25 min,  3 users,  load average: 0.00, 0.01, 0.04

第二行  USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT

第三行  root     tty1                      14:36   25:05   0.01s  0.01s -bash

第四行  root     pts/0    192.168.100.100  14:37   23:05   9.18s  9.17s top

第五行  root     pts/1    192.168.100.100  15:01    1.00s  0.04s  0.02s w


第一行:当前系统时间,up 25min:启动25分钟;3 users:目前登录几个用户;load average:系统负载:1分钟  5分钟  15分钟 和cpu有关系,单位时间内使用cpu活动的进程有多少个,最理想的状态:cpu个数(逻辑cpu,不是物理cpu),即负载值不超过1(cpu个数),一分钟查看的数字最能体现当前负载情况

[root@centos7 ~]# cat /proc/cpuinfo 

processor: 0

0:表示一颗,1表示两颗


2、uptime和w一样

[root@centos7 ~]# uptime

 15:13:28 up 37 min,  4 users,  load average: 0.00, 0.01, 0.04


vmstat命令

什么原因导致cpu不正常了,系统的瓶颈在哪里,通过vmstat查看


[root@centos7 ~]# vmstat 

进程                内存            交换分区    磁盘IO  系统        cpu

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----

 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

 2  0      0 245120    948 120364    0    0    37     4   38   64  0  1 99  0  0


每一秒显示一次,只需要显示5次

[root@centos7 ~]# vmstat 1 5


只需要关注:r:有多少个进程处于run状态;1个cpu处理10个进程;那么cpu轮流排队处理进程,只要排队就是r的状态  ;当这个值超过了CPU数目,就会出现CPU瓶颈了;

如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。

b: 阻塞的进程;被网络,硬盘显示处理等待状态,卡死了,block;有多少个进程在等待

swapd:当数字不停变换,表示内存不够;

如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。

si:有多少kb数据从swap进入到内存中

so:有多少从内存出来的到swap

bi:从磁盘读,判断磁盘读   

bo:从磁盘写,判断磁盘写

us:用户占用cpu,比如mysql,http,表示用户态的资源,长时间大于50,表示资源不够,一共是100

sy:系统态

id:空闲的

us+sy+id=100

wa:等待cpu的百分百,有多少进程在等待,这列很大表示cpu不够用


top命令

查看系统具体哪个进程使用情况

默认3秒显示一次动态的刷新

Tasks: 350 total,   2 running, 348 sleeping,   0 stopped,   0 zombie

总共的任务            2个在运行    348在休眠    停止        主进程不存在,只有子进程运行

cpu最高的在前面;按P用cpu排序

mem:按M排序

top -bn1:一次性的把top列出来

top -c:更加详细的command显示

kill -9 PID


sar命令

监控系统状态

1、yum install -y sysstat

/var/log/sa/sa29 每隔一段时间生成的日志

[root@centos7 ~]# sar -n DEV -f /var/log/sa/sa29 (这个是二进制文件)查看当天的日志,也可以一个月内的日志

可以直接cat sar -n DEV -f /var/log/sa/sar29 

2、监控网卡流量

-n (network):网卡设备

1:表示1秒查看一次

[root@centos7 ~]# sar -n DEV 1

第一列:时间

第二列:网卡名称

第三列(rxpck/s):每秒接收的数据包大小;几千是正常的,上万就得关注了

第四列(txpck/s):每秒发送的数据包大小

rxkB/s  txkB/s :接收到的数据流量和发送的数据流量,单位是kB/s

rxcmp/s   txcmp/s  rxmcst/s:没什么意义


Linux 3.10.0-327.el7.x86_64 (centos7) 10/29/2017 _x86_64_(1 CPU)


07:09:44 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s

07:09:45 PM eno16777736      1.01      1.01      0.06      0.17      0.00      0.00      0.00

07:09:45 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00


07:09:45 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s

07:09:46 PM eno16777736      1.00      1.00      0.06      0.37      0.00      0.00      0.00

07:09:46 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00


3、查看系统负载

[root@centos7 ~]# sar -q 1 5

runq-sz:运行队列的长度(等待运行的进程数)。

plist-sz:进程列表中进程(processes)和线程(threads)的数量。

ldavg-1:最后 1 分钟的系统平均负载(System load average)。

ldavg-5:过去 5 分钟的系统平均负载。

ldavg-15:过去 15 分钟的系统平均负载。

12:16:41 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15

12:16:44 PM         0       147      0.00      0.01      0.00

12:16:47 PM         0       147      0.00      0.01      0.00

12:16:50 PM         0       147      0.00      0.01      0.00

Average:            0       147      0.00      0.01      0.00


4、监控cpu

[root@test fc]# sar -u 1 3

%usr:用户进程消耗的 CPU 时间百分比。

%nice: 运行正常进程消耗的 CPU 时间百分比。

%system:系统进程消耗的 CPU 时间百分比。

%iowait: I/O 等待所占 CPU 时间百分比。

%idle: CPU 空闲状态的时间百分比。

Linux 2.6.32-573.el6.x86_64 (test)  11/02/2017  _x86_64_ (4 CPU)

12:09:50 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle

12:09:51 PM     all      0.00      0.00      0.25      0.00      0.00     99.75

12:09:52 PM     all      0.00      0.00      0.00      0.00      0.00    100.00

12:09:53 PM     all      0.00      0.00      0.25      0.00      0.00     99.75

Average:        all      0.00      0.00      0.17      0.00      0.00     99.83

总结:在所有的显示中,我们应主要注意%iowait和%idle, %iowait的值过高,表示硬盘存在 I/O 瓶颈, %idle值高,表示 CPU 较空闲,如果%idle值高但系统响应慢时,有可能是 CPU 等待分配内存, 此时应加大内存容量。 %idle 值如果持续低于 10,那么系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU。

5、IO传输速率的监控

[root@test fc]# sar -b 3 3

Linux 2.6.32-573.el6.x86_64 (test)  11/02/2017  _x86_64_ (4 CPU)

 tps:每秒钟物理设备的 I/O 传输总量。

 rtps:每秒钟从物理设备读入的数据总量。

 wtps:每秒钟向物理设备写入的数据总量。

 bread/s:每秒钟从物理设备读入的数据量,单位为 块/s。

 bwrtn/s:每秒钟向物理设备写入的数据量,单位为 块/s。

12:14:15 PM       tps      rtps      wtps   bread/s   bwrtn/s

12:14:18 PM      0.00      0.00      0.00      0.00      0.00

12:14:21 PM      0.00      0.00      0.00      0.00      0.00

12:14:24 PM      0.00      0.00      0.00      0.00      0.00

Average:         0.00      0.00      0.00      0.00      0.00


总结:

要判断系统瓶颈问题,有时需几个 sar 命令选项结合起来

怀疑 CPU 存在瓶颈,可用 sar -u 和 sar -q 等来查看

怀疑内存存在瓶颈,可用 sar -B、 sar -r 和 sar -W 等来查看

怀疑 I/O 存在瓶颈,可用 sar -b、 sar -u 和 sar -d 等来查看




nload命令

1、[root@centos7 ~]# yum install epel-release

2、[root@centos7 ~]# yum install nload

3、[root@centos7 ~]# nload

可以查看当前的,平均的,最大的,最小的,总共的带宽











本文转自方向对了,就不怕路远了!51CTO博客,原文链接: http://blog.51cto.com/jacksoner/1977194,如需转载请自行联系原作者












相关文章
|
3月前
|
Prometheus 监控 Cloud Native
在Linux中,如何使用iostat、sar、netstat等工具进行硬件资源监控?
在Linux中,如何使用iostat、sar、netstat等工具进行硬件资源监控?
|
消息中间件 监控 网络协议
linux性能监控:CPU监控命令之dstat命令
linux性能监控:CPU监控命令之dstat命令
538 0
linux性能监控:CPU监控命令之dstat命令
|
监控 Linux
linux性能监控:CPU监控命令之mpstat命令
linux性能监控:CPU监控命令之mpstat命令
182 0
linux性能监控:CPU监控命令之mpstat命令
|
监控 Linux
linux性能监控:CPU监控命令之pidstat命令
linux性能监控:CPU监控命令之pidstat命令
523 0
linux性能监控:CPU监控命令之pidstat命令
|
监控 Linux BI
linux性能监控:CPU监控命令之vmstat命令
linux性能监控:CPU监控命令之vmstat命令
173 0
linux性能监控:CPU监控命令之vmstat命令
|
缓存 运维 监控
【Linux】综合性命令及解析【top、htop、vmstat、dstat、glances、sar】
top命令的功能是用于实时显示系统运行状态,包含处理器、内存、服务、进程等重要资源信息。运维工程师们常常会把top命令比作是“加强版的Windows任务管理器”,因为除了能看到常规的服务进程信息以外,还能够对处理器和内存的负载情况一目了然,实时感知系统全局的运行状态,非常适合作为接手服务器后执行的第一条命令。
371 0
【Linux】综合性命令及解析【top、htop、vmstat、dstat、glances、sar】
|
固态存储
iostat命令
摘要: 一、介绍 iostat用于监视系统IO以及CPU使用情况。 二、安装 sudo apt-get install sysstat 三、语法和选项、参数 语法:iostat [选项] [参数] 选项: -c:仅显示CPU使用情况 -d:仅显示设备IO情况 -k:显示状态以kb/s为单位 -m:显示状态以
204 0