目录
1. top
2. vmstat
3. iostat
4. mpstat
5. netstat
6. sar
7. htop
8. dstat
9. free
10. lsof
11. pidstat
12. nmon
13. iftop
14. glances
面试准备小贴士
在Linux系统管理和故障排查中,使用性能监控工具是非常重要的。这些工具可以帮助你理解系统的当前状态,包括CPU使用率、内存占用、磁盘活动、网络状况等。下面是一些常用的Linux系统性能监控命令的详细介绍,这些都是面试中常见的知识点。
1. top
- 功能:
top
命令显示当前系统中运行的进程的实时视图,包括CPU和内存的使用情况。 - 常用选项:
-u <用户名>
:显示指定用户的进程。-p <进程号>
:监控指定的进程。
- 用法示例:输入
top
后,可以使用交互命令,如P
(按CPU使用率排序)、M
(按内存使用排序)等。
2. vmstat
- 功能:
vmstat
(Virtual Memory Statistics)命令报告关于内存、交换、I/O、系统活动等信息。 - 常用选项:
vmstat 1
:每1秒刷新显示一次统计信息。vmstat 1 5
:每1秒刷新一次,共显示5次统计信息。
- 用法示例:
vmstat
输出包含了CPU、内存、交换区、IO等的详细信息。
3. iostat
- 功能:
iostat
命令用于监控系统输入输出设备和CPU的使用情况。 - 常用选项:
-x
:显示扩展统计信息。-d
:仅显示磁盘统计信息。-c
:仅显示CPU使用情况。
- 用法示例:
iostat -xd 1
每秒更新磁盘使用情况和扩展统计信息。
4. mpstat
- 功能:
mpstat
命令显示各个可用CPU的性能统计。 - 常用选项:
-P ALL
:显示所有CPU的统计信息。
- 用法示例:
mpstat -P ALL 1
每1秒更新所有CPU的统计信息。
5. netstat
- 功能:
netstat
命令显示网络连接、路由表、接口统计、伪装连接和多播成员。 - 常用选项:
-tuln
:显示TCP、UDP的所有连接的监听端口。-c
:持续输出网络状态信息。
- 用法示例:
netstat -tuln
列出所有监听端口。
6. sar
- 功能:
sar
命令用于收集、报告和保存系统活动信息。 - 常用选项:
-u
:显示CPU使用情况的摘要。-d
:显示磁盘使用情况。-n DEV
:显示网络接口的统计数据。
- 用法示例:
sar -u 1 3
每1秒报告一次CPU使用情况,共报告3次。
7. htop
- 功能:
htop
是top
命令的一个增强版,提供了一个彩色的界面,并能通过键盘操作进行各种任务管理。 - 用法示例:直接运行
htop
即可。
8. dstat
- 功能:
dstat
是vmstat
、iostat
、netstat
等工具的综合替代品,能够显示关于系统资源的统计信息。 - 用法示例:
dstat -cdmn
同时显示CPU、磁盘、内存和网络信息。
9. free
- 功能:
free
命令用于显示系统内存的使用情况,包括物理内存、交换空间等。 - 常用选项:
-m
:以MB为单位显示内存使用情况。-g
:以GB为单位显示内存使用情况。
- 用法示例:
free -m
显示以MB为单位的内存使用情况。
10. lsof
- 功能:
lsof
(list open files)是一个列出当前系统打开文件的工具。 - 常用选项:
-u <用户名>
:列出指定用户打开的文件。-i
:显示网络连接等信息。
- 用法示例:
lsof -i :80
列出所有打开80端口的进程。
11. pidstat
- 功能:
pidstat
是sysstat
包中的一个工具,用于监控各个进程的资源占用情况,包括CPU、内存、磁盘I/O等。 - 常用选项:
-u
:监控CPU使用情况。-r
:监控内存使用情况。
- 用法示例:
pidstat -u 1 5
每1秒报告一次CPU使用情况,共报告5次。
12. nmon
- 功能:
nmon
是一个性能监控工具,可以同时报告CPU、内存、网络、磁盘等多个系统指标。 - 用法示例:直接运行
nmon
,在界面中选择要监控的项目。
13. iftop
- 功能:
iftop
命令用于监控网络接口的实时流量。 - 用法示例:
iftop
在命令行中显示网络接口的当前带宽使用情况。
14. glances
- 功能:
glances
是一个跨平台的监控工具,以终端界面展示系统的各种实时状态信息。 - 用法示例:直接运行
glances
可以查看CPU、加载、内存、网络等多方面的综合信息。
面试准备小贴士
在面试中,你不仅需要知道这些命令的名称和基本功能,更重要的是要能够解释它们的输出、如何使用这些工具进行故障诊断和性能优化。准备一些实际案例,比如你是如何使用这些工具解决特定问题的,会让你在面试中更加突出。此外,了解一些命令的高级用法和最佳实践,也会是你的加分项。