软件运维面试题

来自blbl运维实战课堂

1.你平时在公司主要做什么?

考察工作表达,分清楚你对工作整体的把握,体现自己的技术含量。

日常监控维护业务,服务器巡检,调优。写一些日常使用的脚本,日常工作形成文档。

服务优化:nginx优化,Tomcat优化,系统优化。

2.你们原来公司的网站架构是真么样的?

搭的LNMP架构,Nginx做了集群,做了反向代理负载均衡,mycat读写分离,数据库做的一主两从,并且做了MHA高可用。

3.你对哪一块儿比较熟练或者精通?

对企业自动化交付CICD方面做的比较熟练,缓存服务memcached,squid,redis这种缓存服务器,

还有lvs,keealived,这种负载均衡集群软件。

容器docker,k8s方面

mysql数据库

4介绍一下负载均衡?

负载均衡我使用过lvs和nginx和阿里云SLB

nginx负载均衡:工作在网络第七层,支持http应用进行分流。

lvs:抗负载能力很强,工作4层,配置简单,很稳定,不产生流量。

5.lvs内部原理?

LVS的内部原理涉及一下几个主要组件和步骤:

1)。调度器(Scheduler):调度器是LVS的核心组件,负责根据一定的调度算法。(如轮询,加权轮询,最小连接数等)选择合适的后端服务器来处理传入的请求。调度器根据客户端请求的IP地址和端口号,将流量分发到后端服务器上。

2)。IPVS模块:IPVS(IP Virtual Server)是Linux内核中的模块,实现了LVS的核心功能。它拦截传入的网络流量,根据预先配置的规则将请求分发给不同的后端服务器。

后端服务器池:后盾服务器池是一组提供相同服务的服务器,他们由负载均衡器统一管理。负载均衡器将请求分发给这些服务器,以实现负载均衡和高可用性。

3)。监控与健康检查:LVS可以定期检查后端服务器的健康状态。以确保只将流量分发给正常工作的服务器。如果某个服务器出现故障或不可用,负载均衡器会自动将其排除在服务器范围之外。确保客户端请求不会被发送到有问题的服务器上。。

4)。网络地址转换(NAT):LVS通常使用NAT技术修改传入和传出流量的IP地址。以隐藏后端服务器的真实IP地址。这有助于保护服务器的安全性并简化网络配置。

总体来说,LVS的内部原理涵盖了负载均衡调度,IPVS内核模块,后端服务器管理。健康检查和网络地址转换等关键方面。通过这些机制,LVS能够实现高效的负载均衡和故障恢复,为网络访问提供更高的可靠性和性能。注意,LVS的具体实现和配置可能会因版本和使用情况而有所不同。

6。nginx lvs haproxy 三个有什么区别?

lvs优势:抗负载能力很强,工作稳定,不占什么流量,pv超过1000万可用lvs

nginx:nginx工作第七层,支持http应用本身分流,lvs没有这个功能。

nginx对网络依赖很小,nginx安装简单也稳定,流量日pv<=1000万 nginx足以能够撑住,一般不是特别大的公司都达不 到lvs的使用级别。官方说并发50000都没什么问题,测试过并发1-2万根本没什么问题。

1)。haproxy是支持虚拟主机的,可以工作在4,7层(支持多网断)

2)。haproxy的优点能够补充nginx的一些缺点,不如支持session的保持,Cookie的引导;同时支持通过获取指定的URL来检测后端服务器的状态。

3)。haproxy跟lvs类似,本身就只是一款负载均衡软件;单纯从效率上来讲haproxy会比nginx有更出色的负载均衡速度,在并发处理上也是优于Nginx的。

4)。haroxy支持TCP协议的负载均衡转发,可以对MySQL读进行负载均衡,对后端的MySQL节点进行检测和负载均衡。

7.lvs主要三种工作模式原理

1)。NAT模式(NAT)

原理:就是把客户端发来的数据包的IP头的目的地址,在负载均衡器上换成其中一台RS的IP地址,并发至此RS来处理。RS处理完成后把数据交给负载均衡器,负载均衡再把数据包的原IP

