top:这是一个常用的命令行工具,用于查看系统中最消耗CPU 和内存的进程。 htop:类似于top的命令行工具,但提供更多信息和交互界面。 iostat:用于查看CPU使用率、磁盘I/O、网络I/O等系统统计信息。 vmstat:显示系统虚拟内存、进程、CPU、I/O等信息。 sar:系统活动报告工具,监视CPU 使用情况、内存使用情况、网络活动和磁盘I/O 等信息。 free:用于查看系统中空闲和已用内存的总量。 netstat:显示网络连接、路由表、接口统计信息等。 iftop:实时监控网络流量。 tcpdump:捕获并分析网络流量。 strace:用于跟踪系统调用和信号。
top 是常用的命令行工具,用于查看系统中最消耗CPU 和内存的进程。实时展示系统性能指标,并根据CPU占用率、内存占用率、IO等指标对进程进行排序。
top命令详细解释:
【资料图】
1.启动top命令
在终端中输入top命令启动。默认情况下,top命令每3秒更新一次屏幕信息。可以使用-d选项指定更新间隔,例如:top -d 5表示每5秒更新一次。
2. top命令的屏幕输出
top命令的屏幕输出分为多个区域:
第一行是系统整体信息,包括当前系统时间、运行时间、登录用户数、系统平均负载等。第二行是整体CPU使用率,包括CPU总使用率、用户模式和系统模式CPU使用率、空闲CPU百分比等。第三行是内存使用率,包括总内存、已用内存、空闲内存、缓存等。第四行是交换空间的使用情况。第五行到第八行是进程列表,按照CPU使用率、内存使用率等指标排序。您可以使用键盘的上下箭头键和PgUp/PgDn 键进行滚动,使用左右箭头键进行排序。 3、top命令交互操作
在top 命令中,您可以使用一些键盘快捷键进行交互式操作:
k:要终止进程,需要输入进程ID。 r:修改进程的优先级。您需要输入进程ID 和新的优先级值。 H:显示进程的线程信息。 h:显示帮助信息。 q:退出top命令。 4. top命令的选项
除了上面提到的-d选项之外,还有一些其他常用的选项:
-p:指定要监视的进程ID。 -U:指定要监控的用户名。 -u:指定要监视的用户和进程ID。 -b:以批处理方式运行top命令,不进行交互操作。 -n:指定top命令运行的次数,然后自动退出。综上所述,top命令是一个非常实用的系统监控工具,可以帮助我们快速定位系统中CPU和内存占用率较高的进程并对其进行优化。
top命令的截图
htop是一个交互式命令行进程查看工具,提供了比top更强大、更直观的功能。下面是htop命令的详细解释:
1.htop工具安装
Ubuntu 系统sudo apt-get install htopCentOS 系统sudo yum install epel-releasesudo yum install htopDebian 系统sudo apt-get install htopArch Linux 系统sudo pacman -S htopFedora 系统sudo dnf install htop2,启动htop 命令
在终端中输入htop命令启动。与top 命令不同,htop 命令的默认更新间隔为2 秒。可以使用-d选项指定更新间隔,例如:htop -d 5表示每5秒更新一次。
3. htop命令的屏幕输出
htop 命令的屏幕输出分为几个区域:
第一行是系统整体信息,包括当前系统时间、运行时间、平均负载等。第二行是CPU和内存的总体使用情况,包括CPU总使用情况、内存使用情况等。第三行是交换空间的使用。第四行是进程列表,按照CPU使用率、内存使用率等指标排序。您可以使用键盘的上下箭头键和PgUp/PgDn 键进行滚动,使用左右箭头键进行排序。进程列表下面是一些统计信息,包括CPU时间、内存和交换空间使用情况、进程数量等。 4、htop命令交互操作
在htop 命令中,您可以使用一些键盘快捷键进行交互式操作:
k:要终止进程,需要输入进程ID。 F2:进入htop的设置界面,可以修改栏目显示、排序、颜色等设置。 F3:进行流程搜索,需要输入搜索关键字。 F4:执行进程过滤。您可以选择流程状态、用户和其他条件进行过滤。 F5:刷新当前进程列表。 F6:按特定列排序,如进程名称、CPU 使用情况、内存使用情况等。 F7:降低进程的优先级。 F8:增加进程的优先级。 F9:弹出进程终止菜单,可以选择不同的终止方式。 h:显示帮助信息。 q:退出htop 命令。 5. htop命令的选项
除了上面提到的-d选项之外,还有一些其他常用的选项:
-p:指定要监视的进程ID。 -u:指定要监控的用户名。 -t:仅显示具有特定进程状态的进程。 -C:关闭彩色显示。 -h:显示帮助信息。 --version:显示htop版本信息。执行htop -p pid查看对应进程的资源使用情况,如下图:
htop执行结果
iostat是一个Linux系统性能监控工具,可以用来监控系统的磁盘I/O、CPU和其他设备的使用情况。下面是iostat命令的详细解释:
1.iostat工具的安装
Ubuntu 系统sudo apt-get install sysstatCentOS 系统sudo yum install sysstatDebian 系统sudo apt-get install sysstatArch Linux 系统sudo pacman -S sysstatFedora 系统sudo dnf install htop2,启动iostat 命令
在终端中输入iostat命令启动。 iostat命令的默认更新间隔是1秒。您可以使用-n参数指定更新间隔。例如:iostat -n 5 表示每5秒更新一次。
3.iostat命令的屏幕输出
iostat 命令的输出包含三个部分:
CPU利用率统计:包括用户状态、系统状态和空闲状态三种状态下的CPU使用情况。磁盘I/O统计:包括每个磁盘的读写速度、IOPS、延迟等指标。其他设备统计:包括各个设备的使用情况,如网络接口、NFS等。 4. iostat命令的选项
iostat命令支持多种选项,以下是常用的选项:
-c:仅显示CPU利用率统计信息。 -d:仅显示磁盘I/O 统计信息。 -h:以易于阅读的格式显示统计结果。 -k:显示磁盘I/O 统计信息(以KB/s 为单位)。 -m:显示磁盘I/O 统计信息(以MB/s 为单位)。 -t:在输出中包含时间戳。 -x:显示扩展统计信息,包括CPU上下文切换次数、进程数量等。 -y:仅显示网络I/O统计信息。 -p:仅显示指定磁盘的I/O统计信息。 5、iostat命令输出结果说明
iostat 命令的输出包含大量信息。以下是一些常见统计指标的解释:
%user:表示CPU用户模式使用情况。 %system:表示CPU系统状态使用情况。 %idle:表示CPU空闲使用情况。 r/s:表示每秒磁盘读操作次数。 w/s:表示每秒磁盘写操作的次数。 rkB/s:表示每秒从磁盘读取的数据量,单位为KB。 wkB/s:表示每秒写入磁盘的数据量,单位为KB。 wait:平均磁盘I/O响应时间,单位毫秒。 svctm:平均磁盘I/O服务时间,单位毫秒。 %util:表示磁盘使用情况。执行iostat 1 10命令结果如下:
iostat命令结果
vmstat是Linux和Unix系统的命令,用于显示系统的虚拟内存状态和进程信息。此命令提供有关系统内存、虚拟内存、交换空间、磁盘I/O、CPU 活动和进程活动的实时统计信息。
vmstat命令的语法如下:
vmstat [options] [delay [count]] 其中,delay代表时间间隔,单位为秒,表示每delay秒显示一次统计信息; count代表显示器的数量。
以下是vmstat 命令的一些常见选项:
-a:显示所有信息,相当于-s -f:显示fork数量-m:显示内存信息-n:不显示头信息-s:显示摘要信息-d:显示磁盘信息-t:显示下面的timestamp是vmstat命令输出的字段描述:
r: 系统运行队列中的进程数,包括正在运行和等待的进程b: 等待资源的进程数,即处于不间断状态的进程数swpd: 虚拟内存使用情况,即交换区使用情况free:可用内存大小buff: 使用缓冲缓存的内存大小: 缓存的内存大小si: 每秒从磁盘读取的虚拟内存大小so: 每秒写入磁盘的虚拟内存大小bi: 每秒从块设备(磁盘)读取的块数bo: per Second 写入块设备(磁盘)的块数in: 每秒中断数cs: 每秒上下文切换数us: 用户空间进程占用的CPU 时间百分比sy: 内核空间进程占用的CPU 时间百分比id: 空闲CPU 百分比time wa: 等待I/O CPU 时间的百分比vmstat 命令可以帮助系统管理员快速检测系统性能瓶颈,如内存不足、磁盘I/O 瓶颈等。同时vmstat 命令还可以监控进程和系统帮助用户了解系统运行状态的活动。
sar 命令是Linux 和Unix 系统中强大的性能监控工具。用于获取系统的各种统计数据,如CPU使用率、内存使用率、网络传输速率等。对这些数据的分析可以帮助管理员了解系统性能瓶颈、诊断问题并做出必要的优化。
sar命令的语法如下:
sar [options] [interval [count]] 其中,interval表示每隔interval秒获取统计数据,count表示获取统计数据的次数。如果省略interval和count,sar将默认每分钟获取一次统计数据,无限循环。
以下是sar 命令的一些常见选项:
-u:显示CPU使用情况-r:显示内存使用情况-n:显示网络传输速率-b:显示磁盘I/O统计信息-q:显示系统队列和负载均衡信息-P:显示每个CPU核心使用情况-d:显示磁盘活动-w:显示系统交换区使用情况-p:指定监视进程的性能。以下是sar 命令输出的一些常见字段描述:
CPU:每个CPU 核心的使用率,包括用户模式、系统模式和空闲时间%user:用户模式CPU 使用率%nice:优先级较低的进程占用CPU 时间的百分比%system:内核模式CPU 使用率%iowait :等待I/O操作完成的时间占用的CPU时间%steal:其他虚拟机或物理机占用CPU时间的百分比%idle:CPU空闲时间占用CPU时间的百分比memory:内存使用情况,包括kbmemfree:可用物理内存大小kbmemused:已用物理内存大小kbbuffers:缓冲区大小kbcached:缓存大小kbswpfree:可用交换大小kbswpused:已用交换大小swap:交换使用情况pswpin:每秒交换从属数据量读入区域pswpout:每秒写入交换区的数据量io:磁盘I/O 统计tps:每秒磁盘I/O 操作数rd_sec/s:每秒从磁盘读取的数据量wr_sec/s :每秒写入磁盘的数据量队列:队列和负载级别
free命令是Linux系统中用来查看内存使用情况的命令。它可以显示系统的物理内存和交换区的使用情况。通过使用free命令,可以了解当前系统中空闲内存的大小、已用内存的大小、交换区的使用情况等。 free命令通常用于查看系统内存使用情况,以便优化或调整如果需要的话可以制作。
free命令的语法如下:
free [选项]以下是free 命令的一些常用选项:
-b:以字节为单位显示内存使用情况-k:以千字节为单位显示内存使用情况(默认选项) -m:以兆字节为单位显示内存使用情况-g:以千兆字节为单位显示内存使用情况单位显示内存使用情况-t:以千字节为单位显示内存使用情况输出的最后一行。以下是free命令输出的一些常见字段说明:
Total:系统物理内存总量used:已用物理内存大小free:空闲物理内存大小shared:共享内存大小buffers:缓冲区大小cached:缓存大小available:可用物理内存大小swap:交换区使用情况total:总计size of the swap areaused:已用交换区的大小free:空闲交换区的大小。其中,available字段表示当前可用的物理内存大小,其值可以根据当前内存使用情况动态调整。因此,available字段通常比free字段更准确地反映当前系统内存的使用情况。
netstat命令是Linux系统中常用的网络工具。它可用于显示网络连接状态、路由表和网络接口等信息。通过使用netstat命令,您可以了解系统当前的网络连接情况,以便在必要时进行优化或调整。
netstat命令的语法如下:
netstat [选项]以下是netstat命令的一些常用选项:
-a:显示所有连接和监听端口-t:显示TCP 连接-u:显示UDP 连接-n:以数字形式显示网络地址和端口号-p:显示使用指定协议的程序-r:显示系统路由表-i:显示网络接口信息。以下是netstat命令输出的一些常见字段描述:
Proto:连接使用的协议(TCP 或UDP) Recv-Q:接收队列的大小Send-Q:发送队列的大小Local Address:本地地址和端口号foreign Address:远程地址和端口号State :连接状态在netstat 的输出中,常见的连接状态有:
ESTABLISHED:连接已建立SYN_SENT:等待连接确认(SYN) SYN_RECV:收到连接确认请求(SYN) FIN_WAIT1:等待远端关闭连接FIN_WAIT2:远端已关闭连接,等待本地TIME_WAIT:等待远端确认关闭连接CLOSE_WAIT:等待远端关闭连接LAST_ACK:等待远端确认关闭连接LISTEN:监听端口,等待连接CLOSING :关闭连接在实际应用中,常用的netstat命令选项有-t(显示TCP连接)、-u(显示UDP连接)、-n(以数字形式显示网络地址和端口号)。通过结合其他命令和选项,您可以进一步了解系统的网络连接状态和性能瓶颈。
iftop是一个类似于top命令的Linux网络监控工具。可以实时显示网络流量,支持按源地址、目的地址、端口号等方式排序。通过使用iftop命令,您可以轻松查看当前网络连接状态,了解哪些IP地址或端口号正在占用带宽。
iftop命令的语法如下:
iftop [选项]以下是iftop 命令的一些常用选项:
-n:以数字形式显示网络地址和端口号-N:以主机名形式显示网络地址和端口号-i:指定要监控的网络接口,默认为第一个非环回网络接口-F :使用BPF过滤器执行数据包过滤-B:以字节为单位显示带宽使用情况。以下是iftop 命令输出的一些常见字段描述:
SrcIP:源IP 地址DstIP:目的IP 地址Proto:使用的协议(TCP 或UDP) SInt:源端口号DInt:目的端口号Rate:数据包速率Cum:累计流量在iftop 的输出中,速率(Rate)和累计流量流量(Cum)有不同的单位(如Kbps、Mbps、GB),可以通过-B选项以字节为单位显示。
除了上述常用选项外,iftop还支持一些其他高级功能,例如流量统计、IP/MAC地址映射、DNS解析等。通过掌握iftop的使用方法,网络流量监控和调优可以更加方便。
tcpdump命令是常用的网络数据包分析工具,可用于捕获、解析和显示网络数据包的内容。通过使用tcpdump命令,您可以对网络流量进行深入分析,了解网络通信细节和性能瓶颈。
tcpdump命令的语法如下:
tcpdump [选项] [表达式]以下是tcpdump 命令的一些常用选项:
-i:指定要监控的网络接口-n:以数字形式显示网络地址和端口号-X:以十六进制和ASCII 码显示数据包内容-vv:输出详细信息-c:设置捕获数据数量packet -w:将数据包写入文件tcpdump还支持一些复杂的过滤表达式,可以根据网络地址、协议、端口号等多种条件对数据包进行过滤和分析。
以下是tcpdump 命令的一些常见表达式:
host:指定要监控的主机名或IP地址net:指定要监控的网络地址port:指定要监控的端口号proto:指定要监控的协议使用tcpdump命令捕获网络数据包并查看其详细信息。可以根据源地址和目的地址、端口号和协议过滤出所需的数据包。此外,捕获的数据包可以保存到文件中以供后续分析和处理。 tcpdump是一款功能强大的网络数据包分析工具,广泛应用于网络故障排除和性能调优。
strace 命令是Linux 系统上常用的系统调用跟踪工具。它可以用来监视进程的系统调用和信号,跟踪进程执行的每一步,并输出到标准输出或文件。 strace命令可以帮助程序员和系统管理员分析进程运行过程中出现的问题,了解进程与系统的交互情况,找到程序的性能瓶颈。
strace命令的语法如下:
strace [options] command [args]以下是strace 命令的一些常用选项:
-p:指定要跟踪的进程ID -o:将输出写入文件-e:指定要跟踪的系统调用-s:指定输出字符串的最大长度-c:显示系统调用的统计信息strace命令输出的信息包括进程执行过程中发生的系统调用和信号,以及这些系统调用和信号的参数、返回值等详细信息。这些信息可以帮助我们了解进程与操作系统交互的细节,并可以用来调试和优化程序的性能。
以下是strace 命令的一些常用选项:
open:打开文件read:从文件中读取数据write:向文件写入数据close:关闭文件execve:执行新进程brk:调整进程数据段大小munmap:释放内存映射区域ioctl:执行设备控制命令select: wait 通过strace 命令,可以使用一组文件描述符上的I/O 事件来监视进程的系统调用和信号,以了解进程与操作系统交互的细节,并可用于调试和优化程序的性能。 strace命令广泛应用于系统管理和软件开发中。