前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux系统管理工具-vmstat、top、sar、nload、w命令

Linux系统管理工具-vmstat、top、sar、nload、w命令

作者头像
阿dai学长
发布2019-04-03 14:48:13
1.4K0
发布2019-04-03 14:48:13
举报
文章被收录于专栏:阿dai_linux阿dai_linux

第十章 Linux日常运维管理

10.1 查看系统负载

w命令

w命令用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。执行这个命令可得知目前登入系统的用户有那些人,以及他们正在执行的程序。单独执行w命令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。

  • 查看系统负载(w)
代码语言:javascript
复制
[root@adai003 ~]# w
 11:17:30 up 13 min,  2 users,  load average: 0.00, 0.04, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      11:04   13:06   0.05s  0.05s -bash
root     pts/0    192.168.8.1      11:05    2.00s  0.02s  0.00s w

解析: 第一行从左边开始显示的信息依次是:时间,系统运行时间,登录用户数,平均负载(1min平均负载、5min平均负载、15min平均负载)。 load average:平均负载,即单位时间内CPU活动进程数,这个值越大说明服务器压力越大,一般该值不超过cpu数量就可以。

  • 查看服务器CPU数量(/proc/cpuinfo)
代码语言:javascript
复制
[root@adai003 ~]# cat /proc/cpuinfo
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 58
model name	: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
stepping	: 9
microcode	: 0x12
cpu MHz		: 2493.938
cache size	: 3072 KB
physical id	: 0
siblings	: 1
core id		: 0
cpu cores	: 1
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf eagerfpu pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt aes xsave avx f16c rdrand hypervisor lahf_lm ida arat epb pln pts dtherm fsgsbase smep xsaveopt
bogomips	: 4988.79
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

说明: 在此,professor即为系统CPU数量。

uptime命令

uptime命令能够打印系统总共运行了多长时间和系统的平均负载。uptime命令可以显示的信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。

代码语言:javascript
复制
[root@adai003 ~]# uptime
 17:22:58 up  6:18,  2 users,  load average: 0.00, 0.01, 0.05

注: uptime得到的信息和w第一行结果是一样的。

tty解析

TTY设备包括虚拟控制台,串口以及伪终端设备。

在Linux系统的设备特殊文件目录/dev/下,终端特殊设备文件一般有以下几种:

  • 串行端口 串行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终端设备。计算机把每个串行端口都看作是一个字符设备。这些串行端口所对应的设备名称是: /dev/tts/0(或/dev/ttyS0),/dev/tts/1(或/dev/ttyS1)等,设备号分别是(4,0),(4,1)等,分别对应于DOS系统下的COM1、COM2等。
  • 伪终端 伪终端(Pseudo Terminal)是成对的逻辑终端设备(即master和slave设备,对master的操作会反映到slave上)。
  • 控制终端 如果当前进程有控制终端(Controlling Terminal)的话,那么/dev/tty就是当前进程的控制终端的设备特殊文件。可以使用命令”ps –ax”来查看进程与哪个控制终端相连。对于你登录的shell,/dev/tty就是你使用的终端,设备号是(5,0)。使用命令”tty”可以查看它具体对应哪个实际终端设备。/dev/tty有些类似于到实际所使用终端设备的一个联接。
  • 控制台 在Linux 系统中,计算机显示器通常被称为控制台终端(Console)。它仿真了类型为Linux的一种终端(TERM=Linux),并且有一些设备特殊文件与之相关联:tty0、tty1、tty2 等。当你在控制台上登录时,使用的是tty1。使用Alt+[F1—F6]组合键时,我们就可以切换到tty2、tty3等上面去。tty1–tty6等称为虚拟终端,而tty0则是当前所使用虚拟终端的一个别名,系统所产生的信息会发送到该终端上(这时也叫控制台终端)。因此不管当前正在使用哪个虚拟终端,系统信息都会发送到控制台终端上。/dev/console即控制台,是与操作系统交互的设备,系统将一些信息直接输出到控制台上。只有在单用户模式下,才允许用户登录控制台。
  • 虚拟终端 在Xwindow模式下的伪终端.如在Kubuntu下用konsole,就是用的虚拟终端,用tty命令可看到/dev/pts/name, name为当前用户名。

10.2 vmstat命令

