运维面试题
Linux 面试题
1、如何看当前Linux系统有几颗物理CPU和每颗CPU的核数?
答:在/proc(puoruake)/cpuinfo文件中查看
2、查看系统负载有哪些?后面的三个数值表示什么含义呢?
答:top、w、uptime; 其中load average即系统负载,三个数值分别表示一分钟、五分钟、十五分钟内系统的平均负载,即平均任务数。
3、如何以交互式的方法将其文件中的所有abc字符串更换为ABC?
答:tr 或 sed
4、简述下linux系统里的buffer和cache区别?
答:Buffer 是对磁盘(块)数据的缓存,而 Cache 是对文件(block)数据的缓存,他们既会用在读请求中,也会用的写请求中。
5、如何实时查看网卡流量为多少?如何查看历史网卡流量?
答:安装sysstat包,使用sar命令查看。(sar -n DEV 1 10 #一秒显示一次,一共显示10次;sar -n DEV -f /var/log/sa/sa22 #查看指定日期的流量日志)
6、如何查看当前系统都有哪些进程?
答:ps -aux 或者ps -ef
7、ps 查看系统进程时,有一列为STAT, 如果当前进程的stat为Ss 表示什么含义?如果为Z表示什么含义?
答:S表示正在休眠;s表示主进程;Z表示僵尸进程。
8、僵尸进程对系统有害吗?如何杀掉僵尸进程?
答:重启服务器电脑、找到该defunct僵尸进程的父进程,将该进程的父进程杀掉(ps -ef | grep defunct_process_pid)
9、如何查看某个网卡是否连接着交换机?
答:mii-tool eth0 或者 mii-tool eth1
10、linxu下设置DNS需要修改哪个配置文件?
答:(1)在文件 /etc/resolv.conf 中设置DNS;(2)在文件 /etc/sysconfig/network-scripts/ifcfg-eth0 中设置DNS
11、iptables四表五链都有哪些?简述下filter、nat表的作用。
答:四表=filter(fliute)【过滤数据包】、nat【网络地址转换】、managle(mannige)、raw(rou),默认是filter表;五链:PREROUTING(perrui) 、INPUT、FORWARD(fuo)、OUTPUT、POSTROUTING
12、把iptable的规则保存到一个文件中如何做?如何恢复?
答:使用iptables-save重定向到文件中;使用iptables-restore(weisituoer)反重定向回来
13、如何备份某个用户的任务计划?
答:将/var/spool/cron/目录下指定用户的任务计划拷贝到备份目录cron_bak/下即可
14、任务计划格式中,前面5个数字分表表示什么含义?
答:依次表示:分、时、日、月、周
15、某个账号登陆linux后,系统会在哪些日志文件中记录相关信息?
答:用户身份验证过程记录在/var/log/secure(sekuer)中,登录成功的信息记录在/var/log/wtmp。
16、网卡或者硬盘有问题时,可以通过使用哪个命令查看相关信息?
答:使用命令dmesg
17、shell中什么时候会用到break和continue命令?并且这两个命令的作用是什么?
答:在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环,Shell使用 break 和 continue 来跳出循环。break命令 允许跳出所有循环(终止执行后面的所有循环)。continue命令 不会跳出所有循环,仅仅跳出当前符合条件的循环。
18、如何查看当前系统有几块盘?磁盘的使用率和磁盘io的读写使用情况用什么工具可以查看?
答:lsblk 、df -Th 、iostat -xdm 1 # 一般会有个经验值,比如,ioutil要小于80%, svctm要小于2ms。
19、自定义解析域名的时候,我们可以编辑哪个文件?是否可以一个ip对应多个域名?是否可以一个域名对应多个ip?
答:编辑 /etc/hosts ,可以一个ip对应多个域名,不可以一个域名对多个ip
20、有一天你突然发现公司网站访问速度变的很慢很慢,你该怎么办呢?(服务器可以登陆,提示:你可以从系统负载和网卡流量入手)
答:可以从两个方面入手分析:分析系统负载,使用w命令或者uptime命令查看系统负载,如果负载很高,则使用top命令查看CPU,MEM等占用情况,要么是CPU繁忙,要么是内存不够,如果这二者都正常,再去使用sar命令分析网卡流量,分析是不是遭到了攻击。一旦分析出问题的原因,采取对应的措施解决,如决定要不要杀死一些进程,或者禁止一些访问等。
21、LVM新增磁盘扩容过程
答:
1、创建物理卷并添加卷组
2、添加到逻辑卷
3、现在,逻辑卷已经扩展,你需要调整文件系统的大小以扩展逻辑卷内的空间
22、如何在出现异常时退出shell脚本?
答:使用 $? ,进行判断
23、简述什么是中间件?
答:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。通常位于客户机/ 服务器的操作系统中间,是连接两个独立应用程序或独立系统的软件。
docker 容器
1、容器隔离及限制的底层技术是什么?
答:cgroup 和 namespace 是最重要的两种技术。cgroup 实现系统资源限额, namespace 实现资源隔离。
2、namespace 分别对应六种资源有什么?
答:Mount(文件系统)、UTS(主机名称)、IPC(内存)、PID(进程)、Network(网络) 和 User(用户)
3、Docker 安装时会自动在 host 上创建三个网桥模式,都叫什么?并简述下这几个不同的网络模式。
答:bridge、host、none
4、Docker架构简单描述下
答:docker采用的是c/s架构。客户端向服务端发送请求,服务端负责构建、运行和分发容器。并且客户端和服务端可以运行在同一个宿主机上,客户端也可以通过socket与远程的服务端通信。
5、Docker 的核心组件都有什么?
答:Docker 客户端 - Client 、Docker 服务器 - Docker daemon 、Docker 镜像 - Image、 Registry 仓库 – Registry、Docker 容器 - Container
6、创建容器的过程docker都做了哪些事情,简单描述下
答:
-
Docker 客户端执行 docker run 命令。
-
Docker daemon 发现本地没有 httpd 镜像。
-
daemon 从 Docker Hub 下载镜像。
-
下载完成,镜像 httpd 被保存到本地。
-
Docker daemon 启动容器。
7、为什么 base 镜像 都很小?就比如centos在docker这里就很小,200M左右。
答:Linux系统的组成,Linux 操作系统由Bootfs(内核空间)和 Rootfs(用户空间)组成,因为对于 base 镜像来说,底层直接用宿主机的 kernel,自己只需要提供 rootfs 。
8、简述容器中copy-on-Write的特性
答:当用某个镜像创建了一个容器,在容器中只有当需要修改时才复制一份数据在容器层,这种特性被称作 Copy-on-Write。
编排k8s
1.说下k8s的核心组件都有哪些,并简述下他们各自的作用
答:APIServer、Scheduler、Controller manager、ETCD、Kube-proxy、continue
2、k8s中都有哪些对象资源?
答:namespace、controller、pod、pv、pvc、configmap、secret、service、ingress
3、labels 的本质是什么?他的作用又是什么?
答:Label其实就一对 key/value ,被关联到对象上。他可以起到服务发现和集群调度的作用。
4、Service 在 K8s 中有哪几种类型?
答:ClusterIp、NodePort、LoadBalancer
5、Secret 在k8s中的作用?
答:Secret 解决了密码、token、密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者 Pod Spec中。
PS : 只有与 apiserver 组件进行交互的 pod 才会有如下的 证书、命名空间、tekon密钥。
6、简述下PV 和 PVC是什么
答:PV 可以看作可用的存储资源,PVC则是对存储资源的申请需求
7、简述Kubernetes Replica Set 和 Replication Controller 之间有什么区别?
答:两者几乎一样,都是确保在任何给定时间运行指定数量的 Pod 副本。不同之处在于RS 使用基于集合的选择器,而 Replication Controller 使用基于权限的选择器。
8、一般Kubernetes是如何进行优雅的节点关机维护?
答:由于Kubernetes节点运行大量Pod,因此在进行关机维护之前,建议先使用kubectl drain将该节点的Pod进行驱逐,然后进行关机维护。
ansible自动化
1、Ansible常用模块及左右
答:command ping yum copy service shell file replace user group
2、什么是Playbooks?简答讲下
答:Playbooks 可以理解为一个编排文件,基于YAML语言编写的。用于描述远程系统实施的过程,或者描述流程中的一系列步骤。
3、shell模块与command模块的区别?
答:command只能识别一些简单的linux命令,shell能识别一点复杂性命令。
4、要对1000台机器收集内核版本,如何让ansible以面向过程的方式执行收集这些信息?
答:将其配置文件中的 forks 参数改为1就好。
web网站
1、一个网站的形成都有哪些东西?
答:域名、网页、主页;HTTP、URL、HTML、超链接
2、简述下静态页面与动态页面的差别
答:静态页面内容几乎是固定的, 而动态页面的内容会因用户、浏览器、时间等而发生变化。
3、URL的组成部分都有哪些?
答:协议、域名、端口、URL文件资源、参数(query)、片段(fragment)
4、简单介绍下HTTP协议
答:HTTP就是一个超文本传输协议,定义了客户端与服务器端之间文本传输的规范。
5、返回码 200、301、302、404 的含义是什么?
答:200 服务器成功返回内容,301/2 永久/临时重定向,404 请求的页面不存在
6、简述DNS进行域名解析的过程
答:
-
浏览器缓存:浏览器会按照一定的频率缓存DNS记录。
-
操作系统缓存:如果浏览器缓存中找不到需要的DNS记录,那就去操作系统中找。
-
路由缓存:路由器也有DNS缓存。
-
缓存代理:国内代理的DNS服务器,有点类似于阿里云的CDN。
-
dns根服务器:ISP是互联网服务提供商(Internet Service Provider)的简称,ISP有专门的DNS服务器应对DNS查询请求。
Nginx服务
1、什么是正向代理和反向代理?
答:正向代理就是一个人发送一个请求直接就到达了目标的服务器;反方代理就是请求统一被Nginx接收,nginx反向代理服务器接收到之后,按照一定的规 则分发给了后端的业务处理服务器进行处理了
2、nginx中的location主要作用是什么?
答:location就是根据用户请求的URI来执行不同的应用,也就是根据用户请求的网站URL进行匹配,匹配成功即进行相关的操作。
3、什么是动静分离?
答:将动态请求和静态请求区分访问,静态由Nginx处理, 动态由PHP处理或Tomcat处理。
4、Nginx负载均衡是基于那个模块来实现的?
答:upstream
5、Nginx中负载均衡算法策略里常用的都有哪些?
答:轮询、权重、ip_hash
Mysql服务
1、查看当前库和表的命令
2、mysql的增删查改的命令
3、索引的作用是什么?
答:加快查询的速度。
4、简述下MysQL中的事物
答:事务就是由一组SQL语句组成的,保证一组SQL语句要么全部执行成功,要么全部执行失败,以此维护数据的完整性。
5、事务中的四个特性都是什么?
答: (Atomicity) 原子性、(Consistency) 一致性、 (Isolation) 隔离性、 (Durability) 持久性
Redis服务
1、简述下什么是redis?
答:Redis 是一个基于内存的高性能key-value数据库。
2、Redis五大数据类型是什么
答:String、list、set、zset、hash
Redis持久化有几种方式?他们的区别又是什么?
答:RDB持久化(类似于快照功能)、AOF持久化(近似实时性)
- RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。
- AOF持久化是以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。
4、Redis 为什么单线程还这么快?
答:redis 是将所有的数据全部放在内存中的,所以说使用单线程去操作效率就是最高的,多线程(CPU上下文会切换:耗时的操作),对于内存系统来说,如果没有上下文切换效率就是最高的!多次读写都是在一个CPU上的,在内存情况下,这个就是最佳的方案!
网络
1、tcp与udp的区别?
答:他俩都是传输协议,基于连接与无连接;对系统资源的要求(TCP较多,UDP少);TCP保证数据完整性,UDP可能丢包;
2、讲下网络7层模型OSI都有哪些?
答:OSI 七层模型架构图
3、简述下路由的过程
答:当路由器收到一个报文时,会找出目的IP地址,通过目的IP与自己的路由表进行匹配,根据路由条目的指示决定出接口及下一跳IP。
4、路由表的组成部分有哪些?
答:目的IP、掩码、路由协议、优先级、开销,下一跳IP及下一跳出接口。
5、怎么查看路由表?
答:dis ip routing
keeplived & LVS
1、keeplived 有哪些模块?并说下他们各自的作用
答:keepalived主要有三个模块,分别是core、check和vrrp
-
core模块为keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析。
-
vrrp模块是来实现VRRP协议的。
-
check负责健康检查,常见的方式有端口检查及URL检查。
2、解释一下vrrp 协议
答:虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。
3、简述LVS的工作模式及其工作过程?
答:LVS 有三种负载均衡的模式,分别是VS/NAT(nat 模式)、VS/DR(路由模式)、VS/TUN(隧道模式)。
NAT模式(VS-NAT)
原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求数据包的目标IP地址及端口改成后端真实服务器的IP地址(RIP)。真实服务器响应完请求后,查看默认路由,把响应后的数据包发送给负载均衡器,负载均衡器在接收到响应包后,把包的源地址改成虚拟地址(VIP)然后发送回给客户端。
优点:集群中的服务器可以使用任何支持TCP/IP的操作系统,只要负载均衡器有一个合法的IP地址。
缺点:扩展性有限,当服务器节点增长过多时,由于所有的请求和应答都需要经过负载均衡器,因此负载均衡器将成为整个系统的瓶颈。
IP隧道模式(VS-TUN)
原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求报文封装一层IP隧道(T-IP)转发到真实服务器(RS)。真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均衡器。
优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,也能处理很巨大的请求量。
缺点:隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持“IP Tunneling”。
直接路由模式(VS-DR)
原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求数据包的目标MAC地址改成后端真实服务器的MAC地址(R-MAC)。真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均衡器。
优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,也能处理很巨大的请求量。
缺点:需要负载均衡器与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。
KVM虚拟化
1、什么是虚拟化?
答:就是将一台物理机虚拟成多台虚拟机,虚拟机之间互不干扰。
2、常见的虚拟化软件都有哪些?
答:vmware、kvm
3、怎么查看当前系统是使用哪家的虚拟化?
答:lscpu
4、kvm的三个组件及作用
答:libvirt(用来管理虚拟机)、virt(安装和克隆虚拟机)、qemu(管理虚拟机磁盘的)
5、如何查看正在运行的虚拟机
答:virsh list
6、kvm如何进行子机的开机关机操作
virsh start centos7 开机 virsh shutdown centos7 关机
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)