知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

【人在运维途_02】20个Linux系统内置监视工具: vmstat和netstat

发布时间:2014-09-05 14:58:10作者:知识屋

【人在运维途_02】20个Linux系统内置监视工具: vmstat和netstat
 
此文是人在途之运维的第二篇、第一篇请参见:【人在运维途_01】20个Linux系统内置监视工具:top
       闲言少叙、看招哈O(∩_∩)O~
 
       ⑵ vmstat 
          
          写在前面的话、这里 Rocky 唠嗑一点、私下认为、vmstat 最佳实践也该是:
          "到底哪个部分的资源被使用的最为频繁"
          
          先瞧瞧 vmstat 的输出
 
[plain] 
[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的输出:
 
[plain] 
[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
[plain] 
[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 那个网络服务关闭
[plain] 
[root@localhost ~]# kill -9 4379  
[root@localhost ~]# killall -9 dnsmasq  
 
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