zoukankan      html  css  js  c++  java
  • Linux性能检测常用的10个基本命令

    一、常用检测性能的10个基本命令
    1. uptime

    该命令可以大致的看出计算机的整体负载情况,load average后的数字分别表示计算机在1min、5min、15min内的平均负载。

    2. dmesg | tail

    打印内核环形缓存区中的内容,可以用来查看一些错误;

    上面的例子中,显示进程18694 因内存越界被kill掉以及TCP request被丢弃的错误。通过dmesg可以快速判断是否有导致系统性能异常的问题。

    3. vmstat 1

    打印进程、内存、交换分区、IO和CPU等的统计信息;

    vmstat的格式如下:

      vmstat [options] [delay [count]]

    vmstat第一次输出表示从开机到vmstat运行时的平均值;剩余输出的都是在指定的时间间隔内的平均值,上述例子中delay的值设置为1,除第一次以外,剩余的都是1秒统计一次,count未设置,将会一直循环打印。

    上述的例子中delay设置为10,count设置为3,表示每行打印10秒内的平均值,只打印3次。

    需要检查的列:

    • r:表示正在运行或者等待CPU调度的进程数。因为该列数据不包含I/O的统计信息,因此可以用来检测CPU是否饱和。若r列中的数字大于CPU的核数,表示CPU已经处于饱和状态。
    • free:当前剩余的内存;
    • si, so:交换分区换入和换出的个数,若换入换出个数大于0,表示内存不足;
    • us, sy, id, wa:CPU的统计信息,分别表示user time、system time(kernel)、idle、wait I/O。I/O处理所用的时间包含在system time中,因此若system time超过20%,则I/O可能存在瓶颈或异常;

    4. mpstat -P ALL 1

     该命令用于每秒打印一次每个CPU的统计信息,可用于查看CPU的调度是否均匀。

    5. pidstat 1

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

    上述例子中,%CPU中两个java进程的cpu利用率分别达到了1590%和1573%,表示java进程占用了16颗CPU。

    6. iostat -xz 1

    类似vmstat,第一次输出的是从系统开机到统计这段时间的采样数据;

     检查列:

    • r/s, w/s, rkB/s, wkB/s,表示每秒向I/O设备发出的reads、writes、read Kbytes、write Kbytes的数量。
    • await,表示应用程序排队等待和被服务的平均I/O时间,该值若大于预期的时间,这表示I/O设备处于饱和状态或者异常。
    • avgqu-sz,表示请求被发送给I/O设备的平均时间,若该值大于1,则表示I/O设备可能已经饱和;
    • %util,每秒设备的利用率;若该利用率超过60%,则表示设备出现性能异常;

    7. free -m

    检查的列:

    • buffers:For the buffer cache, used for block device I/O.
    • cached:For the page cache, used by file systems.

    若buffers和cached接近0,说明I/O的使用率过高,系统存在性能问题。
    Linux中会用 free内存作为cache,若应用程序需要分配内存,系统能够快速的将cache占用的内存回收,因此 free的内存包含cache占用的部分。

    8. sar -n DEV 1

    sar是System Activity Reporter的缩写,系统活动状态报告。

    -n { keyword [,…] | ALL },用于报告网络统计数据。keyword可以是以下的一个或者多个: DEV, EDEV, NFS, NFSD, SOCK, IP, EIP, ICMP, EICMP, TCP, ETCP, UDP, SOCK6, IP6, EIP6, ICMP6, EICMP6 和UDP6。

    -n DEV 1, 每秒统计一次网络的使用情况;

    -n EDEV 1,每秒统计一次错误的网络信息;

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

    9. sar -n TCP,ETCP 1

    该命令可以用于粗略的判断网络的吞吐量,如发起的网络连接数量和接收的网络连接数量;

    TCP, 报告关于TCPv4网络流量的统计信息;

    ETCP, 报告有关TCPv4网络错误的统计信息;

    检测的列:

    • active/s: Number of locally-initiated TCP connections per second (e.g., via connect()),发起的网络连接数量;
    • passive/s: Number of remotely-initiated TCP connections per second (e.g., via accept()),接收的网络连接数量;
    • retrans/s: Number of TCP retransmits per second,重传的数量;

    10. top
    top命令包含更多的指标统计,相当于一个综合命令。

     11. 总结

    以上展示了各个命令的主要作用,如使用vmstat查看系统的整体性能,mpstat用于查看cpu的性能,pidstat用于查看进程的状态,iostat用于查看io的状态,free用于查看内存的状态,sar用于查看网络的状态等。

  • 相关阅读:
    cs ip 通过jmp转移命令间接赋值。无法直接对其赋值。
    8086 cpu为什么要把段地址*16+偏移量形成物理地址呢?
    保护模式和实模式的区别
    计算机的内存是以字节为单位的, 这个认知很重要。
    计算机的内存是以字节为单位的。
    一个字 word 是16位, 一个字由两个字节组成 , 字节=byte ,一个字节8位, 位=bit 如果没有特殊说明kb 就是指 k*bit
    物理地址为20位 如10000H 用段地址*16+偏移地址表示
    深入学习Java线程池
    在线考试系统镜像构建、推送、部署
    容器 变成镜像提交到阿里云镜像仓库
  • 原文地址:https://www.cnblogs.com/String-song/p/15222979.html
Copyright © 2011-2022 走看看