一分钟内检查Linux服务器性能? 9个性能检测常用的基本命令

Written by

in

文章目录
  • 命令返回的信息: 19:08:17              //系统当前时间 up 127 days,  3:00         //主机已运行时间,时间越大,说明你的机器越稳定 1 user                 // 用户连接数,是总连接数而不是用户数 load average: 0.00, 0.01, 0.05          // 系统平均负载,统计最近1,5,15分钟的系统平均负载
  • dmesg命令被用于检查和控制内核的环形缓冲区。kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息保存在/var/log/dmesg文件里。 常用选项: -c:显示信息后,清除ring buffer中的内容; -s<缓冲区大小>:预设置为8196,刚好等于ring buffer的大小; -n:设置记录信息的层级。
  • vmstat命令的含义为显示虚拟内存状态(“Virtual Memory Statistics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。 常用选项: -a:显示活动内页; -f:显示启动后创建的进程总数; -m:显示slab信息; -n:头信息仅显示一次; -s:以表格方式显示事件计数器和内存状态; -d:报告磁盘状态; -p:显示指定的硬盘分区状态; -S:输出信息的单位; 输出的信息: procs(进程) r: 运行队列中进程数量,这个值也可以判断是否需要增加CPU。(长期大于1); b: 等待IO的进程数量; memory(内存) swpd: 使用虚拟内存大小,如果swpd的值不为0,但是SI,SO的值长期为0,这种情况不会影响系统性能; free: 空闲物理内存大小; buff: 用作缓冲的内存大小; cache: 用作缓存的内存大小,如果cache的值大的时候,说明cache处的文件数多,如果频繁访问到的文件都能被cache处,那么磁盘的读IO bi会非常小; swap(交换分区) si: 每秒从交换区写到内存的大小,由磁盘调入内存; so: 每秒写入交换区的内存大小,由内存调入磁盘; 注意:内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。有些朋友看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,不能光看这一点,还要结合si和so,如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。 io(现在的Linux版本块的大小为1kb) bi: 每秒读取的块数; bo: 每秒写入的块数; 注意:随机磁盘读写的时候,这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大。 system(系统) in: 每秒中断数,包括时钟中断; cs: 每秒上下文切换数; 注意:上面2个值越大,会看到由内核消耗的CPU时间会越大。 cpu(以百分比表示) us: 用户进程执行时间百分比; us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速。 sy: 内核系统进程执行时间百分比; sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。 wa: IO等待时间百分比 wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。 id: 空闲时间百分比
  • mpstat命令指令主要用于多CPU环境下,它显示各个可用CPU的状态信息。这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。
  • pidstat用于打印各个进程对CPU的占用情况,类似top命令中显示的内容。pidstat的优势在于,可以滚动的打印进程运行情况,而不像top那样会清屏。
  • iostat命令被用于监视系统输入输出设备和CPU的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。 常用选项: -c:仅显示CPU使用情况; -d:仅显示设备利用率; -k:显示状态以千字节每秒为单位,而不使用块每秒; -m:显示状态以兆字节每秒为单位; -p:仅显示块设备和所有被使用的其他分区的状态; -t:显示每个报告产生时的时间; -V:显示版号并退出; -x:显示扩展状态。 详细说明:第二行是系统信息和监测时间,第三行和第四行显示CPU使用情况(具体内容和mpstat命令相同)。这里主要关注后面I/O输出的信息,如下所示: Device:监测设备名称 rrqm/s:每秒需要读取需求的数量 wrqm/s:每秒需要写入需求的数量 r/s:每秒实际读取需求的数量 w/s:每秒实际写入需求的数量 rsec/s:每秒读取区段的数量 wsec/s:每秒写入区段的数量 rkB/s:每秒实际读取的大小,单位为KB wkB/s:每秒实际写入的大小,单位为KB avgrq-sz:需求的平均大小区段 avgqu-sz:需求的平均队列长度 await:等待I/O平均的时间(milliseconds) svctm:I/O需求完成的平均时间 %util:被I/O需求消耗的CPU百分比
  • free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。 常用选项: -b:以Byte为单位显示内存使用情况; -k:以KB为单位显示内存使用情况; -m:以MB为单位显示内存使用情况; -o:不显示缓冲区调节列; -s<间隔秒数>:持续观察内存使用状况; -t:显示内存总和列; -V:显示版本信息。 返回信息: total:内存总数; used:已经使用的内存数; free:空闲的内存数; shared:当前已经废弃不用; buffers Buffer:缓存内存数; available 还可以被 应用程序 使用的物理内存大小;
  • sar命令是Linux下系统运行状态统计工具,它将指定的操作系统状态计数器显示到标准输出设备。sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据。取样数据和分析的结果都可以存入文件,使用它时消耗的系统资源很小。 常用选项: -A:显示所有的报告信息; -b:显示I/O速率; -B:显示换页状态; -c:显示进程创建活动; -d:显示每个块设备的状态; -e:设置显示报告的结束时间; -f:从指定文件提取报告; -i:设状态信息刷新的间隔时间; -P:报告每个CPU的状态; -R:显示内存状态; -u:显示CPU利用率; -v:显示索引节点,文件和其他内核表的状态; -w:显示交换分区状态; -x:显示给定进程的状态; 返回信息: IFACE ,网络接口名称; rxpck/s ,每秒接收到包数; txpck/s ,每秒传输的报数;(transmit packages) rxkB/s ,每秒接收的千字节数; txkB/s ,每秒发送的千字节数; rxcmp/s ,每秒接收的压缩包的数量; txcmp/s ,每秒发送的压缩包的数量; rxmcst/s,每秒接收的组数据包数量; 返回信息: active/s:发起的网络连接数量; passive/s:接收的网络连接数量; retrans/s:重传的数量;
  • top命令可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面,用热键可以管理。 常用选项: -b:以批处理模式操作; -c:显示完整的治命令; -d:屏幕刷新间隔时间; -I:忽略失效过程; -s:保密模式; -S:累积模式; -i<时间>:设置间隔时间; -u<用户名>:指定用户名; -p<进程号>:指定进程; -n<次数>:循环显示的次数; top交互命令: h:显示帮助画面,给出一些简短的命令总结说明; k:终止一个进程; i:忽略闲置和僵死进程,这是一个开关式命令; q:退出程序; r:重新安排一个进程的优先级别; S:切换到累计模式; s:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s; f或者F:从当前显示中添加或者删除项目; o或者O:改变显示项目的顺序; l:切换显示平均负载和启动时间信息; m:切换显示内存信息; t:切换显示进程和CPU状态信息; c:切换显示命令名称和完整命令行; M:根据驻留内存大小进行排序; P:根据CPU使用百分比大小进行排序; T:根据时间/累计时间进行排序; w:将当前设置写入~/.toprc文件中;
  • 目录
    • 1)uptime
    • 2) dmesg
    • 3)vmstat
    • 4)mpstat
    • 5)pidstat
    • 6)iostat
    • 7)free
    • 8)sar
    • 9)top

    作为一个Linux运维人员,主要就是对Linux服务器的性能做一些优化,本篇博文仅仅介绍如何性能检测常用的指令!

    命令返回的信息:

    19:08:17              //系统当前时间
    up 127 days,  3:00         //主机已运行时间,时间越大,说明你的机器越稳定
    1 user                 // 用户连接数,是总连接数而不是用户数
    load average: 0.00, 0.01, 0.05          // 系统平均负载,统计最近1,5,15分钟的系统平均负载

    dmesg命令被用于检查和控制内核的环形缓冲区。kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息保存在/var/log/dmesg文件里。

    常用选项:

    -c:显示信息后,清除ring buffer中的内容;
    -s<缓冲区大小>:预设置为8196,刚好等于ring buffer的大小;
    -n:设置记录信息的层级。

    vmstat命令的含义为显示虚拟内存状态(“Virtual Memory Statistics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。

    常用选项:

    -a:显示活动内页;
    -f:显示启动后创建的进程总数;
    -m:显示slab信息;
    -n:头信息仅显示一次;
    -s:以表格方式显示事件计数器和内存状态;
    -d:报告磁盘状态;
    -p:显示指定的硬盘分区状态;
    -S:输出信息的单位;

    输出的信息:

    procs(进程)

    r: 运行队列中进程数量,这个值也可以判断是否需要增加CPU。(长期大于1);
    b: 等待IO的进程数量;

    memory(内存)

    swpd: 使用虚拟内存大小,如果swpd的值不为0,但是SI,SO的值长期为0,这种情况不会影响系统性能;
    free: 空闲物理内存大小;
    buff: 用作缓冲的内存大小;
    cache: 用作缓存的内存大小,如果cache的值大的时候,说明cache处的文件数多,如果频繁访问到的文件都能被cache处,那么磁盘的读IO bi会非常小;

    swap(交换分区)

    si: 每秒从交换区写到内存的大小,由磁盘调入内存;
    so: 每秒写入交换区的内存大小,由内存调入磁盘;

    注意:内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。有些朋友看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,不能光看这一点,还要结合si和so,如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。

    io(现在的Linux版本块的大小为1kb)

    bi: 每秒读取的块数;
    bo: 每秒写入的块数;

    注意:随机磁盘读写的时候,这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大。

    system(系统)

    in: 每秒中断数,包括时钟中断;
    cs: 每秒上下文切换数;

    注意:上面2个值越大,会看到由内核消耗的CPU时间会越大。

    cpu(以百分比表示)

    us: 用户进程执行时间百分比;
    us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速。
    sy: 内核系统进程执行时间百分比;
    sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。
    wa: IO等待时间百分比
    wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。
    id: 空闲时间百分比

    mpstat命令指令主要用于多CPU环境下,它显示各个可用CPU的状态信息。这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。

    pidstat用于打印各个进程对CPU的占用情况,类似top命令中显示的内容。pidstat的优势在于,可以滚动的打印进程运行情况,而不像top那样会清屏。

    iostat命令被用于监视系统输入输出设备和CPU的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。

    常用选项:

    -c:仅显示CPU使用情况;
    -d:仅显示设备利用率;
    -k:显示状态以千字节每秒为单位,而不使用块每秒;
    -m:显示状态以兆字节每秒为单位;
    -p:仅显示块设备和所有被使用的其他分区的状态;
    -t:显示每个报告产生时的时间;
    -V:显示版号并退出;
    -x:显示扩展状态。

    详细说明:第二行是系统信息和监测时间,第三行和第四行显示CPU使用情况(具体内容和mpstat命令相同)。这里主要关注后面I/O输出的信息,如下所示:

    Device:监测设备名称
    rrqm/s:每秒需要读取需求的数量
    wrqm/s:每秒需要写入需求的数量
    r/s:每秒实际读取需求的数量
    w/s:每秒实际写入需求的数量
    rsec/s:每秒读取区段的数量
    wsec/s:每秒写入区段的数量
    rkB/s:每秒实际读取的大小,单位为KB
    wkB/s:每秒实际写入的大小,单位为KB
    avgrq-sz:需求的平均大小区段
    avgqu-sz:需求的平均队列长度
    await:等待I/O平均的时间(milliseconds)
    svctm:I/O需求完成的平均时间
    %util:被I/O需求消耗的CPU百分比

    free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。

    • 常用选项:
    -b:以Byte为单位显示内存使用情况;
    -k:以KB为单位显示内存使用情况;
    -m:以MB为单位显示内存使用情况;
    -o:不显示缓冲区调节列;
    -s<间隔秒数>:持续观察内存使用状况;
    -t:显示内存总和列;
    -V:显示版本信息。

    返回信息:

    total:内存总数;
    used:已经使用的内存数;
    free:空闲的内存数;
    shared:当前已经废弃不用;
    buffers Buffer:缓存内存数;
    available 还可以被 应用程序 使用的物理内存大小;

    sar命令是Linux下系统运行状态统计工具,它将指定的操作系统状态计数器显示到标准输出设备。sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据。取样数据和分析的结果都可以存入文件,使用它时消耗的系统资源很小。

    常用选项:

    -A:显示所有的报告信息;
    -b:显示I/O速率;
    -B:显示换页状态;
    -c:显示进程创建活动;
    -d:显示每个块设备的状态;
    -e:设置显示报告的结束时间;
    -f:从指定文件提取报告;
    -i:设状态信息刷新的间隔时间;
    -P:报告每个CPU的状态;
    -R:显示内存状态;
    -u:显示CPU利用率;
    -v:显示索引节点,文件和其他内核表的状态;
    -w:显示交换分区状态;
    -x:显示给定进程的状态;

    返回信息:

    IFACE ,网络接口名称;
    rxpck/s ,每秒接收到包数;
    txpck/s ,每秒传输的报数;(transmit packages)
    rxkB/s ,每秒接收的千字节数;
    txkB/s ,每秒发送的千字节数;
    rxcmp/s ,每秒接收的压缩包的数量;
    txcmp/s ,每秒发送的压缩包的数量;
    rxmcst/s,每秒接收的组数据包数量;

    返回信息:

    active/s:发起的网络连接数量;
    passive/s:接收的网络连接数量;
    retrans/s:重传的数量;

    top命令可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面,用热键可以管理。

    常用选项:

    -b:以批处理模式操作;
    -c:显示完整的治命令;
    -d:屏幕刷新间隔时间;
    -I:忽略失效过程;
    -s:保密模式;
    -S:累积模式;
    -i<时间>:设置间隔时间;
    -u<用户名>:指定用户名;
    -p<进程号>:指定进程;
    -n<次数>:循环显示的次数;

    top交互命令:

    h:显示帮助画面,给出一些简短的命令总结说明;
    k:终止一个进程;
    i:忽略闲置和僵死进程,这是一个开关式命令;
    q:退出程序;
    r:重新安排一个进程的优先级别;
    S:切换到累计模式;
    s:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s;
    f或者F:从当前显示中添加或者删除项目;
    o或者O:改变显示项目的顺序;
    l:切换显示平均负载和启动时间信息;
    m:切换显示内存信息;
    t:切换显示进程和CPU状态信息;
    c:切换显示命令名称和完整命令行;
    M:根据驻留内存大小进行排序;
    P:根据CPU使用百分比大小进行排序;
    T:根据时间/累计时间进行排序;
    w:将当前设置写入~/.toprc文件中;

    站内搜索