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

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

你可能感兴趣的:(【linux☞1】系统性能监视命令汇集(19个))