zoukankan      html  css  js  c++  java
  • 【人在运维囧途_02】20个Linux系统内置监视工具: vmstat 和 netstat

           此文是人在囧途之运维的第二篇、第一篇请参见:【人在运维囧途_01】20个Linux系统内置监视工具:top

           闲言少叙、看招哈O(∩_∩)O~

     

           ⑵ vmstat 
              
              写在前面的话、这里 Rocky 唠嗑一点、私下认为、vmstat 最佳实践也该是:
              "到底哪个部分的资源被使用的最为频繁"
              
              先瞧瞧 vmstat 的输出

    [root@Rocky ~]# vmstat 5 3
    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 1249892  29292 410624    0    0   143    25  101  206  2  2 94  2  0
     1  0      0 1249628  29316 410624    0    0     0    60   95  210  2  3 94  1  0
     1  0      0 1249644  29316 410624    0    0     0     0   93  189  0  0 100 0  0


              ① 项目【procs】显示与进程相关

                 r:等待运行的进程数量
                 b:被阻塞的进程数量

                 这 2 两列越多、代表系统越忙碌

                 
              ② 项目【memory】显示与内存相关
                 swpd:已使用的 swap 的容量(KB)
                 free:可用的物理内存(KB)
                 buff:被文件元数据使用的容量(KB)
                 cache:被文件数据本身使用的容量(KB)
                 
              ③ 项目【swap】显示与 swap 相关
                 si:数据从 SWAP 读取到 RAM(swap in)的大小(KB/秒)
                 so:数据从 RAM 写到 SWAP(swap out)的大小(KB/秒)
                 如果 si/so 比值太大、表示内存中的数据经常在磁盘和物理内存之间倒腾、系统性能很差
                 
              ④ 项目【io】显示与 磁盘读写相关
                 bi:向磁盘发送数据的速率(块/秒)
                 bo:从磁盘读取数据的速率(块/秒)
                 如果这部分的值越高、代表系统的 I/O 非常忙碌
                 
              ⑤ 项目【system】显示与系统活动相关
                 in:每秒被中断的进程数量
                 cs:在进程空间中进行上下文却换的速率
                 这两个数值越大、代表系统与周围设备(网卡、磁盘、时间钟等)通讯非常频繁
                 
              ⑥ 项目【cpu】显示与 CPU 负载相关
                 us:消费在用户进程的 CPU 百分比、 Oracle 进程属于这一类
                 sy:消费在系统进程的 CPU 百分比
                 id:可用 CPU 百分比
                 wa:消费在"等待 I/O"上的百分比
                 st:消费在虚拟机上的 CPU 百分比
                 
              
              下面列举一些常见用法
              
              Ⅰ 每秒一次、共计三次:vmstat 1 3


              
                 
           
    ⑶ netstat  
              
              偶照样外甥打灯笼、先表明一下自个态度、netstat 的最佳实践应该是
              "查看网络的连接状态"
              
              先看一下netstat的输出:

    [root@localhost ~]# netstat -lntp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
    tcp        0      0 127.0.0.1:2208              0.0.0.0:*                   LISTEN      3890/./hpiod        
    tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      4055/mysqld         
    tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      3604/portmap        
    tcp        0      0 192.168.122.1:53            0.0.0.0:*                   LISTEN      4379/dnsmasq        
    tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      3908/sshd           
    tcp        0      0 0.0.0.0:854                 0.0.0.0:*                   LISTEN      3640/rpc.statd      
    tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      3021/cupsd          
    tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      4099/sendmail       
    tcp        0      0 127.0.0.1:2207              0.0.0.0:*                   LISTEN      3895/python         
    tcp        0      0 :::5989                     :::*                        LISTEN      4382/cimservermain  
    tcp        0      0 :::22                       :::*                        LISTEN      3908/sshd     


              ① Local Address:本地的 IP:PORT 情况
              ② Foreign Address:远程的 IP:PORT 情况
              ③ State:连接状态、主要有 【ESTABLISED】【LISTEN】
              
              举个例子:
              
              找出目前系统上已在监听的网络连接及其PID

    [root@localhost ~]# netstat -lntp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
    tcp        0      0 127.0.0.1:2208              0.0.0.0:*                   LISTEN      3890/./hpiod        
    tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      4055/mysqld         
    tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      3604/portmap        
    tcp        0      0 192.168.122.1:53            0.0.0.0:*                   LISTEN      4379/dnsmasq        
    tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      3908/sshd           
    tcp        0      0 0.0.0.0:854                 0.0.0.0:*                   LISTEN      3640/rpc.statd      
    tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      3021/cupsd          
    tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      4099/sendmail       
    tcp        0      0 127.0.0.1:2207              0.0.0.0:*                   LISTEN      3895/python         
    tcp        0      0 :::5989                     :::*                        LISTEN      4382/cimservermain  
    tcp        0      0 :::22                       :::*                        LISTEN      3908/sshd  


              将上述的本地 192.168.122.1:53 那个网络服务关闭

    [root@localhost ~]# kill -9 4379
    [root@localhost ~]# killall -9 dnsmasq


  • 相关阅读:
    165. Compare Version Numbers
    164. Maximum Gap
    3、桶排序
    162. Find Peak Element
    160. Intersection of Two Linked Lists
    155. Min Stack
    154. Find Minimum in Rotated Sorted Array II
    153. Find Minimum in Rotated Sorted Array
    Linux/Unix系统编程手册 第二章:基本概念
    Linux/Unix系统编程手册 第一章:历史和标准
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/2989563.html
Copyright © 2011-2022 走看看