地址改为自己的IP。将目的地址改为客户端IP地址即可。负载均衡器再返回给客户端,期间,无论是进来的流量,还是出去的流量,都必须经过负载均衡器。

优点:集群中的物理服务器可以使用任何支持TCP/IP的操作系统。只有负载均衡器需要一个合法的IP地址。

缺点:扩展性有限。当服务器节点(普通PC服务器)增长过多时,负载均衡器将成为整个系统的瓶颈,因为所有的请求包和应答包的流向都经过负载均衡器。当服务器节点过多时,大量的数据包都交汇在负载均衡器那,速度就会变慢!

2)。IP隧道模式(TUN)

原理:首先要知道,互联网上的大多Internet服务的请求包很短小,而应答包通常很大。那么隧道模式就是,把客户端发来的数据包,封装一个新的IP头标记(仅目的IP)发给RS。RS收到后,先把数据包的头解开,还原数据包,处理后,直接返回给客户端,不需要再经过负载均衡器。注意,由于RS需要对负载均衡器发过来的数据包进行还原,所以说必须支持IPTUNNEL协议。所以,在RS的内核中,必须编译支持IPTUNNEL这个选项。

优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,就能处理很巨大的请求量,这种方式,一台负载均衡器能够为很多RS进行分发。而且跑在公网上就能进行不同地域的分发。

缺点:隧道模式的RS节点需要合法的IP,这种方式需要所有的服务器支持"IP Tunneling" (IP Encapsulation)协议,服务器可能只局限在部分Linux系统上。

3)。直接路由模式(DR)

原理:负载均衡器和RS都使用同一个IP对外服务。但只有DR对ARP请求进行响应,所有RS对本身这个IP的ARP请求保持静默。也就是说,网关会把对这个服务IP的请求全部定向给DR,也就是客户端发送请求给lvs的DR模式,而DR收到数据包后根据调度算法,找出对应的RS,把目的MAC(因为IP一致)并将请求分发给这台RS。这时RS收到这个数据包,处理完成之后,由于IP一致,可以直接将数据返给客户,则等于直接从客户收到这个数据包无异,处理后直接返回给客户端。由于负载均衡器要对二层包头进行改换,所以负载均衡器和RS之间必须在一个广播域,也可以简单地理解为在同一台交换机上。

优点:和TUN(隧道模式)一样,负载均衡器也只是分发请求,应答包通过单独的路由方法返回给客户。与VS-YUN相比,VS-DR这种实现方式不需要隧道结构,因此可以使用大多数操作系统作为物理服务器。

缺点:(不能说缺点,只能说是不足)要求负载均衡器的网卡必须与物理网卡在一个物理段上。

8.lvs工作原理,算法,工作模式?

lvs:实现负载均衡集群部署的软件,有一台或多台调度器组成,通过加载lvs内核模块并且生成虚拟ip,通过虚拟ip解说客户端的请求,再根据自身配置的调度算法,实现对请求的转发。

算法:大概有10种,主要的有下面几种:

静态算法:只是根据算法进行调度不考虑后端REALSERVER的实际连接情况。

rr:轮询算法:按照节点顺序一个一个来,均等地对待每一台服务器,不管服务器上的实际连接数和系统负载。

wrr:加权轮询算法:根据节点权重以及节点顺序分发请求,调度器可以自动问询真实服务器的负载情况,并动态调整权值。

sh:源地址散列调度算法:匹配客户端最近一次访问的服务节点,并将请求交给这个服务节点,根据源地址散列算法进行静态分配固定的服务器资源。或者说:负载均衡器选择响应时间最短的后端服务来处理请求。这可以确保请求被发送到响应速度最快的服务器上。

dh:目标地址散列算法:根据目标ip地址进行哈希计算,得到散列值,匹配客户端最近一次访问的访问节点,并将请求交给这个服务节点,根据目标ip的请求会固定发给该服务器。

动态算法:"

lc最少连接数算法:动态地将网络请求调度到已建立的连接数最少的服务器上。

