美文网首页时间,效率,自律百人计划linux 我来学
【linux☞1】系统性能监视命令汇集(19个)

【linux☞1】系统性能监视命令汇集(19个)

作者: _王子_ | 来源:发表于2017-02-14 11:13 被阅读142次

    linux系统性能监视命令,经过百度谷歌,加上各渠道获得,查找到相关命令汇集,望能学有所收获                                                                                                                                                                                                      --by 王子

    汇集命令如下:

    内存:top、 free、 vmstat、 mpstat、iostat、 sar

    CPU:top、 vmstat、 mpstat、 iostat、 sar

    I/O:vmstat、 mpstat、 iostat、 sar

    进程:ipcs、 ipcrm、 lsof、 strace、 lstrace

    负载:uptime、 mount、 umount、 df、 du、 fsck、 dd、 dumpe2fs、 dump


    top

    显示管理执行中的程序。

    命令格式:top  [-] [d] [p] [q] [c] [C] [S][n]

    常用参数(详细内容可以参考MAN 帮助文档。这里列举部分内容)

    b  使用批处理模式。# top b

    c  列出程序时,显示每个程序的完整指令,包括指令名称,路径和参数等相关信息。# top c

    d<间隔秒数>  设置top监控程序执行状况的间隔时间,单位以秒计算。# top d

    i  执行top指令时,忽略闲置或是已成为Zombie的程序。# top i

    n<执行次数>  设置监控信息的更新次数。# top n

    q  持续监控程序执行的状况。# top q

    s  使用保密模式,消除互动模式下的潜在危机。# top s

    S  使用累计模式,其效果类似ps指令的"-S"参数。# top S/-S

    备注:

    一.TOP前五行统计信息:

    1、统计信息区前五行是系统整体的统计信息。

    2、第二、三行为进程和CPU的信息

    3、第四五行为内存信息。

    二.列表进程信息

    详细内容请查阅:http://www.jb51.net/LINUXjishu/34604.html


    free

    显示内存状态。

    命令格式:free [-bkmotV][-s <间隔秒数>]

    常用参数

    -b  以Byte为单位显示内存使用情况。

    -k  以KB为单位显示内存使用情况。

    -m  以MB为单位显示内存使用情况。

    -o  不显示缓冲区调节列。

    -s<间隔秒数>  持续观察内存使用状况。

    -t  显示内存总和列。

    -V  显示版本信息。

    备注:

    # free

    # free -mMem:表示物理内存统计

    -/+ buffers/cached:表示物理内存的缓存统计

    Swap:表示硬盘上交换分区的使用情况,

    详细内容请查阅:

    http://www.jb51.net/LINUXjishu/57932.html


    vmstat

    显示虚拟内存使用情况

    命令格式:

    vmstat  [-a] [-n] [-S unit] [delay [ count]]

    vmstat [-s] [-n] [-S unit]

    vmstat [-m] [-n] [delay [ count]]

    vmstat [-d] [-n] [delay [ count]]

    vmstat [-p disk partition] [-n]

    [delay [ count]]

    vmstat [-f]

    vmstat [-V]

    常用参数

    -a:显示活跃和非活跃内存

    -f:显示从系统启动至今的fork数量 。

    -m:显示slabinfo

    -n:只在开始时显示一次各字段名称。

    -s:显示内存相关统计信息及多种系统活动数量。

    delay:刷新时间间隔。如果不指定,只显示一条结果。

    count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。

    -d:显示磁盘相关统计信息。

    -p:显示指定磁盘分区统计信息

    -S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)

    -V:显示vmstat版本信息。

    #  vmstat 5 6

    (命令:vmstat 5 6

    表示在5秒时间内进行6次采样。将得到一个数据汇总他能够反映真正的系统情况。)vmstat命令输出信息详细说明:

    字段说明:

    Procs(进程):

    r: 运行队列中进程数量

    b: 等待IO的进程数量

    Memory(内存):

    swpd: 使用虚拟内存大小

    free: 可用内存大小

    buff: 用作缓冲的内存大小

    cache: 用作缓存的内存大小

    Swap:

    si: 每秒从交换区写到内存的大小

    so: 每秒写入交换区的内存大小

    IO:(现在的Linux版本块的大小为1024bytes)

    bi: 每秒读取的块数

    bo: 每秒写入的块数

    系统:

    in: 每秒中断数,包括时钟中断。

    cs: 每秒上下文切换数。

    CPU(以百分比表示):

    us: 用户进程执行时间(user time)

    sy: 系统进程执行时间(system time)

    id: 空闲时间(包括IO等待时间),中央处理器的空闲时间  。以百分比表示。

    wa: 等待IO时间

    备注: 如果 r经常大于 4 ,且id经常少于40,表示cpu的负荷很重。如果pi,po 长期不等于0,表示内存不足。如果disk 经常不等于0, 且在 b中的队列 大于3, 表示 io性能不好。Linux在具有高稳定性、可靠性的同时,具有很好的可伸缩性和扩展性,能够针对不同的应用和硬件环境调整,优化出满足当前应用需要的最佳性能。因此企业在维护Linux系统、进行系统调优时,了解系统性能分析工具是至关重要的。

    详细查阅:

    http://www.jb51.net/LINUXjishu/152024.html


    mpstat

    实时系统监控工具。

    命令格式:mpstat [-P {|ALL}] [internal [count]]

    常用参数

    (当没有参数时,mpstat则显示系统启动以后所有信息的平均值。有interval时,第一行的信息自系统启动以来的平均信息。从第二行开始,输出为前一个interval时间段的平均信息。)

    -P  {|ALL} 表示监控哪个CPU, cpu在[0,cpu个数-1]中取值

    internal 相邻的两次采样的间隔时间、

    count 采样的次数,count只能和delay一起使用

    备注:

    mpstat -P ALL 2属性说明:

    %user在internal时间段里,用户态的CPU时间(%),不包含nice值为负进程(usr/total)*100

    %nice在internal时间段里,nice值为负进程的CPU时间(%)(nice/total)*100

    %sys在internal时间段里,内核时间(%)(system/total)*100

    %iowait在internal时间段里,硬盘IO等待时间(%)  (iowait/total)*100

    %irq在internal时间段里,硬中断时间(%)(irq/total)*100

    %soft在internal时间段里,软中断时间(%)(softirq/total)*100

    %idle在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%) (idle/total)*100

    计算公式:  

    total_cur=user+system+nice+idle+iowait+irq+softirq

    total_pre=pre_user+ pre_system+ pre_nice+ pre_idle+ pre_iowait+ pre_irq+ pre_softirq

    user=user_cur – user_pre

    total=total_cur-total_pre

    其中_cur 表示当前值,_pre表示interval时间前的值。上表中的所有值可取到两位小数点。

    详细查阅:http://www.cnblogs.com/stephen-liu74/archive/2011/12/05/2257887.html


    iostat

    (输入/输出统计)对系统的磁盘操作活动进行监视。

    命令格式:iostat[参数][时间][次数]

    常用参数

    -C 显示CPU使用情况cpu

    -d 显示磁盘使用情况

    -k 以 KB 为单位显示

    -m 以 M 为单位显示

    -N 显示磁盘阵列(LVM) 信息

    -n 显示NFS 使用情况

    -p[磁盘] 显示磁盘和分区的情况

    -t 显示终端和CPU的信息

    -x 显示详细信息

    -V 显示版本信息

    disk属性:

    属性值说明:

    rrqm/s:  每秒进行 merge 的读操作数目。即 rmerge/s

    wrqm/s:  每秒进行 merge 的写操作数目。即 wmerge/s

    r/s:  每秒完成的读 I/O 设备次数。即 rio/s

    w/s:  每秒完成的写 I/O 设备次数。即 wio/s

    rsec/s:  每秒读扇区数。即 rsect/s

    wsec/s:  每秒写扇区数。即 wsect/s

    rkB/s:  每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。

    wkB/s:  每秒写K字节数。是 wsect/s 的一半。

    avgrq-sz:  平均每次设备I/O操作的数据大小 (扇区)。

    avgqu-sz:  平均I/O队列长度。

    await:  平均每次设备I/O操作的等待时间 (毫秒)。

    svctm: 平均每次设备I/O操作的服务时间 (毫秒)。

    %util:  一秒中有百分之多少的时间用于 I/O 操作,即被io消耗的cpu百分比

    备注:如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明I/O 队列太长,io响应太慢,则需要进行必要优化。如果avgqu-sz比较大,也表示有当量io在等待。

    示例:

    iostat -d 2 2

    [root@localhost ~]# iostat -d 2 2

    Linux 3.10.0-327.el7.x86_64 (localhost.localdomain)  02/13/2017  _x86_64_  (4 CPU)

    Device:        tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn

    sda           2.28       105.65         3.61    1043443      35692

    Device:        tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn

    sda           0.50         4.00         0.00          8          0

    iostat -d -k 1 1

    [root@localhost ~]# iostat -d -k 1 1

    Linux 3.10.0-327.el7.x86_64 (localhost.localdomain)  02/13/2017  _x86_64_  (4 CPU)

    Device:        tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn

    sda           2.08        95.97         3.30    1043619      35939

    属性值说明:

    %user 显示了在用户级(应用程序)执行时产生的 CPU 使用率百分比。

    %system 显示了在系统级(内核)执行时产生的 CPU 使用率百分比。

    %idle 显示了在 CPU 空闲并且系统没有未完成的磁盘 I/O 请求时的时间百分比。

    %iowait 显示了 CPU 空闲期间系统有未完成的磁盘 I/O 请求时的时间百分比。

    %nicenice 操作(改变进程优先序列操作)操作使用的CPU百分比

    %steal 管理程序维护另一个虚拟处理器时候,虚拟CPU的无意识等待时间百分比


    sar

    对系统的活动进行报告命令。

    包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。

    命令格式:sar [options] [-A] [-o file] t [n](t为采样间隔,n为采样次数,默认值是1;)

    常用参数

    -A:所有报告的总和

    -P:设定CPU

    -u:输出CPU使用情况的统计信息

    -v:输出inode、文件和其他内核表的统计信息

    -d:输出每一个块设备的活动信息

    -n:汇报网络情况

    -q:汇报队列长度和负载信息

    -r:输出内存和交换空间的统计信息

    -b:显示I/O和传送速率的统计信息

    -a:文件读写情况

    -c:输出进程统计信息,每秒创建的进程数

    -R:输出内存页面的统计信息

    -y:终端设备活动情况

    -w:输出系统交换活动信息

    示例:

    1、例如,每10秒采样一次,连续采样3次,观察CPU的使用情况,并将采样结果以二进制形式存入当前目录下的文件sys_info中,需键入如下命令:

    # sar -u -o sys_info 10 3

    2、# sar -f sys_info(用-f设定要读取的信息存储文件)

    3、# sar -P ALL 1 1(-P查看cpu)

    4、例如,每10秒采样一次,连续采样3次,观察核心表的状态,需键入如下命令:

    # sar -v 10 3输出项说明:

    CPU:all表示统计信息为所有CPU的平均值。

    %user:显示在用户级别(application)运行使用CPU总时间的百分比。

    %nice:显示在用户级别,用于nice操作,所占用CPU总时间的百分比。

    %system:在核心级别(kernel)运行所使用CPU总时间的百分比。

    %iowait:显示用于等待I/O操作占用CPU总时间的百分比。

    %steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟CPU的百分比。

    %idle:显示CPU空闲时间占用CPU总时间的百分比。

    注意说明:

    (1).若%iowait的值过高,表示硬盘存在I/O瓶颈

    (2).若%idle的值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量

    (3).若%idle的值持续低于1,则系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。

    详细查阅:http://www.jb51.net/LINUXjishu/396293.html


    ipcs(与ipcrm相关联)

    报告进程间通信设施状态。

    命令格式:ipcs [-mqs] [-abcopt] [-C core] [-N namelist]

    参数用法

    ipcs -a  是默认的输出信息 打印出当前系统中所有的进程间通信方式的信息

    ipcs -m  打印出使用共享内存进行进程间通信的信息

    ipcs -q   打印出使用消息队列进行进程间通信的信息

    ipcs -s  打印出使用信号进行进程间通信的信息

    ipcs -t   输出信息的详细变化时间

    ipcs -p  输出ipc方式的进程ID

    ipcs -c  输出ipc方式的创建者/拥有者

    ipcs -u  输出当前系统下ipc各种方式的状态信息(共享内存,消息队列,信号)

    示例:

    1、ipcs -ql

    2、ipcrm -删除ipc(清除共享内存信息)引用它的语法:

    ipcrm -m|-q|-s shm_id-ql(查看消息队列的限制信息)

    说明:

    -qt(显示消息队列的创建时间,发送和接收最后一条消息的时间)

    -qp(显示往消息队列中放消息和从消息队列中取消息的进程ID)

    -q  -i msgid:显示该消息队列结构体中的消息信息

    详细查阅:http://www.jb51.net/article/40805.htm


    ipcrm

    移除一个消息对象。或者共享内存段,或者一个信号集,同时会将与ipc对象相关链的数据也一起移除。当然,只有超级管理员,或者ipc对象的创建者才有这项权利。

    参数用法

    ipcrm  -M shmkey移除用shmkey创建的共享内存段

    ipcrm -m shmid    移除用shmid标识的共享内存段

    ipcrm -Q msgkey  移除用msqkey创建的消息队列

    ipcrm -q msqid  移除用msqid标识的消息队列

    ipcrm -S semkey  移除用semkey创建的信号

    ipcrm -s semid  移除用semid标识的信号


    lsof

    以列表的形式显示打开的文件和进程。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。

    命令格式:lsof[options]filename

    常用参数

    lsof filename 显示打开指定文件的所有进程

    lsof -a 表示两个参数都必须满足时才显示结果

    lsof -c string

    显示COMMAND列中包含指定字符的进程所有打开的文件

    lsof -u username 显示所属user进程打开的文件

    lsof -g gid 显示归属gid的进程情况

    lsof +d /DIR/ 显示目录下被进程打开的文件

    lsof +D /DIR/ 同上,但是会搜索目录下的所有目录,时间相对较长

    lsof -d FD 显示指定文件描述符的进程

    lsof -n 不将IP转换为hostname,缺省是不加上-n参数

    lsof -i 用以显示符合条件的进程情况

    lsof -i[46]

    [protocol][@hostname|hostaddr][:service|port]

    46 --> IPv4 or IPv6

    protocol --> TCP or UDP

    hostname --> Internet host name

    hostaddr --> IPv4地址

    service --> /etc/service中的 service name

    (可以不只一个)

    port --> 端口号 (可以不只一个)

    属性名称:

    COMMAND:进程的名称

    PID:进程标识符

    USER:进程所有者

    FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等

    TYPE:文件类型,如DIR、REG等

    DEVICE:指定磁盘的名称

    SIZE:文件的大小

    NODE:索引节点(文件在磁盘上的标识)

    NAME:打开文件的确切名称

    详细查阅:http://www.jb51.net/LINUXjishu/83948.html


    strace

    跟踪程式执行时的系统调用和所接收的信号

    命令格式:strace  [ -dffhiqrtttTvxx ] [ -acolumn ] [ -eexpr ] ...

    [ -ofile ] [ -ppid ] ... [ -sstrsize ] [ -uusername ] [ command [ arg ... ]  ]

    strace -c [ -eexpr ] ... [ -Ooverhead ] [ -Ssortby ] [ command [ arg ... ]  ]

    参数详细查阅:http://www.jb51.net/os/RedHat/1156.html

    http://man.linuxde.net/strace


    lstrace暂无相关信息


    uptime

    获取主机运行时间和linux系统负载

    直接输入uptime

    参数  -V获取版本信息

    相关:

    ps-ef查看进程

    -e : 在命令执行后显示环境

    -f : 完整显示输出

    1) 进程用户ID(UID)

    2) 进程ID (PID)

    3) 父进程ID (PPID)

    4) CPU 调度情况 (C)

    5) 进程启动的时间 (STIME)

    6) 进程共占用CPU的时间(TIME)

    7) 启动进程的命令 (CMD)

    cat /proc/uptime 查看系统启动时间和空闲时间

    第一个数值代表系统总的启动时间,第二个数值则代表系统空闲的时间,都是用秒来表示的。如果系统里第二个数字比第一个数字还要大,则说明你的cpu是多核的,cpu0上闲了一秒, cpu1上闲了两秒,加起就是三秒。

    详细查阅:http://www.jb51.net/article/40813.htm


    df

    显示磁盘的相关信息(df可显示磁盘的文件系统与使用情形。)

    命令格式:df [-ahHiklmPT][--block-size=<区块大小>][-t <文件系统类型>][-x

    <文件系统类型>][--help][--no-sync][--sync][--version][文件或设备]

    -a或--all   包含全部的文件系统。

    --block-size=<区块大小>   以指定的区块大小来显示区块数目。

    -h或--human-readable   以可读性较高的方式来显示信息。

    -H或--si   与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes。

    -i或--inodes   显示inode的信息。

    -k或--kilobytes   指定区块大小为1024字节。

    -l或--local  仅显示本地端的文件系统。

    -m或--megabytes   指定区块大小为1048576字节。

    --no-sync   在取得磁盘使用信息前,不要执行sync指令,此为预设值。

    -P或--portability   使用POSIX的输出格式。

    --sync   在取得磁盘使用信息前,先执行sync指令。

    -t<文件系统类型>或--type=<文件系统类型>   仅显示指定文件系统类型的磁盘信息。

    -T或--print-type  显示文件系统的类型。

    -x<文件系统类型>或--exclude-type=<文件系统类型>不要显示指定文件系统类型的磁盘信息。

    --help   显示帮助。

    --version   显示版本信息。

    [文件或设备]   指定磁盘设备。

    示例:

    $  df

    $ df -ia (列出各文件系统的i节点使用情况)

    列出文件系统的类型。

    $ df -T

    Filesystem Type 1K-blocks Used Available use% Mounted on

    /dev/hda2 ext2 1361587 1246405 44824 97% /

    (本例中的文件系统是ext2类型的)

    # df -a

    详细查阅:http://www.jb51.net/LINUXjishu/64953.html


    du

    评估磁盘的使用情况

    命令格式:du [OPTION]… [FILE]…

    详细查阅:http://www.jb51.net/LINUXjishu/34649.html


    mount

    挂接

    命令格式:mount [-t vfstype] [-o options] device dir

    详细查阅:http://www.jb51.net/article/40808.htm


    umount

    卸除文件系统。

    命令格式:umount [-ahnrvV][-t <文件系统类型>][文件系统]

    参数

    -a   卸除/etc/mtab中记录的所有文件系统。

    -h   显示帮助。

    -n   卸除时不要将信息存入/etc/mtab文件中。

    -r   若无法成功卸除,则尝试以只读的方式重新挂入文件系统。

    -t<文件系统类型>   仅卸除选项中所指定的文件系统。

    -v   执行时显示详细的信息。

    -V   显示版本信息。

    [文件系统]   除了直接指定文件系统外,也可以用设备名称或挂入点来表示文件系统。

    详细查阅:http://www.jb51.net/linux/umount.htm


    fsck

    命令格式:fsck.minix [-aflmrsv][外围设备代号]

    命令格式:fsck.ext2 [-acdfFnprsStvVy][-b <分区第一个磁区地址>][-B <区块大小>][-C <反叙述器>][-I][-l/L <损坏区块文件>][-P <处理inode大小>][外围设备代号]

    详细查阅:http://www.jb51.net/linux/fsck.htm

    http://www.jb51.net/linux/fsck.ext2.htm


    dd

    用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。

    命令格式:dd(选项)     来自: http://man.linuxde.net/dd

    参数:

    bs=<字节数>:将ibs(输入)与欧巴桑(输出)设成指定的字节数;

    cbs=<字节数>:转换时,每次只转换指定的字节数;

    conv=<关键字>:指定文件转换的方式;

    count=<区块数>:仅读取指定的区块数;

    ibs=<字节数>:每次读取的字节数;

    obs=<字节数>:每次输出的字节数;

    of=<文件>:输出到文件;

    seek=<区块数>:一开始输出时,跳过指定的区块数;

    skip=<区块数>:一开始读取时,跳过指定的区块数;

    --help:帮助;

    --version:显示版本信息。

    示例:

    [root@localhost text]# dd if=/dev/zero  of=sun.txt bs=1M count=1 1+0 records in 1+0 records out 1048576 bytes (1.0  MB) copied, 0.006107 seconds, 172 MB/s [root@localhost text]# du -sh sun.txt  1.1M sun.txt

    该命令创建了一个1M大小的文件sun.txt,其中参数解释: if  代表输入文件。如果不指定if,默认就会从stdin中读取输入。 of 代表输出文件。如果不指定of,默认就会将stdout作为默认输出。 bs  代表字节为单位的块大小。 count 代表被复制的块数。 /dev/zero 是一个字符设备,会不断返回0值字节(\0)。

    详细查阅:http://www.jb51.net/LINUXjishu/391419.html    

    http://man.linuxde.net/dd


    dumpe2fs

    显示ext2/ext3/ext4文件系统信息。

    命令格式:dumpe2fs [ -bfhixV ] [ -o superblock=superblock ] [ -o blocksize=blocksize ] device

    详细查阅:http://www.cnblogs.com/Andy-Lv/p/5299095.html


    dump

    命令格式:dump(选项)(参数)

    备份ext2或者ext3文件系统。可将目录或整个文件系统备份至指定的设备,或备份成一个大文件。http://man.linuxde.net/dump

    来自: http://man.linuxde.net/dump

    相关文章

      网友评论

      • IDO老徐:用心 & 有价值的文章,👍 。
      • ShuHaiShiYi:厉害了,word哥
      • _王子_:汇集起来虽然花费了时间和精力,但也是收获满满,至少知道总结起来后,方便集中学习👍👍👍

      本文标题:【linux☞1】系统性能监视命令汇集(19个)

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