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

查看系统负载

w命令

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

查看系统负载(w)

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

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

查看服务器CPU数量有几个(/proc/cpuinfo)

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

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


uptime命令

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

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

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

vmstat命令

语法:

  • vmstat
    意思是静态显示内存状态一次。
Linux系统管理工具-w、vmstat、top、sar、nload命令

  • vmstat [n] 在此n代表数字
    意思是以n秒每次的频率动态显示内存状态(按Ctrl+c结束命令)。
Linux系统管理工具-w、vmstat、top、sar、nload命令

  • vmstat [n] [m]
    意思是每n秒显示一次,显示m次后命令结束!
Linux系统管理工具-w、vmstat、top、sar、nload命令

说明:

  • 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,不用关注)

 

top命令

语法: top [options]
Options:
-b:批量处理模式
-c:显示详细进程信息

-bn1:静态显示所有进程(该法多用于shell脚本)

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

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

说明:

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

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命令!)
Linux系统管理工具-w、vmstat、top、sar、nload命令

说明:

  • rxpck/s:表示接收数据(包)的个数

  • txpck/s:表示发送数据(包)的个数

  • rxKB/s:表示接收的数据量

  • txKB/s:表示发送的数据量
    注: 当rxpck/s的值大于4000或者rxKB/s的值大于5000时则可能是在被攻击(需配合抓包工具进一步确认)!

  • sar -q 查看系统负载(配合-f选项使用,查看历史负载)、

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

  • sar -b 查看磁盘信息
Linux系统管理工具-w、vmstat、top、sar、nload命令


nload命令

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

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

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

用法

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

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

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


扩展

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为当前用户名。