前言: 首先要强调的是运维面试中遇到 不会
的问题,如何处理?这就需要能够想到 平替
的方案,完全不会的问题不存在,你首先需要注意到的是,技术面试者知道不是所有人都能回答他想要的问题,只要不是太小白的问题,他都更看重的是你的 整体思维
,能找到不同解决问题的 方案
,或者给出大致思路都可以,其他的面试技巧如下:
在运维面试中,如果遇到不会的问题,可以采取以下几种策略来妥善处理:
- 保持冷静:首先,不要慌张,保持冷静,这有助于你更好地
思考
问题。 - 诚实承认:如果确实不知道答案,诚实地告诉面试官你不知道,但强调你
愿意学习
。 - 展示思维过程:即使你不知道确切的答案,也可以展示你的
思考过程
,比如你会怎样去研究这个问题,或者你会如何使用已有的知识来尝试解决问题。 - 提出替代方案:如果你对问题的具体细节不清楚,可以提出一些
替代
方案或类似情况下的处理方法。 - 询问更多信息:有时候,问题可能不够明确,你可以向面试官
请求更多信息
,以便更好地理解问题。 - 关联到已知知识:尝试将问题与你所了解的相关知识联系起来,展示你的知识广度和
应用能力
。 - 展示学习能力和适应性:强调你的学习能力和适应性,表明你能够
快速掌握新技能
并解决新问题。
下面是一个例子:
面试官问:"你如何优化一个大型网站的数据库性能?"
如果你对数据库优化不是特别熟悉,可以这样回答:
保持冷静 :深呼吸,然后开始回答。
诚实承认 :"我对数据库性能优化有一些了解,但可能不是专家级别的。"
展示思维过程 :"我通常会从分析查询性能开始,检查慢查询日志,优化索引,考虑读写分离等策略。"
提出替代方案 :"如果我没有足够的信息来给出具体的优化方案,我会 建议
使用一些性能监控工具来收集更多数据,以便进行更深入的分析。"
询问更多信息 :"您能 提供
一些当前数据库的性能指标或者遇到的具体问题吗?这将帮助我更准确地理解问题所在。" (打破僵局的关键就是人为制造出变数,获取更多信息然后得以关联到已学的知识通常是简单而 高效
的面试手段)
关联到已知知识 :"虽然我对数据库优化不是专家,但我在系统监控和性能评估方面有 丰富的经验
,我相信这些技能可以帮助我快速找到问题并提出解决方案。"(如果能无缝的转移话题到自己擅长的领域,会是更高级的做法,这通常要求你能大胆些 展示自己
)
展示学习能力和适应性 :"我有很强的学习能力,如果需要,我可以快速学习并 掌握
数据库优化的最佳实践。"
我相信通过这种方式,即使在面对不会的问题时,你也能展示出你的 专业素养
和解决问题的能力。最后是一些面试题库分享给大家。
1、mysql 主从延迟如何优化?
1) 提升硬件性能:确保从服务器的硬件资源,如CPU和内存,能够满足复制的需求,特别是当主服务器的负载较高时。
2)优化主从服务器间的网络:网络带宽和稳定性对复制延迟有很大影响,确保网络环境良好,以减少因网络问题导致的延迟
3) 优化主库的写入性能,优化 SQL 语句,使用 NVME 硬盘
4) 考虑使用半同步复制:半同步复制是一种更高效的主从复制方式,可以减少主从复制时间延迟。
5) 调整主从复制参数:可以通过调整 MySQL 主从复制参数来减少时间延迟。例如,可以增加 binlog_cache_size 和 max_binlog_cache_size 参数的值,以提高写入 binlog 的效率。
2、做过哪些灾备?
灾备的解决方案:
1)文件备份
2) 逻辑备份
3)主从备份
4) 双主备份
3 级别备份:主机备份,跨机房备份,异地备份;架构:2 地 3 中心
3、制作基础镜像文件的原则是什么?
最小化原则,减少分层
4、k8s 遇到复杂问题的解决思路是怎么样的?
查日志,看报错提示!检查配置,检查环境,排除法、替换法(记得备份数据)
5、你平时在公司主要做什么?
日常监控维护业务,服务器巡检,调优,写一些日常使用的脚本,日常工作形成文档化,服务优化:nginx优化,tomcat优化,系统优化。
6、你们原来公司的网站架构是怎么样的?
搭的LNMP架构,Nginx做了集群,做了反向代理负载均衡,mycat读写分离,数据库做的一主两从,并且做了MHA高可用
7、nginx,lvs,haproxy 三个有什么区别
lvs优势:抗负载能力很强、工作稳定、不占什么流量、pv超过1000万可用lvs
nginx:nginx工作第7层,支持http应用本身分流,lvs没有这个功能,nginx 对网络依赖很小,nginx安装简单也稳定,流量日pv <=1000万nginx足以能撑住,一般不是特别大的公司都达不到lvs使用级别。官方说并发50000都没什么问题,测试过并发1-2万根本没什么问题。
haproxy:
1).haproxy是支持虚拟主机的,可以工作在4、7层(支持多网段)
2).haproxy的优点能够补充nginx的一些缺点,比如支持session的保持,Cookie的引导;同时支持通过获取指定的url来检测后端服务器的状态。
3).haproxy跟lvs类似,本身就只是一款负载均衡软件;单纯从效率上来讲haproxy会比nginx有更出色的负载均衡速度,在并发处理上也是优于Nginx的。
4).haroxy支持TCP协议的负载均衡转发,可以对MySQL读进行负载均衡,对后端的MySQL节点进行检测和负载均衡。
8、mysql用的哪个版本,你们的数据库怎么备份,什么时间备份,备份数据量多大
用的5.7 逻辑备份 每天全量备份 500G 后面改用xbk备份。
9、nginx状态码499、401、404、400是什么意思
499:服务端处理时间过长,客户端主动关闭了连接
401:权限验证错误,一般是用户名和密码错误等
404:访问文件不存在
400: web服务器遇到不完整的http请求头,一般是请求头或cookie信息过大,调整nginx相关参数调大即可。
**10、nginx状态码 500、502 、504、503错误可能的原因有哪些?** 500:大多数是代码问题或者sql报错或连接不上数据库、磁盘空间不够,系统文件句柄数设置太小 502:一般就是后端问题,服务挂了或者进程不够用了大并发时候处理不过来,增加后台服务器 504:网关超时,nginx里配置了超时时间,在配置的时间内没处理过来,导致超时,后台服务不一定是挂了 503:服务临时不可用,一般是临时服务器维护或者过载,临时的,过段时间会恢复
11、nginx状态码301、302、304 ,200分别表示什么意思
301状态: 永久重定向
302状态: 临时重定向
304状态: 客户端有缓存情况下服务端的一种响应,访问的文件还没过期
200状态: 访问正常
12、如何备份大数据mysql数据文件,mysql都优化哪些
xtrabackup热备份 : xtrabackup备份时候是热备,不会锁表。
mysql优化 : 主要有两个主要方面:安全、性能、参数、架构、sql语句
安全方面 :可以把默认端口3306改为其他的,对用户降权,以比普通用户运行mysql即可,开启二进制日志文件,最好在禁止一下root账户远程访问
性能方面 :可以给主机选择合理的cpu,内存调大,硬盘,可以对Linux系统内核参数优化,数据库优化的话可以对执行计划,索引,sql改写等等优化
参数优化 : innodb的buffer参数调大,连接数调大,缓存的参数优化
架构优化 : 主从,读写分离,一主多从,架构调整。
sql语句优化: 协助开发优化,开启慢查询sql,是否没有索引,是否需要借助redis缓存,es等。
13、你在上家公司用的什么监控软件(zabbix)?都监控些什么?怎么增加模板?
zabbix 对系统层监控和应用层监控
系统层:如cpu、内存、硬盘、磁盘i/0、流量、连接数
应用层:进程、mysql主从状态、tomcat性能监控、mysql性能监控
网站状态
zabbix+grafana监控可视化
故障报警,预警,邮件或微信
自动注册,自动安装客户端
14、一台web服务器应该监控哪些指标
网站状态 cpu 内存 磁盘i0 连接数
15、zabbix监控数据库监控哪些参数
主从状态 进程 性能指标比如 查询吞吐量 查询执行性能 连接情况 缓冲池情况,模板导入监控
16、写shell脚本监控 mysql 主从 的思路
判断io和sql线程是否为yes, 监控主从复制延迟从 show slave status 中 Seconds_Behind_Master 参数显示了主从复制的延迟时间为多少秒。
17、公司出口带宽?每天网站pv? uv?
带宽:100M,pv:100W,uv:5W
18、你们公司备份策略是什么?数据量多大?备份周期?备份工具?备份方式?是否做数据恢复备份演练?
我们线上服务器数据库采用数据库逻辑备份mysqldump 每天进行全量备份,binlog日志保留7天
我们线上服务器异地也有一套环境就是做灾备用和故障演练用的,xbk备份或逻辑备份,数据量 500G大小。
19、你在工作中是怎么做日志分析的?例如:访问日志、错误日志等
我们公司使用ELK日志分析系统做的,日志进行可视化,服务器日志每周备份一次进行日志切割
20、你在上家公司针对防攻击、扩容、容灾等问题是怎么制定和优化解决方案的?
防攻击我们公司使用脚本做的实时探测异常ip多次请求,拉黑机制
扩容制作运维扩充方法,发送邮件通知有关人员知悉,先写文档,在测试环境测试好后,再正式环境再做
容灾我们公司没有做,我们架构基本都是有高可用。
21、你们公司如何自动化代码上线?
我们公司代码上线使用jenkins+mave自动构建编译打包推送到应用服务器;如果是手动方法:我们有制定手动代码上线流程;根据流程上线:如果测试环境测试没有问题时候,使用灰度方法发布上线。
22、你们公司安全方面怎么我做的?监控体系结构是怎样的
1).服务器有外网ip 全部去掉,采用内网通信除了对外服务器必须对外,只有nginx对外开放外网ip
2).关闭密码认证登录服务器,采用秘钥认证登录服务器
3).服务器权限不对外开放,内网访问。
4).利用防火墙和华为云安全组关闭没必要的对外端口
5).jumpserver跳板机使用
6).更改ssh端口
23、nginx日志的路径为opt/logs/access.logs,假设日志不能自动分割,写脚本让日志每天能够定时自动分割
cp access.logs /tmp/$(date +%Y%m%d)_access.logs && echo > access.log 通过 crontab 计划任务每天定时自动分隔。
24、redis是怎么做持久化的
持久化有两种方式RDB和AOF,RDB做镜像全量持久化,AOF做增量持久化。我们公司一般RDB和AOF会配合起来使用。在redis实例重启的时候,会使用RDB持久化文件重构内存,再使用AOF存放近期的操作指令来恢复重启前的状态。当然reids的机制是AOF开启且存在AOF文件时候,优先加载AOF文件。 AOF关闭或者AOF文件不存在的时候,加载RDB文件。
大流量的时候不要开AOF,开RDB即可。
如果服务器突然断电,可以使用AOF恢复,AOF日志有sync属性配置,在高性能场景下使用定时sync,比如1s1次,这样即使断电最多丢失1s的数据。
25、redis有哪些应用场景
1).存储json类型的对象
2).排行榜,计数器
3).优酷视频的点赞
4).朋友圈点赞
5).会话缓存
redis能支持10万并发等