本篇文章是为不知道技术的HR老师们如何问问题的时候方便搜索,不会面试直接看这篇文章就够了。
实施工程师、技术支持、运维工程师都可以使用。
十个题分为,基础能力(Linux、SQL、网络),服务应用以及解决问题能力(Tomcat、Docker),人情世故能力(客户问题,功劳划分)。
简历筛选
1、没有应聘者PS自拍照的直接PASS,连基本技能都没有,更别谈到实施企业人员能混好了,腼腆的根本不适合这行。
2、简历布局没有逻辑的,直接PASS,整天提交报表,简历格式都不好好处理一下,那就更别说日报,周报,项目记录表格能写好了。
3、只要爱好有旅游的,直接PASS,回头说来一场说走,就走的旅行,你就可能是那个【背锅】的。
实施工程师——夺命十连问
1、Linux下查看剩余磁盘控件的命令是什么?如何查看日志文件的后一百行?
答案与目的:
⑴、查看磁盘剩余空间命令:【df】和【du】。
df -hl:查看磁盘剩余空间
df -h:查看每个根路径的分区大小
du -sh [目录名]:返回该目录的大小
du -sm [文件夹]:返回该文件夹总M数
du -h [目录名]:查看指定文件夹下的所有文件大小(包含子文件夹)
⑵、查看日志文件后一百行?
tail -f -n 100 日志文件(一般是*.log)
-f代表时时查询(打印文件尾部的内容,不断刷新)
-n代表从n行开始查询(打印后 K 行内容或用 -n +K 打印从第 K 行开始的文件内容)
问题目的:
最常用的Linux命令,日志和bug监控都会用到,如果不熟悉的话代表没有做过,直接PASS即可。
2、MySQL事务的四大特性是什么(基础回答)?都是做什么的(入门回答),实现原理是什么(高手回答)?
答案与目的:
⑴、数据库事务正确执行的四个基本要素是【ACID】。
⑵、分别作用是:
A:原子性(Atomicity)
原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
C:一致性(Consistency)
事务前后数据的完整性必须保持一致。
I:隔离性(Isolation)
事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。
D:持久性(Durability)
持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响。
⑶、ACID的实现原理
A(atomicity):使用undo log日志实现,原子性要么都成功,要么都失败,会记录每一次的操作记录的undo log日志,后面发生异常时在从undo log把事物回滚掉。
C(consistency):一致性是根据原子性+隔离性+持久性组合下完成的。
I(isolation):事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务所干扰,多个并发事务之间要相互隔离。【依赖于锁】。
D(durability):redo log日志实现。
实现原理小节:
事务的原子性是通过undolog来实现的。
事务的持久性性是通过redolog来实现的。
事务的隔离性是通过(读写锁+MVCC)来实现的。
事务的一致性是通过原子性,持久性,隔离性来实现的。
问题目的:数据库事务正确执行的四个基本要素,这个必会,后面的看面试者能回答到什么级别,如果还能继续往下说可以参考:ACID_MySQL事务的四大特性详解(MySQL高频面试题)_红目香薰的博客-CSDN博客
3、请说下计算机网络体系结构?(按照回答量进行分级即可)
OSI的体系结构:
(1)物理层(Physical Layer),物理层(Physical Layer)处于OSI参考模型的最低层。物理层的主要功能是利用物理传输介质为数据链路层提供物理连接,以便透明地传送“比特”流。
(2)数据链路层(Data Link Layer),数据链路层是OSI模型中极其重要的一层,它把从物理层来的原
始数据打包成帧。
(3)网络层(Network Layer),网络层定义网络层实体通信的协议,它确定从源结点沿着网络到
目的结点的路由选择,并处理相关的控制问题。
(4)传输层(Transport Layer),传输层的任务是向用户提供可靠的、透明的和端到端的数据传输,以及差错控制和流量控制机制。
(5)会话层(Session Layer),会话层的任务是建立、管理和终止应用程序进程之间的会话和数据交换。这种会话关系是由两个或多个表示层实体之间的对话构成的。
(6)表示层(Presentation Layer),表示层包含了处理网络应用程序数据格式的协议。
(7)应用层(Application Layer),应用层是最终用户应用程序访问网络服务的地方,是OSI参考模型的最高层,是OSI参考模型中最靠近用户的一层,它为用户的应用程序提供网络服务。
TCP/IP的体系结构:
网络接口层:与OSI参考模型的数据链路层、物理层对应。
网际层:对应于OSI参考模型的网络层,主要解决主机到主机的通信问题。
传输层: 对应OSI的传输层,为应用层实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性。
应用层:对应于OSI参考模型的(应用层、表示层、会话层)。
五层协议的体系结构:
物理层:对应OSI参考模型的的物理层。
数据链路层:对应OSI参考模型的的数据链路层。
网络层:对应OSI参考模型的的网络层。
传输层:对应OSI参考模型的的传输层。
应用层:对应于OSI参考模型的(应用层、表示层、会话层)。
问题目的:实施最多的就是分析问题在哪,只有掌握了网络体系才能更好的、更快的找到问题点,从而快速解决。就算不能解决,也能描绘说明问题,让其他人员解决问题。
4、Tomcat相关目录用途?
可以用问答的方式,也可以直接让面试者背。看岗位需求度。
bin目录:主要用来存放Tomcat的命令
conf日录:存放tomcat服务器全局配置的各种文件
lib目录:存放Tomcat服务器所需要的所有Jar包
log目录:存放tomcat执行时的日志文件
webapps目录:Tonmcat默认部署路径
问题目的:考察tomcat的熟练度,如果经常用,这几个文件夹都应该背下来。
5、如何保障服务器磁盘性能,分别从【指标】、【问题分析思路】、【命令】来说明?
五个指标:
- 利用率(Utilization):磁盘处理 I/O 的时间百分比。过度使用(如超过 80%)通常意味着磁盘 I/O 存在性能瓶颈。
- 饱和度(Saturation):指磁盘处理 I/O 的繁忙程度。过度饱和意味着磁盘存在严重的性能瓶颈。当饱和度为 100% 时,磁盘无法接受新的 I/O 请求。
- IOPS(Input/Output Per Second):指每秒 I/O 请求的数量。
- 吞吐量(Throughput):每秒 I/O 请求的大小。
- 响应时间(Response time):指发送 I/O 请求和接收响应之间的间隔时间。
问题分析思路:
- 通过top查看系统整体情况,如果wa过大,详细分析磁盘IO瓶颈;
- 使用 iostat 分析磁盘I/O使用率,磁盘I/O响应时间,磁盘I/O队列长度,查看这3个指标;
- 如果磁盘I/O使用率过高,或磁盘I/O响应时间过长,或磁盘I/O队列长度过大,再借助 pidstat ,定位出导致瓶颈的进程;
- 通过strace来定位进程的所有系统调用,随后分析进程的 I/O 行为;
- 最后通过lsof分析这些 I/O 的来源既进程操作的文件。
命令:
命令1:df,查看系统容量
命令2:slabtop,实时显示内核是如何分配各种缓存的,以及这些缓存的被占用情况。
命令3:iostart、sar、dstat,查看磁盘IO使用率,IOPS、吞吐量、响应时间、IO平均大小以及等待队列时间。
命令4:pdistat、iotop,进程IO大小及IO延迟。
命令5:strace,进程IO系统调用追踪。
问题目的:作为基础实施或运维人员,时刻保证服务器正常运转是本职工作,那么保证服务器稳定的基本常识需要知道与了解。具体看对人员要求是什么样的来面试即可。
6、如何保障网络性能,分别从【指标】、【问题分析思路】、【命令】来说明?
网络性能的指标:
- 带宽:表示链路的最大传输速率,单位通常为 b/s (比特/秒)通常带宽受物理网卡的限制,网卡确定后,带宽随即确定(当然,实际带宽会受限于整个网络链路中最小的那个模块)
- 吞吐量:表示单位时间内成功传输的数据量,单位通常为 b/s(比特/秒)或者 B/s(字节/秒)吞吐量受带宽限制。“网络带宽测试”,这里测试的实际上不是带宽,而是网络吞吐量。网络使用率 = 吞吐量 / 带宽Linux 服务器的网络吞吐量一般会比带宽小,而对交换机等专门的网络设备来说,吞吐量一般会接近带宽。
- 延时:表示从网络请求发出后,一直到收到远端响应,所需要的时间延迟在不同场景中,延时可能会有不同含义。比如它可以表示,建立连接需要的时间(比如 TCP 握手延时),或一个数据包往返所需的时间(比如 RTT)。
- PPS:是 Packet Per Second(包/秒)的缩写,表示以网络包为单位的传输速率PPS 通常用来评估网络的转发能力,比如硬件交换机通常可以达到线性转发(即 PPS 可以达到或者接近理论最大值)。而基于 Linux 服务器的转发,则容易受网络包大小的影响。对 TCP 或者 Web 服务来说,更多会用并发连接数和每秒请求数(QPS,Query per Second)等指标,它们更能反应实际应用程序的性能。
网络的可用性(网络能否正常通信)、并发连接数(TCP 连接数量)、丢包率(丢包百分比)、重传率(重新传输的网络包比例)等也是常用的性能指标。
问题分析思路:
⑴.网络不通:
物理链路是否连通:ethtool
网卡是否正常启用:ifconfig
网关是否正确设置:route -n
应用层:ping IP(使用ICMP协议是第三层,但该命令属于应用层)
⑵.网络速度慢
DNS是否是问题的源头。
查看路由过程中哪些节点是瓶颈。
查看带宽的使用情况。
命令:
网卡设备和驱动:lspci、dmesg、ethtool。
IP参数:ifconfig
通信可达:ping
路由信息:route
DNS状态:dig、nslookup。
查看网络端口状态:netstat、nmap、telnet。
开启防火墙:systemctl start firewalld
关闭防火墙:systemctl stop firewalld
查看防火墙状态:systemctl status firewalld
重启命令: firewall -cmd --reload
设置开机启动:systemctl enable firewalld
7、Dockerfile文件编写常用命令以及作用?
- FROM: 制作image时依据的基本image。
- RUN:制作image时执行的命令,一般在Dockerfile中多次出现。
- CMD:启动docker时执行的命令,在Dockerfile中只出现一次。
- ENV:设置环境变量。
- COPY:制作image时,将文件系统中的文件复制到Docker镜像中。
- WORKDIR:设置工作目录。
- EXPOSE:设置向外暴露的端口。
- VOLUME:设置容器与外界映射的目录。
问题目的:无论是Java微服务还是.NETCore都会用Docker,至少应该能说出5个左右才能让正常运行编辑镜像,可以判断是否是成手。
8、客户问题1
在你进行实施的过程中,公司制作的一款软件系统缺少某一项功能,而且公司也明确表示不会再为系统做任何的修改或添加任何的功能,而客户也坚决要求需要这一项功能!对于实施人员来说,应该怎么去合理妥善处理这个问题?
答:说清楚你实施的是一个项目,不是定制软件。比如超市里卖的皮鞋和鞋匠做的皮鞋,这都是鞋子,但前者是商品,很多一样的商品,你可以买到差不多可以穿的舒服的鞋子;后者是定制,不仅是商品,更是一种劳动,是已完全针对客户需求而生产的,每个细节都是要求完美的。软件也是,没有客户需求的功能,公司既然表明无法实现,那么肯定是功能研发所耗费的时间,财力和利益冲突,你可以对客户说明增加功能要他支付更多的费用,甚至比买软件的价格还贵。
9、客户问题2
在项目实施过程中,使用者对产品提出了适合自己习惯的修改意见,但多个使用者相互矛盾,应该如何去处理?
答:对于客户提出的修改意见,我们实施人员应该有自己的方案。当使用者之间意见出现不一致时,我们应当引导他们内部之间的意见统一,和客户经过沟通或确认后,找到切实可行的方案,双方认可并达成共识。
10、功劳划分
你独立负责了项目A,该项目的PMP在项目A完结后编写项目收尾的绩效数据表时将你的功绩与其他同事进行了绩效划分,并且没有与你说明,请问,这种情况你会如何理解?
答:开放性问题,考察面试者心态稳定性,只要能正确的理解,并温婉的理解该事件,且可以给大家一定的台阶,不出现冲突事件即可。
总结:
共计10个面试题,希望能帮助HR的老师们更好的筛选出合适的员工。