wlc:加权最少连接数算法:调度器可以自动问询真实服务器的负载情况,并动态调整权值。

lblc:基于局部的最少连接数调度算法:先根据请求的目标ip地址寻找最近的该目标ip地址所有使用的服务器,如果这台服务器依然可用,并有能力处理该请求,调度器会尽量选择相同的服务器,否则会继续选择其他可行的服务器,即:如果服务器节点因为自身故障暂时无法接收请求,则调度器会在服务器集群中找出一台连接最少的节点来处理请求。

lblcr:带赋值的基于局部的最少的连接算法:记录的不是要给目标ip与一台服务器之间的连接记录,他会维护一个目标ip到一组服务器之间的影射关系,防止单点服务器负载过高。

工作模式:主要模式有3种

1)DR模式:(也是默认模式,直接路由模式)

客户端访问负载均衡器的vip,此时在集群中负载均衡器和后端的realserver都具有vip,所以负载均衡器通过vip进行转发是不实际的。那么只能通过二层协议,修改数据包二层的目标mac进行转发,后端服务器处理后,通过本机的lo网卡上的vip直接返回数据包。

1)。环境,为了模拟生产环境,我们将dip rip 设置为同一个网段,dr和rs上面的虚拟ip均为vip(生产环境中的公网ip)

2)。注意,arp静默需要开启,后端服务器不接受请求,只处理

2)NAT模式:

客户端访问负载均衡器的vip,负载均衡器通过转换目标ip地址的方式,实现负载均衡,将本该发送给负载均衡器的数据包的目标地址,修改成后端real server的ip地址,然后又rs进行处理并返回,返回过程中,经过负载均衡器,负载均衡器将源地址转换为vip,完成本次请求。

1)。环境,为了模拟生产环境,我们使用一台centos7服务器作为负载均衡器,配置两块网卡,一块设置vip(桥接,生产中是公网ip),一块设置dip(nat或仅主机模式,生产中是内网ip),后端设置rip(nat或仅主机模式,与dip同一网段)。

2)。注意,负载均衡器需要开启路由转发,所有服务器均关闭防火墙,selinux。如果测试环境中,使用的是于后端服务

3)。YUN模式

客户端访问负载均衡器的vip,这种模式,可以跨区域进行负载均衡,vip和rip为公网ip,dip将请求发送给rip的过程中是加密的,后端rs上的vip直接将请求进行回复,不经过dr负载均衡器。

1)。环境,需要两个公网ip

2)。添加vip在隧道网卡。

9.mysql用的哪个版本,你们的数据库怎么备份,什么时间备份,备份数据量多大。

用的5.7 逻辑备份 每天全量备份 500G 后面改用xbk备份

10.memcached工作原理(内存管理机制)

memcached是一种内存缓存软件,在工作中经常用来缓存数据库的查询数据,数据被缓存在事先预分配的memcached管里的内存中,可以通过API或命令的方式存取内存中缓存的这些数据,memcachd服务内存中缓存的数据就像一张巨大的HASH表,每条数据都是以key-value对的形式存在。每个被缓存的对象或数据都有唯一的标识符key,存取操作通过这个key进行。保存到Memcached中的对象或数据放置在内存中,并不会作为文件存储在磁盘上,所以存取速度非常快。

由于没有对这些对象进行持久性存储,因此在服务器端的服务重启之后存储在内存中的这些数据就会消失。而且当存储的容量达到启动时设定的值时,就自动使用LRU算法删除不用的缓存。

11.nginx状态码499是什么意思?

服务器处理时间过长,客户端主动关闭了连接

12.nginx状态码 502 错误可能的原因有哪些?

502一般就是后端问题,服务挂了或者进程不够用了大并发时候处理不过来,增加后台服务器。

13.状态码200 ,500 502 304 ,分别表示什么意思

相关推荐
SelectDB11 小时前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode2 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220703 天前
如何搭建本地yum源(上)
运维
大树885 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠6 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质6 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工6 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智6 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_6 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉6 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造