运维笔试题及答案
上周帮朋友公司筛运维岗简历,笔试有道题挺有意思:服务器CPU使用率突然飙到100%,题及你登上机器后前三条命令敲什么?答案收到四十多份答案,能直接上手的笔试不到十个。多数人写的题及是“top、ps、答案netstat”——顺序错了,笔试真出故障时这么干,题及黄花菜都凉了。答案
正确的笔试头三下应该是:先uptime看负载趋势,再dmesg | tail抓内核报错,题及最后vmstat 1 5看上下文切换和IO等待。答案为什么?笔试top本身在高负载下可能卡住,而dmesg往往能直接告诉你是题及不是OOM killer在杀进程。这是答案经验,不是背书能背出来的。
文件描述符泄漏怎么查
笔试题里常问“Too many open files”怎么处理。标准答案会说改ulimit,但实际场景里,你得先确认是哪个进程在漏。lsof -p PID | wc -l 只能看总数,更实用的是按类型分组:lsof -p PID | awk '{ print $5}' | sort | uniq -c | sort -rn。我见过一个Java服务,80%的fd都是socket,代码里HttpClient没关连接池。这种问题改系统参数治标不治本,重启能扛两天,第三天照样挂。
还有个细节:/proc/sys/fs/file-nr 里三个数字分别代表已分配、未使用、最大上限。如果第二个数一直很小,说明系统在频繁分配回收,性能会抖。这个点很少有人答得出来。
磁盘满了但du对不上
经典题:df显示/分区100%,du -sh /* 加起来才60%。剩下40%去哪了?答案通常是deleted文件仍被进程持有。lsof | grep deleted 能列出来,重启对应进程空间就释放。但有个坑——如果进程是nginx这种master-worker模型,你得重启worker,光reload不一定管用。我遇到过更诡异的:Zabbix agent采集时正好卡在删除瞬间,数据上报出现锯齿状,监控图上像心电图。
另一种可能是文件系统预留块。ext4默认给root留5%,tune2fs -m 0 /dev/sda1 可以调。生产环境别调成0,留1%到2%比较稳妥,否则root自己都写不进日志。
写Shell脚本时的真实陷阱
题目:写个脚本监控目录下文件数量,超过1000就报警。多数人写 ls | wc -l。文件数上万时ls会报“argument list too long”,直接失败。正确姿势是 find /path -maxdepth 1 -type f | wc -l。再进一步,如果目录里有特殊字符文件名,还得加 -print0 配合 xargs -0。
还有个隐藏考点:脚本里用 cd 切换目录后,如果目录被删了,后续命令全在错误路径执行。稳妥写法是 cd /target || exit 1。这种细节,没踩过坑的人根本想不到。
网络排查的优先级
“网站打不开”这种题,别上来就ping。先 curl -v --connect-timeout 3 http://target,看卡在哪一步:DNS解析、TCP握手、TLS协商还是HTTP响应。如果是DNS慢,dig +trace 比nslookup管用。TCP握手失败,telnet IP 端口 比ping更能说明问题——ping通不代表端口开。
我面过一个候选人,问他“ping通但curl超时”,他答“网络没问题,是应用挂了”。方向对,但不够细。可能是防火墙DROP了80端口,也可能是服务只监听了127.0.0.1。ss -tlnp | grep 80 一看便知。这种题考的是排查路径,不是知识点背诵。
运维笔试别追求标准答案。真实故障现场没有ABCD选项,只有“先保业务还是先抓现场”的取舍。我自己的习惯是:能重启恢复的先恢复,同时用tcpdump或strace留证据。事后复盘比当场炫技重要得多。
本文地址:http://www.79wt.cn/news/571c1199417.html
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。