目录
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、加载、内存、网络等多方面的综合信息。
面试准备小贴士
在面试中,你不仅需要知道这些命令的名称和基本功能,更重要的是要能够解释它们的输出、如何使用这些工具进行故障诊断和性能优化。准备一些实际案例,比如你是如何使用这些工具解决特定问题的,会让你在面试中更加突出。此外,了解一些命令的高级用法和最佳实践,也会是你的加分项。