要进行性能分析,需要在性能脚本运行时,对服务器进行性能监控
常用的性能监控命令,当然也可以通过性能平台来进行查看。
常用的性能监控命令
详细查看这里
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 <格式>