监控系统的状态八大命令

时间:2024-02-23 18:06:13

一、使用w命令查看当前系统的负载

1、查看当前系统的负载,如下图所示:

  

  第一行从左到右显示的信息依次为:时间、系统运行时间、登录用户数、平均负载。

  第二行告诉我们当前登录的用户名及其登录地址等。

  最应该关注的是第一行中的load average:第一个数值表示1分钟内系统的平均负载值,第二个数值表示5分钟内系统的平均负载值,第三个数值表示15分钟内系统的平均负载值,其中着重看第一个值,它表示单位时间段内使用CPU的活动进程数,值越大说明当前服务器的压力越大,一般情况下,这个值只要不超过服务器的CPU数量就没有关系。

2、查看系统CPU的方法:# cat /proc/cpuinfo 

  这个文件输出后有几段信息,虚拟机中就有几个CPU,也可以用#grep -c \'processor\' /proc/cpuinfo命令直接显示CPU的数量。

 

二、vmstat命令监控系统的状态

1、用vmstat查看系统的状态:

  

 (1)procs显示进程的相关信息:

    r:表示运行或等待CPU时间片的进程数。

    b:表示等待资源的进程数。

(2)memory显示内存的相关信息:

    swpd:表示切换到交换分区中的内存数量,单位为KB。

    free:表示当前空闲的内存数量,单位为KB。

    buff:表示(即将写入磁盘的)缓冲大小,单位为KB。

    cache:表示(从磁盘中读取的)缓存大小,单位为KB。

(3)swap显示内存的交换情况:

    si:表示交换区写入内存的数据量,单位为KB。

    so:表示由内存写入交换区的数据量,单位为KB。

(4)io显示磁盘的使用情况:

    bi:表示从块设备读取数据的量(读磁盘),单位为KB。

    bo:表示从块设备写入数据的量(写磁盘),单位为KB。

(5)system显示采集间隔内发生的中断次数。

    in:表示在某一时间间隔内观测到的每秒设备的中断次数。

    cs:表示每秒产生的上下文切换次数。

(6)cpu显示CPU的使用状态。

    us:显示用户下所花费CPU的时间百分比。

    sy:显示系统花费CPU的时间百分比。

    id:表示CPU处于空闲状态的时间百分比。

    wa:表是I/O等待所占用CPU的时间百分比。

    st:表示被偷走的CPU所占百分比(一般都为0,不用关注)。

  注:重点关注一下r、b、si、so、bi、bo这几列信息。

  我们查看系统状态时,通常都是使用如下形式:

    #vmstat 1 5 或者 #vmstat 1  

  前者是每隔1秒输出一次状态,共输出5次,后者是每隔1秒输出一次状态且一直输出,直到按ctrl+C结束。

 

三、top命令

1、用top命令显示进程所占的系统资源:

  top命令用于动态监控进程所占的系统资源,每隔3秒变一次,它的特点是把占用系统资源(CPU、内存、磁盘I/O等)最高的进程放到最前面。

  如下图所示:

  

  # top -bn1,它表示非动态打印系统资源的使用情况,可以用在shell脚本中, 如下图所示:

  

   此外top状态下,shift+m可以按照内存使用大小排序,按数字1可以列出所有核CPU的使用状态。

 

四、用sar命令监控系统状态

1、sar命令:

  sar可以监控系统几乎所有资源的状态,比如平均负载、网卡流量、磁盘状态、内存使用等。如果没有请用#yum install -y sysstat安装。

1)查看网卡流量:sar -n DEV,具体用法如下图: 

  

  IFACE这一列为设备名称,rxpck/s这一列表示每秒进入收取的包的数量,txpck/s这一列表示发送出去的包的数量,rxkB/s这一列表示每秒收取的数据量,

  txkB/s这一列表示每秒发送的数据量。

(2)-f:可以查看某一天的网卡流量历史,后面跟文件名,如下图所示:

  

 (3)查看历史负载sar -q,这个命令有助于我们查看服务器在过去某个时间的负载状况,

  如下图所示:

   

 

五、nload命令

1、用nload命令查看网卡流量:

  可以用# yum install -y epel-release; yum install -y nload 命令安装,安装之后直接运行,

  结果如下图所示:

  

   最上面一行为网卡名字以及IP地址,按向右的箭头可以查看其他网卡的网络流量,Incoming为进入网卡的流量,Outgoing为网卡出去的流量。

 

六、free命令

1、用free命令查看内存的使用情况:

  

   total:内存的总大小

  used:真正使用内存的大小。

  free:剩余物理内存大小(没有被分配,纯剩余)。

  shared:共享内存大小,不用关注它。

  buff/cache:分配给buffer和cache的内存总共有多大。

  available:系统可使用内存有多大,它包含了free,还没有被占用的这部分buffer和cache再加上free就是available。

  free还支持-m、-g和-h选项,分别是以MB、GB和用合适的单位打印出来,如下图所示:

  

   隐藏公式:total=used+free+buff/cache

  buffer和cache的区别:数据经过CPU计算,即将要写入磁盘,这时用的内存为buffer,CPU要计算时,需要把数据从磁盘中读出来,

  临时先放到内存中,这部分就是cache。

 

七、ps命令

1、用ps命令查看系统进程:

  # ps aux 这是专门显示系统进程的命令,如下图所示:

  

   PID:表示进程的ID,终止一个进程时,直接kill+进程的pid。

  STAT:进程的状态,分为以下几种:

    D:不能中断的进程;

    R:正在运行中的进程;

    S:已经中断的进程;

    T:已经停止或暂停的进程;

    W:没有足够的内存页分配;

    X:已经死掉的进程;

    Z:僵尸进程,即杀不掉、打不死的垃圾进程,占用系统一点资源;

    <:高优先级进程;

    N:低优先级进程;

    L:在内存中被*了内存分页;

    s:主线程;

    l:多线程进程;

    +:在前台运行的进程,比如现在的ps aux。

 

八、netstat命令

1、用netstat命令查看网络状况:

  用来打印网络连接状况、系统所开放端口、路由表等信息。如果没有该命令,可用# yum install -y net-tools命令安装,

  安装之后查看网络状况,如下图所示:

  

   常用选项:

    -lnp:打印当前系统启动哪些端口。

    -an:打印网络连接状况。