Linux基础与系统管理
Linux是系统运维的基石,面试官通常从文件系统、权限管理、进程调度及系统调优四个维度考察候选人。
解析:
Linux权限分为读(r=4)、写(w=2)、执行(x=1)。
chmod 755 表示:
- 所有者(owner):7 (rwx) - 可读、写、执行
- 所属组(group):5 (r-x) - 可读、执行,不可写
- 其他用户(others):5 (r-x) - 可读、执行,不可写
这种权限设置常见于Web服务器目录,允许所有者修改,其他人仅浏览和执行。
解析:
inode(索引节点)存储文件的元数据(如大小、所有者、权限、时间戳等),不包括文件名和数据块。
如果 df -h 显示空间充足,但 df -i 显示 inode 使用率100%,则无法创建新文件。这通常发生在大量小文件场景(如缓存、日志轮转失败)。
解决方案:查找并清理大量小文件,或使用支持更多inode的文件系统。
解析:
使用 top 或 uptime 查看 Load Average。
排查步骤:
- 查看 Load Average 是否超过 CPU 核心数。
- 使用
top按 'P' (CPU) 或 'M' (Memory) 排序,找到占用资源最高的进程。 - 使用
vmstat 1查看系统整体资源使用情况(CPU、内存、IO等待)。 - 使用
iostat -x 1检查磁盘IO是否成为瓶颈。
解析:
Swap 是磁盘上的虚拟内存空间,当物理内存不足时,系统将不常用的内存页移至 Swap。
调整建议:
- 传统服务器:Swap 大小为物理内存的 1-2 倍。
- 现代内存充足服务器(>16GB):Swap 可设为 4-8GB 或仅保留少量用于休眠。
- 使用
swappiness参数控制内核使用 Swap 的倾向(0-100),数据库服务器通常设为 1 或 0。
Shell脚本编程实战
Shell脚本是运维自动化的核心,面试题常涉及正则表达式、文本处理工具及复杂逻辑构建。
参考答案:
awk '2}' access.log | sort | uniq | wc -l
解析:
$5 > 1000:过滤第5列数值大于1000的行。print $2:输出第2列。sort:排序,为 uniq 做准备。uniq:去重。wc -l:统计行数,即唯一值数量。
参考脚本:
#!/bin/bash DIR="/var/log/app" THRESHOLD=100 EMAIL="admin@example.com"获取目录下文件数量
FILE_COUNT=DIR -type f | wc -l) if [ THRESHOLD ]; then echo "Alert: Directory FILE_COUNT files." | mail -s "Disk Monitor Alert" $EMAIL fi
关键点:使用 find 精确统计,mail 命令发送报警,可配合 crontab 定时执行。
网络协议与故障排查
网络问题是运维高频痛点,考察候选人对TCP/IP协议栈、DNS解析及常见网络工具的熟练度。
⚡ TCP三次握手与四次挥手
面试官常问:为什么握手需要三次?挥手需要四次?
解析:握手三次是为了同步双方序列号并确认对方接收能力。挥手四次是因为TCP是全双工的,一方关闭连接只表示它不再发送数据,另一方可能还有数据要发送,所以需要单独确认。
⚡ DNS解析过程
面试官常问:输入URL到页面展示,中间发生了什么?
解析:1. 浏览器缓存 → 2. 系统Hosts文件 → 3. 本地DNS服务器(递归查询) → 4. 根域名服务器 → 5. 顶级域名服务器 → 6. 权威域名服务器 → 7. 获取IP → 8. 建立TCP连接 → 9. 发送HTTP请求。
⚡ 网络故障排查工具
常用工具:ping (连通性), traceroute (路由追踪), netstat/ss (端口状态), tcpdump/wireshark (抓包分析), curl (HTTP调试)。
数据库运维与自动化
| 技术栈 | 常见面试题 | 考察点 |
|---|---|---|
| MySQL | 主从复制原理?如何备份? | Binlog、GTID、Xtrabackup、性能优化 |
| Redis | 持久化机制?缓存穿透/击穿/雪崩? | RDB/AOF、布隆过滤器、互斥锁 |
| Docker/K8s | Docker与虚拟机区别?Pod生命周期? | 容器隔离、镜像分层、调度策略 |
| Ansible | 如何实现无Agent部署? | SSH协议、Playbook编写、Inventory管理 |
解析:
- 客户端通过 Docker CLI 或 API 发送启动请求给 Docker Daemon。
- Docker Daemon 检查本地镜像,若不存在则从 Registry 拉取。
- 创建容器网络接口,分配IP地址。
- 挂载文件系统,启动容器进程。
- 将容器PID 1 绑定到前台进程,保持容器运行。
面试技巧与职业发展
建议回答结构 (STAR法则):
- S (Situation):简述背景,如“某日大促期间,核心服务响应缓慢”。
- T (Task):明确任务,“需在30分钟内恢复服务并定位根因”。
- A (Action):详细描述行动,“通过监控发现CPU飙升,追踪到某SQL语句,临时限流并优化索引,重启服务”。
- R (Result):量化结果,“服务恢复正常,性能提升50%,并输出复盘报告,新增监控项”。
注意:避免只说结果,重点展示排查思路和解决问题的方法论。
解析:
1. 初级运维:负责日常监控、故障处理、基础部署。
2. 中级运维:自动化脚本编写、系统优化、故障深度排查。
3. 高级运维/SRE:架构设计、高可用方案、云平台管理、性能调优。
4. 运维专家/架构师:全栈技术视野、技术选型、团队管理。
趋势:向SRE(站点可靠性工程师)、DevOps工程师、云原生架构师方向转型。