vmstat命令的含义为显示虚拟内存状态(“Viryual Memor Statics”),它可以报告关于进程、内存、I/O等系统整体运行状态。

vmwstat用法

语法:

  • vmstat 意思是静态显示内存状态一次。
代码语言:javascript
复制
[root@adai003 ~]# vmstat 
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 755756    876 138904    0    0     3     0   26   40  0  0 100  0  0
  • vmstat [n] 在此n代表数字 意思是以n秒每次的频率动态显示内存状态(按Ctrl+c结束命令)。
代码语言:javascript
复制
[root@adai003 ~]# vmstat 1
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 755756    876 138936    0    0     3     0   26   40  0  0 100  0  0
 0  0      0 755740    876 138936    0    0     0     0   29   41  0  0 100  0  0
 0  0      0 755740    876 138936    0    0     0     0   25   30  0  0 100  0  0
 0  0      0 755740    876 138936    0    0     0     0   30   39  0  1 99  0  0
 0  0      0 755740    876 138936    0    0     0     0   24   34  0  0 100  0  0
^C
  • vmstat [n] [m] 意思是每n秒显示一次,显示m次后命令结束!
代码语言:javascript
复制
[root@adai003 ~]# vmstat 1 3
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 755756    876 138936    0    0     3     0   26   40  0  0 100  0  0
 0  0      0 755616    876 138936    0    0     0     0   31   42  0  0 100  0  0
 0  0      0 755616    876 138936    0    0     0     0   34   45  0  0 100  0  0
[root@adai003 ~]# 

说明:

  • proc 显示进程相关信息
    • r:=run,表示运行中或等待cpu运行的进程数,如果该数长期大于服务器CPU个数,则说明CPU不够用了。
    • b:表示等待资源的进程数,如,等待I/O,内存等,这列的值如果长时间大于1,则需要关注一下。
  • memory 内存相关信息
    • swpd:表示切换到交换分区的内存量(当该数据不断变化时说明内存不足)
    • free:表示当前空闲的内存量
    • buff:缓冲大小
    • cache:缓存大小
  • swap 内存交换情况
    • si:=storage in,表示交换区写入到内存的数据量
    • so:=storage out,表示由内存写入到交换区的数据量
  • io 磁盘使用情况
    • bi:=block in,表示从块设备读取数据(写入内存)的量(即:读磁盘)
    • bo:=block out,表示(从内存读取)写入到块设备的数据(即:写磁盘) 注: 此处数据会直接关系到proc出的b的值。
  • system 显示采集间隔内发生的中断次数
    • in:表示在某一时间间隔中观测到的每秒设备中断数
    • cs:表示每秒产生的上下文切换次数
  • CPU 显示CPU的使用状态(us+sy+id=100%)
    • us:表示用户资源所花费CPU的百分比(当该值长时间>50时说明CPU数量不足)
    • sy:表示系统资源所花费CPU的百分比
    • id:表示CPU处于空闲状态的百分比
    • wa:=wait,表示等待使用CPU的百分比(该数值大说明CPU不足)
    • st:表示被偷走的CPU所占百分比(该值一般为0,不用关注)

10.3 top命令

top命令可以实时动态地(每3秒变一次)查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面,用热键可以管理。其特点是把占用系统资源(CPU,内存,磁盘IO等)最高的进程放在最前面,以确认是哪个进程占用内存。

top用法

语法: top [options] Options: -b:批量处理模式 -c:显示详细进程信息 -bn1:静态显示所有进程(该法多用于shell脚本)

代码语言:javascript
复制
[root@adai003 ~]# top
top - 23:28:08 up 12:24,  2 users,  load average: 0.00, 0.01, 0.05
Tasks:  84 total,   1 running,  83 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1008392 total,   754160 free,   113712 used,   140520 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.   740452 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                    
  490 root      20   0  302840   6340   4780 S  0.3  0.6   1:42.80 vmtoolsd                   
    1 root      20   0  125048   3560   2400 S  0.0  0.4   0:02.13 systemd                    
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.01 kthreadd                   
    3 root      20   0       0      0      0 S  0.0  0.0   0:00.21 ksoftirqd/0                
    6 root      20   0       0      0      0 S  0.0  0.0   0:01.39 kworker/u128:0             
……

注: 在top状态下(按q退出),按shift+m可以按内存使用大小进行排序(默认以CPU使用占比排序),按shift+p恢复按CPU使用占比排序,,按数字1可以显示每个CPU的状态。

