美文网首页linux
Linux中cpu与内存性能监测

Linux中cpu与内存性能监测

作者: caoxinyiyi | 来源:发表于2018-09-07 16:24 被阅读23次

    现在工作中需要,需要重点学习一下,如何看linux的机器的性能。

    top命令

    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。主要看

    Cpu(s): 19.6%us,  0.5%sy,  0.0%ni, 79.4%id,  0.5%wa,  0.0%hi,  0.0%si,  0.0%st
    
    19.6%us 用户空间占用CPU百分比
    0.3% sy 内核空间占用CPU百分比
    
    PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
     9346 root      20   0 7957m 2.5g  16m S 226.7  9.0 115875:55 java
     5716 work      20   0  716m 274m 7124 S  3.3  1.0 443:03.03 wtable-server
    
    PR:进程的优先级别,越小越优先被执行
    VIRT:进程占用的虚拟内存
    RES:进程占用的物理内存
    %CPU:进程占用CPU的使用率
    %MEM:进程使用的物理内存和总内存的百分比
    

    top 运行中可以通过 top 的内部命令对进程的显示方式进行控制, 最主要是如下的结果命令

    N - 以 PID 的大小的顺序排列表示进程列表
    P - 以 CPU 占用率大小的顺序排列进程列表
    M - 以内存占用率大小的顺序排列进程列表
    q - 退出 top
    

    sar命令

    sar命令也是Linux系统中重要的性能监测工具之一,它可以周期性地对内存和CPU使用情况进行采样。
    基本语法:

    sar t [n]  , t为采样间隔,是必选的, n为采样次数,是可选的
    

    常用选项:

    -u:CPU利用率
    -r  内存利用率
    -R  内存状况
    -b  I/O 和传输速率信息状况
    -q  队列长度和平均负载
    -S  交换空间利用率
    

    示例:

    Linux 2.6.32-504.el6.x86_64 (bjm6-191-106.58os.org)     2018年09月07日     _x86_64_    (8 CPU)
    
    15时33分45秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
    15时33分46秒     all     25.44      0.00      0.63      0.38      0.00     73.55
    平均时间:     all     25.44      0.00      0.63      0.38      0.00     73.55
    

    vmstat命令

    vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。相比top,它可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。
    基本语法:

    vmstat t [n] , t为采样间隔,是必选的, n为采样次数,是可选的, 当未设置n的时候,会一直采样
    
    > vmstat 1 1
    procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
    31  0 1874084 1294596 327952 18367116    0    0     0     9    0    0  7  1 92  0  0
    r 表示运行队列(就是说多少个进程真的分配到CPU),当这个值超过了CPU数目,就会出现CPU瓶颈了,这个也和top的负载有关系,一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。top的负载类似每秒的运行队列。如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。
    b 表示阻塞的进程
    swpd 虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了
    free   空闲的物理内存的大小
    us 用户CPU时间
    sy 系统CPU时间
    id  空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率
    
    

    iostat命令

    iostat命令主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。
    入门使用:

    iostat -d -k 1 2
    参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;1表示数据显示每隔1秒刷新一次, 2是总共取2次的数据,是可选的。如果2没有填这个参数,则一直会每隔1秒进行刷新。
    

    运行结果:

    > iostat -d -k 1 1
    Linux 2.6.32-504.el6.x86_64 (bjm6-191-106.58os.org)     2018年09月07日     _x86_64_    (8 CPU)
    
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    sda               6.76         2.03        66.86  145694346 4789234140
    
    tps:该设备每秒的传输次数。"一次传输"意思是"一次I/O请求"。多个逻辑请求可能会被合并为"一次I/O请求"。"一次传输"请求的大小是未知的。
    kB_read/s:每秒从设备(drive expressed)读取的数据量;
    kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;
    kB_read:读取的总数据量;
    kB_wrtn:写入的总数量数据量;这些单位都为Kilobytes。
    
    

    free命令

    > free
                 total       used       free     shared    buffers     cached
    Mem:      28726748   27418708    1308040       1180     327952   18413396
    -/+ buffers/cache:    8677360   20049388
    Swap:     32767996    1874084   30893912
    
    Shared:多个进程共享的内存总额
    Buffers/cached:磁盘缓存的大小
    第三行(-/+ buffers/cached):
    used:已使用多大。
    free:可用有多少。
    从应用程序的角度来说,可用内存=系统free memory+buffers+cached
    

    相关文章

      网友评论

        本文标题:Linux中cpu与内存性能监测

        本文链接:https://www.haomeiwen.com/subject/rvscgftx.html