当前位置:首页>Linux>Linux运维找工作就怕考这些题 全答对的薪资都不低!

Linux运维找工作就怕考这些题 全答对的薪资都不低!

  • 2026-10-11 08:29:45
Linux运维找工作就怕考这些题 全答对的薪资都不低!
面试官常问的基础问题,其实最容易翻车

你有没有过这种经历,准备了一堆高大上的集群调度、云原生问题,结果面试官一上来先问了个最简单的,你当场卡壳?

比如问你怎么查看当前系统的负载情况,好多人张口就说top,然后被追问top里那三个数字到底代表什么,直接就答不上来了。

平均负载其实不是说当前有多少进程在占用CPU,是单位时间内,系统中处于可运行状态和不可中断状态的进程数平均值,懂这个的真不多。不信你现在回想一下,三个数字分别对应1分钟、5分钟、15分钟,怎么判断负载高不高?如果1分钟负载高,15分钟负载低,说明是临时突发的压力,要是15分钟负载都很高,那就是系统真的负载过重了。

还有问你怎么查看进程占用了多少内存,好多人说ps,那ps出来的RSS和VSZ到底是什么区别?RSS是进程实际占用的物理内存大小,VSZ是进程可用的虚拟内存大小,这个混淆的人真的一抓一大把。

更离谱的是问你swap分区到底是干嘛的,有人说就是当内存不够用的时候,把硬盘空间拿来当内存用,这话没错,但接着问你,swap开太高会不会影响系统性能?当然会啊!硬盘的读写速度比内存慢太多了,频繁换页会让系统整体卡得要死,但不开swap也不行,万一内存真爆了,直接触发OOM-killer杀进程,那更麻烦。

排查服务问题的时候,这些题考得最多

做Linux运维,日常最多的工作就是排查线上问题,面试官特别喜欢问这类场景题。

比如说线上一个nginx服务突然访问不了了,你会怎么一步步排查?

别上来就说重启服务,那是最菜的做法,重启了问题下次还会出现。先做什么?先看看nginx进程还在不在啊,用ps aux | grep nginx看一下,要是进程没了,先去看日志啊,日志在哪里?大部分默认在/var/log/nginx下面,看看error.log里面有没有报错,是端口被占用了,还是配置文件写错了。

要是进程还在,那看什么?看端口有没有起来啊,用netstat -lntp或者ss -lntp看80或者443端口有没有被nginx监听,要是没监听,那还是配置的问题。要是端口正常监听了,那看看能不能本地访问,直接curl localhost:端口,看看能不能拿到正常的响应,要是本地都拿不到,那就是nginx本身的问题,要是本地能拿到,那就是网络的问题啊。

是不是防火墙挡了?看看iptables的规则,或者firewalld有没有开对应的端口,再就是看看前端的负载均衡、反向代理有没有问题,是不是安全组把端口封了。就这一步步排查,能说清楚顺序的,都是真的处理过问题的,瞎说一通的,肯定是没怎么碰过线上故障。

还有一个高频问题,就是磁盘满了怎么排查?这个看起来简单,好多人也会答错。第一步肯定是df -h看一下哪个分区满了对吧?找到了哪个分区,然后去哪里找大文件?好多人说find / -size +100M,这样找没错,但有一种情况你想不到,就是有的文件已经被删除了,但是进程还握着文件句柄没释放,这种情况下df会显示磁盘满了,但是你找大文件根本找不到,对不对?

那这种情况怎么处理?要用lsof | grep deleted,就能找到那些已经被删除但是还没释放空间的文件,要是这些文件很大,把对应的进程重启一下,空间就释放出来了,这个点真的是区分新手和熟手的关键,好多没踩过这个坑的人,根本不知道还有这种情况。

我刚入行的时候就踩过这个坑,当时线上一个服务打日志,把磁盘打满了,我直接rm把日志文件删了,结果df看磁盘还是满的,我查了半天才搞明白怎么回事,那时候才记住这个知识点,现在面试的时候只要问这个题,我把这个点说出来,面试官基本都会点头。

权限和网络问题,考的就是细节

Linux的权限体系,绝对是必考题,逃不掉的。

问你rwx对文件和对目录分别是什么意思?好多人就只知道r是读,w是写,x是执行,不知道对目录来说这三个权限完全不一样。对目录来说,r权限是你能列出目录里面的文件,w权限是你能在目录里面新建删除文件,哪怕你对这个文件没有w权限,只要你有目录的w权限就能删,x权限是你能进入这个目录,对不对?好多人不知道目录必须要有x权限才能进,这个知识点错了,直接就露馅了。

还有那个特殊权限SUID、SGID、Sticky,知道的人就更少了,就说那个Sticky粘滞位,设置在/tmp目录上,作用是什么?就是你只能删除你自己创建的文件,不能删除别人的,对吧?这个对不对?完全对,这个说出来,一下子就比别人懂的多了。

网络相关的题,最近考得越来越多,比如怎么查看当前服务器的网络连接情况?好多人说netstat,现在其实更多人用ss,ss比netstat快很多,大并发的情况下ss的优势特别明显。还有怎么查当前服务器和外部机器的连通性,ping只能看通不通,traceroute能看中间哪一跳丢包了,对不对?还有抓包用什么,tcpdump啊,面试官会问你怎么抓某个端口的包保存下来,tcpdump -i any port 80 -w capture.pcap,就这么简单,但是好多人记不住参数。

还有个特别常考的,就是三次握手四次挥手,会问你time_wait状态是什么,为什么会有time_wait,要是服务器上出现大量time_wait怎么处理?time_wait是主动关闭连接的一方会进入的状态,要等2MSL的时间,目的是为了让对方能收到最后一个ACK包,保证连接可靠关闭,同时防止旧连接的数据包影响新的连接。那大量time_wait占用很多端口资源怎么办?可以调整内核参数,打开tcp_tw_reuse,允许把time_wait状态的端口重新用在新的连接上,这个配置真的解决过很多生产问题。

真懂的人都能说出来这些经验

其实Linux面试,考来考去,大部分都是你日常工作踩过的坑,你要是真的天天用,天天排障,很多题不用背都能说出来,要是你只是背题,稍微问深一点就露馅。

比如我之前面试的时候,面试官问我,有没有遇到过系统突然打不开所有命令,提示command not found,是怎么回事?我当时就笑了,我刚入行的时候手贱改了/etc/profile,把PATH变量改错了,保存之后退出,再登录就所有命令都用不了,当时慌得要死,后来才知道,直接敲全路径比如/bin/ls,/bin/vim就能改回去,这个事儿说出来,面试官就知道你真的踩过这个坑,不是背书。

还有就是问你怎么清理linux的缓存,很多人都知道,echo 1 > /proc/sys/vm/drop_caches就能释放缓存,这个是对的,但是会问你,这个操作会不会影响线上业务?其实不会,因为只有干净的没用的缓存会被释放,正在用的不会,所以有时候线上内存占用高,释放一下缓存就能临时解决问题,当然根本问题还是要找哪个进程吃了太多内存。

找Linux相关的工作,真的不用去背那种几百道的面试题,把这些高频的,和日常工作相关的问题搞懂,把里面的细节说清楚,把自己踩过的坑讲明白,比什么都强。

你要是能把我上面说的这些点都讲清楚,面试官对你的印象分直接拉满,薪资谈的时候都更有底气。

最新文章

随机文章