zoukankan      html  css  js  c++  java
  • Linux 系统管理命令

    命令详解

    重要星级:

            ★★★★☆

    功能说明:

             vmstat 是 Virtual Memory Statistics ( 虚拟内存统计 ) 的缩写,利用 vmstat 命令可以对操作系统的内存信息、进程状态和 CPU 活动等进行监视。但是只能对系统的整体情况进行统计,无法对某个进程进行深入分析。

    语法格式:

        vmstat [option] [delay [count]]
        vmstat [选项]    [时间间隔 [次数]]

            说明:

                1. 在 iftop 命令后面的每一个选项里,每个元素之间都至少要有一个空格。
                2. delay 表示两次输出之间的间隔时间。
                3. count 表示按照 delay指定的时间间隔统计的次数。

    选项说明:

    -a :显示活跃和非活跃的内存
    
    -f :显示从系统启动至今的 fork 进程数量
    
    -m :显示 slab 信息
    
    -n :只在开始时显示一次各字段名称
    
    -s :显示内存相关统计信息及多种系统活动数量 ※
    
    -d :显示磁盘相关统计信息
    
    -p :显示指定磁盘分区统计信息
    
    -S :使用指定单位显示。参数有 k、K、m、M,分别代表 100010241 000 0001 048 576 字节( byte )。默认单位为 K ( 1024 byte )
    
    -t :统计信息带上时间戳

    使用范例:

    显示虚拟内存的使用情况 ( vmstat 5 6 ):

    [root@localhost :~]# vmstat         # 如果省略 "时间间隔""次数" 的参数,则仅显示一次报告后就退出
    procs  -----------memory----------  ---swap--  -----io---- -system-- ------cpu-----
     r  b   swpd   free   buff  cache   si   so     bi   bo   in   cs us sy id wa st
     1  0      8  76980    164 766248    0    0     9    16   28   24  0  0 100  0  0
    
    [root@localhost :~]# vmstat 5       # 表示每5秒钟更新一次输出信息,循环输出,按 Ctrl+C 组合键停止输出
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     1  0      8  71008    164 772624    0    0     8    15   28   24  0  0 100  0  0
     0  0      8  70984    164 772624    0    0     0     0   43   37  0  0 100  0  0
     0  0      8  70984    164 772624    0    0     0     0   49   41  0  0 100  0  0
     0  0      8  70984    164 772624    0    0     0     0   65   53  0  0 100  0  0
    ^C
    
    [root@localhost :~]# vmstat 5 6     # 表示每5秒钟更新一次输出信息,统计6次后停止输出
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id  wa st
     1  0    264  74236      0 767936    0    0     8    15   28   24  0  0 100  0  0
     0  0    264  71064      0 770868    0    0     0     0  442  250  0  3 97   0  0
     1  0    264  68244      0 773912    0    0     0     0  435  242  0  3 97   0  0
     0  0    264  65012      0 776968    0    0     0  3638  458  237  0  4 96   0  0
     0  0    264  63932      0 779476    0    0     0     6  362  208  0  3 97   0  0
     0  0    264  63932      0 779476    0    0     0     0   83   76  0  0 100  0  0
    [root@localhost :~]#

             以下是命令结果的详细说明:

    第一列:procs:
        1. r 列:the number of processes waiting for run time.
            表示运行和等待 CPU 时间片的进程数。( 如果等待运行的进程数越多,意味着CPU非常繁忙。另外,如果该参数长期大于和等于逻辑cpu个数,则CPU资源可能存在较大的瓶颈。 )
        2. b 列:the number of processes in uninterruptible sleep. 
            表示处在非中断睡眠状态的进程数。( 意味着进程被阻塞。主要是指被资源阻塞的进程对列数(比如IO资源、页面调度等),当这个值较大时,需要根据应用程序来进行分析,比如数据库产品,中间件应用等。 )
    
    第二列:memory:
    1. swpd 列:the amount of virtual memory used. 表示使用虚拟内存的大小。如果虚拟内存使用较多,可能系统的物理内存比较吃紧,需要采取合适的方式来减少物理内存的使用。swapd 不为0,并不意味物理内存吃紧,如果 swapd 没变化,si、so 的值长期为0,这也是没有问题的
    2. free 列:the amount of idle memory. 表示当前空闲的物理内存数量。 3. buff 列:the amount of memory used as buffers. 表示 buffers 的内存数量 ( 主要用于块设备缓存,单位:KB )。 4. cache 列:the amount of memory used as cache. 表示 cache 的内存数量 ( 主要用于缓存文件,单位:KB )。 5. inact 列:the amount of inactive memory. (-a option) 表示非活跃的内存总量。 6. active: the amount of active memory. (-a option) 表示活跃的内存总量。
    第三列:swap:
    1. si( swap in )列:Amount of memory swapped in from disk (/s). 表示由磁盘交换到 swap 虚拟内存的交换页数量,单位:KB/秒。也就是内存进入内存交换区的数量。如果这个值大于0,表示物理内存不够用或者内存泄露了 2. so( swap out )列:Amount of memory swapped to disk (/s). 表示由 swap 虚拟内存交换到磁盘的交换页数量,单位:KB/秒,如果这个值大于0,表示物理内存不够用或者内存泄露了
    3. 内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。 当看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,这个是不正确的。不能光看这一点,还要结合si和so,如果 free 很少,但是 si 和 so 也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。 当内存的需求大于RAM的数量,服务器启动了虚拟内存机制,通过虚拟内存,可以将 RAM 段移到 SWAP DISK 的特殊磁盘段上,
    这样会出现虚拟内存的页导出和页导入现象,页导出并不能说明RAM瓶颈,虚拟内存系统经常会对内存段进行页导出,但页导入操作就表明了服务器需要更多的内存了, 页导入需要从SWAP DISK上将内存段复制回RAM,导致服务器速度变慢。
    第四列:I
    /O项显示磁盘读写状况: 1. bi 列:Blocks received from a block device (blocks/s). 表示从块设备读入的数据总量 ( 即读磁盘,单位:块/s )。 2. bo 列:Blocks sent to a block device (blocks/s). 表示写入块设备的数据总量 ( 即写磁盘,单位:块/s )。
    第五列:system 显示采集间隔内发生的中断数:
    1. in 列:the number of interrupts per second, including the clock. 表示在某一时间间隔中观测到的每秒设备中断数,包括时钟中断。 2. cs 列:the number of context switches per second. 每秒产生的上下文 ( 环境 ) 切换次数。比如我们调用系统函数,就要进行上下文切换,而过多的上下文切换会浪费较多的 CPU 资源,这个数值应该越小越好。
    第六列:CPU 项显示了 CPU 的使用状态:
    1. us 列:time spent running non-kernel code. (user time, including nice time) 表示用户消耗的 CPU 时间 ( 非内核进程占用时间 )(单位为百分比)。us 的值比较高时,说明用户进程消耗的 CPU 时间多 2. sy 列:time spent running kernel code. (system time). 表示系统( 内核 )使用的 CPU 时间 ( 单位为百分比 )。sy 的值高时,说明系统内核消耗的 CPU 资源多,这并不是良性表现,我们应该检查原因。 3. id 列:time spent idle. Prior to Linux 2.5.41, this includes IO-wait time. 空闲的 CPU 的时间( 百分比 ),在 Linux 2.5.41 之前,这部分包含 IO 等待时间。 4. wa 列:time spent waiting for IO. Prior to Linux 2.5.41, shown as zero. 表示等待 IO 的 CPU 时间,在 Linux 2.5.41 之前,这个值为0 .这个指标意味着 CPU 在等待硬盘读写操作的时间,用百分比表示。wait 越大则机器 IO 性能就越差。说明 IO 等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈 ( 块操作 )。 5. st 列:time stolen from a virtual machine. Prior to Linux 2.6.11, unknown. 表示虚拟机占用的 CPU 时间的百分比。

    查看内存使用的详细信息 ( vmstat -s ):

    [root@localhost :~]# vmstat -s
         997948 K total memory
         154556 K used memory
         410924 K active memory
         325044 K inactive memory
          82296 K free memory
              0 K buffer memory
         761096 K swap cache
        2097148 K total swap
            520 K used swap
        2096628 K free swap
             3732 non-nice user cpu ticks
               42 nice user cpu ticks
             7159 system cpu ticks
          4269971 idle cpu ticks
              401 IO-wait cpu ticks
                0 IRQ cpu ticks
              281 softirq cpu ticks
                0 stolen cpu ticks
           280652 pages paged in
           559486 pages paged out
                0 pages swapped in
               20 pages swapped out
          1200688 interrupts
          1037152 CPU context switches
       1545624768 boot time
             2803 forks

            说明:这些信息分别来自于 /proc/meminfo、/proc/stat 和 /proc/vmstat 文件中

     查看磁盘的读/写:

    [root@localhost :~]# vmstat -d
    disk- ------------reads------------ ------------writes----------- -----IO------
           total merged sectors      ms  total merged sectors      ms    cur    sec
    sda     8291     47  561305   16707   4169    563 1118979   30026      0     12
    sr0        0      0       0       0      0      0       0       0      0      0
    dm-0    7114      0  540703   16390   4702      0 1114683   38429      0     11
    dm-1      94      0    4456      29     20      0     160     201      0      0
    [root@localhost :~]#

            说明:这些信息主要来自于 /proc/diskstats。其中的 merged 表示一次来自于合并的写/读请求,系统一般会把多个连接/临近的读/写请求合并到一起来操作。

     查看 /dev/sda1 磁盘的读写统计信息:

    [root@localhost :~]# vmstat -p /dev/sda1 
    sda1          reads   read sectors  writes    requested writes
                     966      11322         10       4136
    [root@localhost :~]# 

            说明:这些信息主要来自于 /proc/diskstats。各列的说明具体如下:

    1. reads :来自于该分区的读的次数。
    2. read sectors :来自于该分区的读扇区的次数。
    3. writes :来自于该分区的写的次数。 4. requested writes :来自于该分区的写请求次数
  • 相关阅读:
    php遇到Allowed memory size of 134217728 bytes exhausted问题解决方法
    sql语句 两表关联查询计算数量
    mui 关键词查询
    fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC sha
    mui mui-control-item获得选中的标签
    mui横向滑动菜单
    淘宝客类别id大全
    (大数据工程师学习路径)第二步 Vim编辑器----高级功能入门
    (大数据工程师学习路径)第二步 Vim编辑器----查找替换
    (大数据工程师学习路径)第二步 Vim编辑器----Vim文档编辑
  • 原文地址:https://www.cnblogs.com/clement-jiao/p/10170441.html
Copyright © 2011-2022 走看看