要进行性能分析,需要在性能脚本运行时,对服务器进行性能监控
常用的性能监控命令,当然也可以通过性能平台来进行查看。
常用的性能监控命令
详细查看这里
top: 进程列表中,是根据cpu的使用率从高到低排序
top命令的语法如下:
top [options]
常用的top命令选项包括:
-d delay
:设置刷新间隔的时间,单位为秒,默认为3秒。-n iterations
:设置显示的迭代次数,完成指定次数后自动退出。-p pid
:仅显示指定进程ID的信息。-u username
:仅显示指定用户名的进程信息。-o field
:按指定字段进行排序,例如按CPU占用率排序使用-o %CPU
。-O field
:按指定字段进行倒序排序。
top命令的输出结果包括以下几个常见字段:
PID
:进程的ID。USER
:进程所属用户。%CPU
:进程的CPU占用率。%MEM
:进程的内存占用率。TIME+
:进程已运行的时间。COMMAND
:进程的命令行。
在top命令中,显示CPU各信息字段的含义如下:
%Cpu(s)
:显示当前CPU使用率的统计信息。us
:用户空间占用CPU的百分比。sy
:内核空间占用CPU的百分比。ni
:用户进程空间内改变过优先级的进程占用CPU的百分比。id
:空闲CPU的百分比。wa
:等待I/O操作完成的CPU时间的百分比。hi
:硬中断占用CPU的百分比。si
:软中断占用CPU的百分比。st
:被虚拟化环境偷取的CPU时间的百分比。
ps 查看当前的进程
获取帮助 命令 --help
- ps -ef |grep 进程名or进程id
ps命令的输出结果通常包括以下几个字段:
UID
:进程所属用户的ID。PID
:进程的ID。PPID
:父进程的ID。C
:进程的CPU占用率。STIME
:进程启动的时间。TTY
:进程所属的终端。CMD
:进程的命令行。
vmstat 对虚拟内存、进程、cpu信息进行监控
vmstat命令的语法如下:
vmstat [delay [count]]
delay
:可选参数,表示两次打印输出之间的时间间隔,单位为秒,默认为2秒。count
:可选参数,表示打印输出的次数,默认为无限次。
vmstat命令的输出结果包括以下几个字段:
procs
:显示进程相关的统计信息,包括运行队列长度、中断数等。r
:运行队列的长度,即正在运行和等待CPU的进程数。b
:处于不可中断(blocked)状态的进程数。
memory
:显示内存相关的统计信息,包括物理内存、虚拟内存和交换空间的使用情况。swpd
:使用的交换空间大小。free
:空闲的物理内存大小。buff
:用作缓冲区的物理内存大小。cache
:用作缓存的物理内存大小。
swap
:显示交换空间的使用情况。si
:每秒从磁盘读入交换空间的数据量。so
:每秒写入磁盘的交换空间数据量。
io
:显示IO相关的统计信息,包括块设备的读写情况。bi
:每秒从块设备读取的块数。bo
:每秒写入块设备的块数。
system
:显示系统相关的统计信息,包括上下文切换次数、中断数等。in
:每秒的中断数。cs
:每秒的上下文切换次数。
cpu
:显示CPU相关的统计信息,包括用户模式和内核模式的CPU使用率。us
:用户空间占用CPU的百分比。sy
:内核空间占用CPU的百分比。id
:空闲CPU的百分比。wa
:等待I/O操作完成的CPU时间的百分比。st
:被虚拟化环境偷取的CPU时间的百分比。
mpstat 查看cpu的监控数据
mpstat命令的语法如下:
mpstat [options] [delay [count]]
[options]
表示可选的命令选项,用于指定显示的统计信息类型或其他操作。
[delay]
表示刷新间隔的时间,单位为秒。它用于指定每次显示统计信息之间的时间间隔。
[count]
表示显示的迭代次数。它用于指定显示统计信息的总次数,达到指定次数后,mpstat命令将自动退出。
常用的mpstat命令选项包括:
-P
:显示每个CPU的统计信息。-u
:显示CPU利用率的统计信息。-I
:显示中断的统计信息。-P ALL
:显示所有CPU的统计信息,包括CPU利用率、中断、上下文切换等。-V
:显示mpstat命令的版本信息。
mpstat命令的输出结果包括以下几个字段:
CPU
:CPU编号。%usr
:用户空间CPU利用率。%nice
:优先级较低的进程CPU利用率。%sys
:内核空间CPU利用率。%iowait
:等待I/O完成的CPU时间。%irq
:处理中断的CPU时间。%soft
:处理软中断的CPU时间。%steal
:被虚拟化环境偷取的CPU时间。%guest
:运行虚拟机客户操作系统的CPU时间。%gnice
:运行虚拟机客户优先级较低的进程的CPU时间。%idle
:空闲CPU时间。
netstat 网络相关监控
netstat是一个网络工具命令,用于显示网络连接、路由表、网络接口状态等信息。它可以帮助用户查看当前系统的网络连接情况,包括正在监听的端口、已建立的连接、网络接口的统计数据等。
netstat命令的语法如下:
netstat [options]
常用的netstat命令选项包括:
-a
:显示所有的网络连接和监听端口。-t
:显示TCP协议相关的连接。-u
:显示UDP协议相关的连接。-n
:以数字形式显示IP地址和端口号。-p
:显示建立连接的进程信息。-r
:显示路由表信息。-s
:显示网络接口的统计信息。
netstat命令的输出结果包括以下几个字段:
Proto
:协议类型,如TCP、UDP。Recv-Q
:接收队列的长度。Send-Q
:发送队列的长度。Local Address
:本地地址和端口号。Foreign Address
:远程地址和端口号。State
:连接状态,如ESTABLISHED、LISTENING等。PID/Program name
:建立连接的进程ID和名称。
sysstat 系统性能监控工具包
sysstat是一个系统性能监控工具包,它包含了一系列的命令和工具,用于收集和分析系统的性能数据。sysstat可以提供关于CPU利用率、内存使用情况、磁盘 I/O、网络流量等方面的统计信息。
iostat 磁盘性能分析时常用
iostat是sysstat工具包中的一个命令,用于显示磁盘I/O统计信息。它可以提供关于磁盘的读写速度、I/O等待时间和磁盘利用率等方面的统计数据。
iostat命令的语法如下:
iostat [options] [interval] [count]
常用的iostat命令选项包括:
-c
:显示CPU利用率统计信息。-d
:显示磁盘I/O统计信息。-p
:显示每个磁盘分区的I/O统计信息。-t
:在输出中包含时间戳信息。-x
:显示更详细的磁盘I/O统计信息,包括每个设备的平均服务时间、队列长度等。
interval
参数指定了数据采样的时间间隔(以秒为单位)
count
参数指定了采样的次数。如果省略这两个参数,则iostat将会持续显示实时的磁盘I/O统计信息。
显示所有磁盘的I/O统计信息:
iostat -d
显示指定磁盘分区的I/O统计信息:
iostat -p <磁盘分区>
显示磁盘I/O统计信息,并以特定时间间隔和采样次数进行采样:
iostat -d 5 10
iostat命令的输出结果包括以下几个字段:
Device
:磁盘设备的名称。tps
:每秒钟的传输率,表示每秒完成的传输次数。kB_read/s
:每秒读取的数据量,以KB为单位。kB_wrtn/s
:每秒写入的数据量,以KB为单位。kB_read
:读取的总数据量,以KB为单位。kB_wrtn
:写入的总数据量,以KB为单位。
sar 提供关于CPU利用率、内存使用情况、磁盘I/O、网络流量等方面的历史统计数据
sar是sysstat工具包中的一个命令,用于收集和报告系统性能统计信息。它可以提供关于CPU利用率、内存使用情况、磁盘I/O、网络流量等方面的历史统计数据。
sar命令的语法如下:
sar [options] [interval] [count]
常用的sar命令选项包括:
-u
:显示CPU利用率统计信息。-r
:显示内存使用情况统计信息。-b
:显示磁盘I/O统计信息。-n
:显示网络流量统计信息。-q
:显示系统平均负载和运行队列长度统计信息。-A
:显示所有可用的统计信息。-s
:指定开始时间,格式为HH:MM:SS。-e
:指定结束时间,格式为HH:MM:SS。
interval
参数指定了采样的时间间隔(以秒为单位)
count
参数指定了采样的次数。如果省略这两个参数,则sar将采集所有可用的统计数据。
显示CPU利用率统计信息:
sar -u
显示内存使用情况统计信息:
sar -r
显示磁盘I/O统计信息:
sar -b
显示网络流量统计信息:
sar -n DEV
显示系统平均负载和运行队列长度统计信息:
sar -q
显示指定时间范围内的CPU利用率统计信息:
sar -u -s 09:00:00 -e 12:00:00
sar命令的输出结果包含了所选择的统计信息。输出结果的具体格式和字段取决于所选择的选项。以下是sar命令常见选项的输出示例
-u
:CPU利用率统计信息的输出示例:
10:00:01 AM CPU %user %nice %system %iowait %steal %idle
10:10:01 AM all 5.01 0.00 3.01 0.20 0.00 91.78
10:20:01 AM all 4.94 0.00 2.98 0.22 0.00 91.85
...
-r
:内存使用情况统计信息的输出示例:10:00:01 AM kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty 10:10:01 AM 1234567 1234567 1234567 12.34 123456 123456 1234567 12.34 123456 123456 12345 10:20:01 AM 1234567 1234567 1234567 12.34 123456 123456 1234567 12.34 123456 123456 12345 ...
-b
:磁盘I/O统计信息的输出示例:10:00:01 AM tps rtps wtps bread/s bwrtn/s 10:10:01 AM 0.10 0.00 0.10 0.00 0.20 10:20:01 AM 0.11 0.01 0.10 0.10 0.21 ...
-n
:网络流量统计信息的输出示例:10:00:01 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 10:10:01 AM eth0 0.10 0.20 1.00 2.00 0.00 0.00 0.00 10:20:01 AM eth0 0.11 0.21 1.10 2.10 0.00 0.00 0.00 ...
-q
:系统平均负载和运行队列长度统计信息的输出示例:10:00:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked 10:10:01 AM 1 1234 0.01 0.02 0.03 0 10:20:01 AM 1 1234 0.01 0.02 0.03 0 ...
dstat 综合性能监控工具,可以提供实时的系统资源使用情况统计信息
dstat是一个综合性能监控工具,可以提供实时的系统资源使用情况统计信息。dstat可以显示关于CPU、内存、磁盘I/O、网络流量等方面的统计数据,可以帮助你全面了解系统的性能状况。
dstat命令的语法如下:
dstat [options] [delay [count]]
常用的dstat命令选项包括:
-c
:显示CPU统计信息。-m
:显示内存统计信息。-d
:显示磁盘I/O统计信息。-n
:显示网络统计信息。-p
:显示进程统计信息。-r
:显示系统负载、内存使用情况以及交换空间使用情况。-s
:显示系统中断和上下文切换统计信息。-t
:在输出中包含时间戳信息。-y
:显示文件系统统计信息。
delay
参数指定了数据采样的时间间隔(以秒为单位)
count
参数指定了采样的次数。如果省略这两个参数,则dstat将会持续显示实时的性能统计信息。
显示实时的 CPU、内存、磁盘 I/O、网络流量统计信息:
dstat
显示指定选项的统计信息,以特定时间间隔和采样次数进行采样
dstat -c -m -d -n -p 5 10
显示系统负载、内存使用情况以及交换空间使用情况:
dstat -r
dstat命令的输出结果依赖于所选择的选项,常见的输出字段包括:
usr
:用户空间CPU使用率。sys
:内核空间CPU使用率。idl
:CPU空闲率。used
:已使用的内存量。free
:空闲的内存量。read
:每秒读取的数据量。writ
:每秒写入的数据量。recv
:每秒接收的数据量。send
:每秒发送的数据量。proc
:正在运行的进程数量。
ss 显示当前系统的套接字(Socket)统计信息
ss是Linux系统中的一个命令行工具,用于显示当前系统的套接字(Socket)统计信息。它提供了比netstat更详细和更快速的套接字信息,并支持更多的过滤和排序选项。
ss命令的基本语法如下:
ss [options]
常用的ss命令选项包括:
-t
:显示TCP套接字信息。-u
:显示UDP套接字信息。-l
:仅显示监听套接字信息。-a
:显示所有套接字信息。-n
:以数字格式显示IP地址和端口号。-r
:显示路由表信息。-s
:显示套接字统计信息。-p
:显示与套接字关联的进程信息。
lsof 显示系统中打开的文件和网络连接的命令行工具
sof是一个用于显示系统中打开的文件和网络连接的命令行工具。它的全称是"list open files"。lsof可以帮助你查看哪些进程打开了哪些文件或网络连接。
sof命令的基本语法如下:
lsof [options]
常用的lsof命令选项包括:
-a
:逻辑与操作,用于指定多个条件。-c <进程名>
:按进程名筛选。-p <进程ID>
:按进程ID筛选。-u <用户名>
:按用户名筛选。-i
:显示网络连接信息。-t
:仅显示进程ID。-F <格式>
:指定自定义的输出格式。
lsof命令的输出结果包含以下字段的信息:
COMMAND
:打开文件的进程名称。PID
:进程ID。USER
:进程的所有者。FD
:文件描述符,用于表示文件的访问模式(例如,读取、写入、追加等)。TYPE
:文件类型,如常规文件(REG)、目录(DIR)、套接字(SOCK)等。DEVICE
:文件所在的设备名称。SIZE/OFF
:文件大小或文件偏移量。NODE
:文件的节点号。NAME
:打开文件的路径和名称。
显示指定进程打开的文件
lsof -p <进程ID>
显示网络连接信息:
lsof -i
仅显示进程ID:
lsof -t
指定自定义的输出格式:
lsof -F <格式>