监控Linux系统性能的一些工具和命令


监控Linux系统性能的一些工具和命令:

top:这是一个常用的命令行工具,用于查看系统中最耗费CPU和内存的进程。

htop:与top类似的命令行工具,但提供了更多的信息和交互式界面。

iostat:用于查看CPU使用率、磁盘I/O和网络I/O等系统统计信息。

vmstat:显示系统虚拟内存、进程、CPU和I/O等信息。

sar:系统活动报告工具,可监视CPU使用率、内存使用情况、网络活动和磁盘I/O等信息。

free:用于查看系统中空闲和已用内存的总量。

netstat:显示网络连接、路由表、接口统计信息等。

iftop:实时监视网络流量。

tcpdump:抓取和分析网络流量。

strace:用于跟踪系统调用和信号。


top命令详解

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详解

htop是一种交互式的命令行进程查看工具,它提供了比top更加强大和直观的功能。以下是htop命令的详解:


1、htop工具安装

Ubuntu系统

sudo apt-get install htop

CentOS系统

sudo yum install epel-release

sudo yum install htop

Debian系统

sudo apt-get install htop

Arch Linux系统

sudo pacman-S htop

Fedora系统

sudo dnf install htop


2、启动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命令详解

iostat是一个Linux系统性能监视工具,它可以用来监视系统的磁盘I/O、CPU和其他设备的使用情况。以下是iostat命令的详解:


1、iostat工具安装

Ubuntu系统

sudo apt-get install sysstat

CentOS系统

sudo yum install sysstat

Debian系统

sudo apt-get install sysstat

Arch Linux系统

sudo pacman-S sysstat

Fedora系统

sudo dnf install htop


2、启动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:以KB/s为单位显示磁盘I/O统计结果。

-m:以MB/s为单位显示磁盘I/O统计结果。

-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。

await:表示磁盘平均I/O响应时间,单位为毫秒。

svctm:表示磁盘平均I/O服务时间,单位为毫秒。

%util:表示磁盘使用率。


执行iostat 1 10命令结果如下

iostat命令结果

vmstat命令详解

vmstat是一个用于Linux和Unix系统的命令,用于显示系统的虚拟内存状态和进程信息。该命令提供了有关系统内存、虚拟内存、交换空间、磁盘I/O、CPU活动和进程活动的实时统计信息。

vmstat命令的语法如下:

vmstat[options][delay[count]]

其中,delay表示间隔时间,单位为秒,表示每隔delay秒显示一次统计信息;count表示显示次数。

以下是vmstat命令的一些常用选项:

-a:显示所有信息,等效于-s

-f:显示fork的次数

-m:显示内存信息

-n:不显示头部信息

-s:显示摘要信息

-d:显示磁盘信息

-t:显示时间戳

下面是vmstat命令输出的字段说明:

r:系统运行队列中的进程数量,包括正在运行和等待运行的进程

b:等待资源的进程数量,即处于不可中断状态的进程数量

swpd:虚拟内存使用情况,即交换区使用情况

free:空闲内存的大小

buff:用作缓冲的内存大小

cache:用作缓存的内存大小

si:每秒从磁盘读入虚拟内存的大小

so:每秒写入磁盘的虚拟内存大小

bi:每秒从块设备(磁盘)读入的块数量

bo:每秒写入块设备(磁盘)的块数量

in:每秒中断的数量

cs:每秒上下文切换的次数

us:用户空间进程占用CPU时间的百分比

sy:内核空间进程占用CPU时间的百分比

id:空闲CPU时间的百分比

wa:等待I/O的CPU时间的百分比

vmstat命令可以帮助系统管理员快速检测系统的性能瓶颈,如内存不足、磁盘I/O瓶颈等。同时,vmstat命令还可以监控进程和系统活动,从而帮助用户了解系统运行情况。


sar命令详解

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:每秒写入磁盘的数据量

queue:队列和负载平


free命令详解

free命令是Linux系统中用于查看内存使用情况的命令,可以显示系统的物理内存和交换区使用情况。通过使用free命令,可以了解当前系统中空闲内存的大小、已用内存的大小、交换区的使用情况等等。free命令通常用于查看系统内存使用情况,以便在需要时进行优化或调整。

free命令的语法如下:

free[options]

以下是free命令的一些常用选项:

-b:以字节为单位显示内存使用情况

-k:以千字节为单位显示内存使用情况(默认选项)

-m:以兆字节为单位显示内存使用情况

-g:以吉字节为单位显示内存使用情况

-t:在输出最后一行显示总内存使用情况

下面是free命令输出的一些常用字段说明:

total:系统的物理内存总量

used:已用物理内存大小

free:空闲物理内存大小

shared:共享内存大小

buffers:缓存区大小

cached:缓存大小

available:可用物理内存大小

Swap:交换区的使用情况

total:交换区总大小

used:已用交换区大小

free:空闲交换区大小

其中,available字段表示当前可用的物理内存大小,它的值可以根据当前内存使用情况动态调整。因此,available字段通常比free字段更准确地反映了当前系统的内存使用情况。


netstat命令详解

netstat命令是Linux系统中常用的网络工具,可以用来显示网络连接状态、路由表和网络接口等信息。通过使用netstat命令,可以了解当前系统中的网络连接情况,以便在需要时进行优化或调整。

netstat命令的语法如下:

netstat[options]

以下是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命令详解

iftop是一款类似于top命令的Linux网络监测工具,可以实时显示网络流量的情况,支持按源地址、目标地址、端口号等多种方式进行排序。通过使用iftop命令,可以方便地查看当前网络连接的情况,了解哪些IP地址或端口号正在占用带宽。

iftop命令的语法如下:

iftop[options]

以下是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[options][expression]

以下是tcpdump命令的一些常用选项:

-i:指定要监听的网络接口

-n:以数字形式显示网络地址和端口号

-X:以十六进制和ASCII码形式显示数据包的内容

-vv:输出详细的信息

-c:设置捕获的数据包数量

-w:将数据包写入文件

tcpdump还支持一些复杂的过滤表达式,可以根据网络地址、协议、端口号等多种条件对数据包进行过滤和分析。

以下是tcpdump命令的一些常用表达式:

host:指定要监听的主机名或IP地址

net:指定要监听的网络地址

port:指定要监听的端口号

proto:指定要监听的协议

使用tcpdump命令可以捕获网络数据包,查看其详细信息。可以根据源和目的地址、端口号和协议过滤出需要的数据包。此外,还可以将捕获的数据包保存到文件中,以供后续分析和处理。tcpdump是一个功能强大的网络数据包分析工具,在网络故障排除和性能调优中有着广泛的应用。


strace命令详解

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:等待一组文件描述符上的I/O事件

通过strace命令,可以监视进程的系统调用和信号,从而了解进程与操作系统之间的交互细节,并可以用于调试和优化程序的性能。strace命令在系统管理和软件开发中都有广泛的应用。

来源:头条号-运维笔记

文章内容来自网络,如有侵权,联系删除、联系电话:023-85238885

参与评论

请回复有价值的信息,无意义的评论将很快被删除,账号将被禁止发言。

评论区