当前位置:首页>Linux>Linux 基础高频面试题:CPU、内存、磁盘、进程怎么排查?

Linux 基础高频面试题:CPU、内存、磁盘、进程怎么排查?

  • 2026-10-11 08:08:48
Linux 基础高频面试题:CPU、内存、磁盘、进程怎么排查?

Linux 基础高频面试题:CPU、内存、磁盘、进程怎么排查?

开篇场景

面试官问:

“线上机器 CPU 飙到 100%,你怎么处理?”

不要只回答 top。生产环境中,CPU 高只是现象,背后可能是流量突增、死循环、GC 频繁、慢 SQL、线程阻塞或异常任务。

Linux 排障总览图

Linux 排障CPU内存磁盘进程网络日志toppidstatperf火焰图freevmstatpmapOOMdfduiostatinodepspstreelsofstracessnetstattcpdumpiftopjournalctldmesgtailgrep

高频面试题

1. CPU 使用率很高怎么排查?

标准思路:

单进程整体高CPU 使用率高是单进程高还是整体高?top 找 PID查看线程: top -Hp PID结合应用栈: jstack 和pprof 和 perf看负载和上下文切换vmstat 和 pidstat判断 CPU 计算 和 IO 等待和 系统调用定位代码或任务

常用命令:

topuptimepidstat 1vmstat 1ps -eo pid,ppid,cmd,%cpu,%mem --sort=-%cpu | head

加分点:

  • 区分 us、sy、wa、id。
  • 看 load average 时要结合 CPU 核数。
  • Java 服务要能联想到 jstack、GC 日志和线程状态。

2. 内存使用率高怎么排查?

是否是否内存告警free -h 查看整体是否发生 swap?性能风险较高继续观察ps 找高内存进程pmap 和 smem 查看详情是否 OOM?dmesg 和 journalctl 查看OOM Killer分析缓存 和 泄漏 和 突增

常用命令:

free -hps aux --sort=-%mem | headdmesg -T | grep -i oomvmstat 1

面试表达:

我会先区分是 page cache 正常占用,还是进程真实内存增长。如果出现 swap 或 OOM,需要优先评估业务影响,并结合进程内存、应用日志和最近变更定位是否存在内存泄漏或流量突增。

3. 磁盘满了怎么处理?

是否磁盘使用率 100%df -h 定位分区df -i 检查 inodedu -sh 定位大目录是否日志过大?压缩 和 清理 和 切割日志查找大文件或临时文件恢复服务并补充 logrotate

常用命令:

df -hdf -idu -sh /* 2>/dev/null | sort -hfind /var/log -type f -size +500M

注意:

  • 不要直接删除正在被进程占用的大日志文件,可能空间不释放。
  • 可用 lsof | grep deleted 检查已删除但仍被占用的文件。

4. 如何查看端口被哪个进程占用?

ss -lntp | grep 8080lsof -i :8080netstat -lntp | grep 8080

5. 如何查看系统启动日志?

journalctl -xejournalctl -u nginxjournalctl -u docker --since "1 hour ago"dmesg -T

Linux 面试加分图谱

会命令懂指标能判断异常能关联应用能恢复业务能预防复发

总结清单

  • CPU 高:看进程、线程、系统态、用户态、IO wait。
  • 内存高:区分 cache、进程占用、swap、OOM。
  • 磁盘满:同时检查空间和 inode。
  • 端口问题:用 ss、lsof 定位监听和连接。
  • 日志排查:优先看应用日志、系统日志、内核日志。

最新文章

随机文章