说明:

  • 第一行是负载信息
  • 第二行是进程信息
  • 第三行是CPU使用信息
  • 第四行是内存使用信息
  • 第五行是交换区使用信息
  • 最下面是进程详细信息:
    • PID:表示进程在系统中的id号,可配合kill命令结束某进程
    • RES:表示进程所用物理内存大小(单位:KB)
    • %MEM:表示内存使用百分比(单位:KB)

10.4 sar命令

sar命令是Linux下系统运行状态统计工具,它将指定的操作系统状态(如,平均负载,网卡流量,磁盘状态,内存使用等)计数器显示到标准输出设备。它不同于其他系统状态监控工具的地方在于,它可以打印历史信息,可以显示从零点开始到当前时刻的系统状态信息。

sar用法

使用‘yum install -y sysstat’安装该命令!初次使用sar命令(不加选项、参数)会报错,原因是sar命令还没有生成相应的数据库文件。其数据库保存在‘/var/log/sa/’目录下,该目录下存放两种文件,分别以‘sa日期’&‘sar日期’的格式命名(区别是sar文件在第二天生成,可以使用cat命令查看;sa文件实时<每个整‘10’分钟更新一次>生成,是二进制文件,无法查看),最多保留一个月。

语法: sar [options] [参数] Options: -f:从指定文件提取报告

  • sar -n DEV m n 查看网卡流量(在此m、n的用法同vmstat命令!)
代码语言:javascript
复制
[root@adai003 ~]# sar -n DEV 1 2
Linux 3.10.0-514.el7.x86_64 (adai003) 	2017年07月11日 	_x86_64_	(1 CPU)

00时13分32秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
00时13分33秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
00时13分33秒     ens33      1.02      1.02      0.06      0.19      0.00      0.00      0.00

00时13分33秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
00时13分34秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
00时13分34秒     ens33      1.98      1.98      0.12      0.45      0.00      0.00      0.00

平均时间:     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
平均时间:        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:     ens33      1.51      1.51      0.09      0.32      0.00      0.00      0.00

说明:

  • rxpck/s:表示接收数据(包)的个数
  • txpck/s:表示发送数据(包)的个数
  • rxKB/s:表示接收的数据量
  • txKB/s:表示发送的数据量 注: 当rxpck/s的值大于4000或者rxKB/s的值大于5000时则可能是在被攻击(需配合抓包工具进一步确认)!
  • sar -q 查看系统负载(配合-f选项使用,查看历史负载)
代码语言:javascript
复制
[root@adai003 ~]# sar -q -f 
Linux 3.10.0-514.el7.x86_64 (adai003) 	2017年07月11日 	_x86_64_	(1 CPU)

00时10分01秒   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
00时20分01秒         1       101      0.00      0.01      0.05         0
00时30分01秒         2       102      0.00      0.01      0.05         0
平均时间:         2       102      0.00      0.01      0.05         0
  • sar -b 查看磁盘信息
代码语言:javascript
复制
[root@adai003 ~]# sar -b 1 3
Linux 3.10.0-514.el7.x86_64 (adai003) 	2017年07月11日 	_x86_64_	(1 CPU)

00时36分28秒       tps      rtps      wtps   bread/s   bwrtn/s
00时36分29秒      0.00      0.00      0.00      0.00      0.00
00时36分30秒      0.00      0.00      0.00      0.00      0.00
00时36分31秒      0.00      0.00      0.00      0.00      0.00
平均时间:      0.00      0.00      0.00      0.00      0.00

10.5 nload命令

使用前需要先安装该命令:

代码语言:javascript
复制
[root@adai003 ~]# yum install -y nload

注: 在安装此包前需要先安装yum扩展源:epel-release。

用法

代码语言:javascript
复制
[root@adai003 ~]# nload

注: 在该界面显示系统网络动态信息,可使用方向键在不同网卡之间进行切换,按q键退出,根据实时网速和总网速的比较可以评估网络状态!

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017/07/11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第十章 Linux日常运维管理
    • 10.1 查看系统负载
      • w命令
      • uptime命令
      • tty解析
    • 10.2 vmstat命令
      • vmwstat用法
    • 10.3 top命令
      • top用法
    • 10.4 sar命令
      • sar用法
    • 10.5 nload命令
      • 用法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档