运维面试大全

文章目录

  • 第一阶段
    • 平常怎么处理故障,思路是什么样的
    • 公网和私网分类以及范围,本机地址,网络地址,广播地址
    • 交换机的工作原理
    • ICMP是什么干什么用的,它有哪些命令
    • TCP和UDP协议的区别
    • tcp有哪些控制位,分别是什么意思
    • 你是用过哪些Linux命令
    • Linux 系统安全优化与内核优化
      • 经常使用shell脚本做什么
      • 软连接与硬链接的区别
      • 怎么查看文件
    • IOS七层模型
    • 三次握手与四次挥手
    • lvm 逻辑卷创建过程
      • 磁盘配额
    • raid 磁盘阵列
    • 文本三剑客
    • 防火墙iptables与fireward
    • Linux系统资源查询命令
      • 日志的八大等级
    • Linux 引导过程
    • shell 函数的创建方法
    • 免交互的使用
    • 你是用过哪些shell脚本
    • Tcpdump抓包使用工具
    • CPU过高怎么解决
      • 如何杀死僵尸进程
    • 什么是中间件?什么是 JDK
      • 什么是CDN
  • 第二阶段
    • http
      • http 的版本
      • http 响应状态码
    • Nginx
      • Nginx 的常用模块有哪些?
      • Nginx 的 session 不同步怎么办
      • nginx的优化
      • Nginx如何实现动静分离
      • Nginx反向代理有哪些方式实现,有什么区别 ?如何配置
      • Nginx 负载均衡调度算法有哪些?
    • tomcat知识点
      • tomcat 三个端口号
      • tomcat 优化
    • LVS
      • LVS、Nginx、Haproxy 有什么区别?
      • 简述LVS三种模式 以及工作中使用哪种模式
    • keepalived
      • 脑裂的原因,如何解决
      • 简述 keepalived 如何通过健康检查来实现高可用?
    • mysql
      • sql 语句
      • 克隆表
      • 清空表数据
      • Mysql 六大约束
      • 遗忘 root 密码的解决方法
      • 索引的作用
      • 索引的创建
      • mysql 事务的 ACID 特性与四种隔离
      • 死锁的产生原因与解决方法
      • mysql 主从复制原理
    • 主从复制的部署过程
      • MHA 高可用
      • MHA 部署过程
      • MMM 高可用
      • mysql 数据库的优化
      • Mysql 数据库 cpu 飙升到 500% 怎么处理
    • Mysql 数据库备份
    • redis
      • redis 为什么读写速度那么快?
      • redis 常用的数据结构
      • redis 持久化
      • redis 哨兵
      • redis cluster 集群
      • redis 优化
      • 缓存和数据库 双写一致性问题
      • 缓存三大击穿问题
    • ELK
      • ELK 的工作原理
    • ELK 的插件有哪些
    • zabbix
      • Zabbix 组件 及 工作原理
      • zabbix 如何自定监控项
      • zabbix 你都监控哪些参数
    • kafka
      • Zookeeper 是什么?
      • Zookeeper 选举机制
      • 消息队列的作用
      • 消息队列的模式
      • kafka 架构
      • kafka ACK应答机制保证数据的可靠性
    • Ceph
      • 数据存储类型
      • Ceph 架构 (从下往上看)
      • Ceph 组件
      • Ceph 的存储过程
  • 第三阶段
    • Docker
      • docker 是什么?
      • docker 容器与 虚拟机的区别?
      • docker 三大核心概念
      • 6大namespace 命名空间是什么?
      • docker的镜像和容器管理命令?
      • docker run 的运行过程
      • cgroup 资源限制
      • docker 网络模式
      • dockerfile 有哪些指令
      • dockerfile 如何缩小构建镜像的体积
      • docker-compose 是什么?
      • docker-compose.yml 配置讲解
      • Harbor 私有仓库管理
      • consul 服务自动发现
      • https 的工作流程
      • 数据库是否放在容器中运行?为什么?
      • docker容器的重启策略?
    • Ansible
      • Ansible 概念
      • 模块
    • K8S
      • k8s 有哪些组件
      • k8s 组件的作用
      • pod 的创建过程
      • K8s 资源对象
    • K8S 二进制搭建
    • K8S kubeadm搭建
    • kubeadm 部署的K8S集群更新证书
    • K8S 3种网络
    • K8S 3种接口
    • flannel 3种模式
    • flannel UDP模式工作原理
    • flannel VXLAN模式工作原理
    • Calico IPIP模式工作原理
    • Calico BGP模式工作原理(本质就是通过路由表来维护每个 Pod 的通信)
    • flannel 和 calico 区别?
    • 陈述式资源管理
    • service 的 4 种类型:
    • service 的端口:
    • 如何获取资源配置清单文件模板(yaml配置文件)
    • 一个pod能包含几个容器?
    • pause容器的作用?
    • Pod 的 3 种类型:
    • Pod 的 3 种容器:
    • Pod 的 3 种镜像拉取策略: spec.containers.imagePullPolicy
    • Pod 的 3 种容器重启策略: spec.restartPolicy
    • Pod 容器的资源限制
    • Pod 容器的 3 种探针(健康检查)
    • 探针的 3 种探测方式
    • 探针参数:
    • Pod 应用容器生命周期的启动动作和退出动作
    • K8S是通过 List-Watch 机制实现每个组件的协作
    • scheduler 的调度策略
    • Pod 调度到指定的 Node节点
    • 标签的管理操作
    • 亲和性
    • 如何判断是否在同一个拓扑域?
    • 亲和性的策略
    • 污点 taint
    • 容忍 tolerations
    • 不可调度
    • 不可调度 + 驱逐
    • Pod 的启动过程:
    • Pod 生命周期的 5 种状态
    • K8S 中的排障手段
    • K8S 的 存储卷 volumes
    • PV PVC
    • 创建 PV 的方式(PV的类型):
    • PV 的 4 种状态:
    • 创建使用 静态PV
    • 创建使用 动态PV
    • K8S 中的排障手段
    • K8S 的 存储卷 volumes
    • PV PVC
    • 创建 PV 的方式(PV的类型):
    • PV 的 4 种状态:
    • 创建使用 静态PV
    • 创建使用 动态PV

第一阶段

平常怎么处理故障,思路是什么样的

看故障现象根据经验就知道原因;
第一次碰到,先定位问题,故障不一定是我的问题,开发、测试、硬件、网络,也可能我的问题;如果问题在我,根据错误提示信息、系统日志、错误日志去分析问题。
系统问题可以用top看cpu、df看磁盘、uptime看负载、ps看进程、sar看流量。
应用程序就是看日志提示解决问题,如果是开发问题,可以通过邮件等方式,描述故障现象和定位过程发送给开发对接人和我的领导。
如果是网络问题,路由、交换机可以找网络工程师,可以抓包tcpdump;
如果是硬件问题,可以找厂商。

公网和私网分类以及范围,本机地址,网络地址,广播地址

公网
A:1.0.0.1~126.255.255.254/18
B:128.0.0.1~191.255.255.254/16
C:192.0.0.1~223.255.255.254/24
D:224.0.0.1~239.255.255.254
E:240.0.0.1~255.255.255.254
私网
10.0.0.0~10.255.255.255
172.16.0.0~172.31.255.255
192.168.0.0~192.168.255.255
其他
169.254.0.0~169.254.255.255 DHCP失效时分配的网址
127开头的都是本机 127.255.255.255除外 它是广播地址

224.0.0.18 VRRP协议交换机侦听此地址

交换机的工作原理

1)交换机开机时MAC地址表没有任何记录
2)源主机通过交换机发送数据帧给目标主机,交换机学习数据帧中的源MAC和对应接口标识并记录到MAC地址表中
3)如果交换机的MAC地址没有目的MAC地址所对应的接口记录,则会进行广播泛洪
4)只有拥有对应的MAC地址的主机才会进行回应响应
5)交换机会从目的主机回复的消息中学习到MAC地址和对应的接口标识并记录到MAC地址表中,之后两台主机可以通过交换机的MAC地址表进行单播通信
交换机通过MAC地址表的记录实现数据帧的转发,MAC地址表默认老化时间300S

ICMP是什么干什么用的,它有哪些命令

是一个错误侦测与回馈机制,发送错误和控制消息来探测节点的网络连通性
ping
pathping 例子:pathping www.baidu.com 跟踪数据包路径,计算机丢包情况
traceroute

TCP和UDP协议的区别

         TCP                                UDP

可靠性 可靠 不可靠
连接性 面向连接 无连接
报文 面向字节流 面向报文(保留报文的边界)
效率 传输效率低 传输效率高
双工性 全双工 一对一、一对多、多对一、多对多
流量控制 有(滑动窗口) 无
拥塞控制 有(慢开始、拥塞避免、快重传、快恢复) 无

tcp有哪些控制位,分别是什么意思

URG 紧急位
ACK 确认位
PSH 急迫位
RST 重置位
SYN 同步(连接)位
FIN 断开位

你是用过哪些Linux命令

性能监控方面: free 查看内存 top 动态监控cpu 负载 等 df 查看磁盘使用 ps 查看进程 iostat 查看io

用户方面:useradd 创建用户 chmod 修改权限 chown 设置归属

查询方面: sed grep awk cat more less which whereis

Linux 系统安全优化与内核优化

安全优化: 设置防火墙规则 限制root 用户远程登录 设置历史命令条目及登录超时 chattr锁定文件 时间同步 配置yum更新源

内核系统优化:

sysctl.conf 文件中
net.ipv4.ip_forward  设置路由转发
net.ipv4.tcp tw recycle = 1 开启time-wait 快速回收
net.ipv4.ip_local_port_range = 1024 65000  设置外向连接端口范围/etc/security/limits.conf
nofile 设置文件最大打开数
nproc  设置最大进程数
rss 设置最大常驻集大小
menlock  锁定内存地址空间

经常使用shell脚本做什么

使用shell脚本进行重复性的操作

一键部署公司的业务服务

日志的监控和分割 备份 配置crontab -e 进行计划性任务

巡检

软连接与硬链接的区别

  1. 硬链接与源文件共享inode ,也就是说,他们都指向同一份数据,占用的磁盘空间也相同,删除一共硬链接并不影响源文件内容和其他硬链接,相当于给文件起了一共别名

  2. 软连接与源文件不仅inode不同,源文件删除了。软连接也就失效了,类似于一个快捷方式、

怎么查看文件

find 查找文件

locate 查找系统中已经建立的文件索引库

whereis 可以查找指定命令的二进制文件、源代码文件

which 查找命令所在的目录

IOS七层模型

  1. 物理层
  2. 数据链路层
  3. 网络层
  4. 传输层
  5. 会话层
  6. 表示层
  7. 应用层

三次握手与四次挥手

三次握手 : pc1 向 pc2 发送一个 SYN 报文,pc 回复一个 SYN + ACK 报文 pc1 再次发送一个ACK报文

四次挥手: pc1发送一个FIN / ACK 报文给pc2 (此时pc1客户端进入等待断开连接状态)
pc2接收到pc1发送的请求断开报文之后回复一个ACK报文进行确认
pc2紧接着发送一个FIN / ACK 报文给pc1(此时pc2客户端进入等待断开连接状态)
pc1收到后发送ACK报文进行确认 (此时pc1进入时间等待状态 60秒后默认结束)

lvm 逻辑卷创建过程

  1. 创建一个物理卷: pvcreate 设备名(可创建多个)
  2. 创建卷组 : vgcreate 卷组名 物理卷名
  3. 创建逻辑卷: lvcreate -L 容量大小 -n 逻辑卷名 卷组名
  4. 扩展卷组:先扩展物理卷 在使用 vgextend 卷组名 设备
  5. 扩展逻辑卷 : 随后使用 lvextend -L + 容量大小 /dev/卷组名/逻辑卷名
  6. 格式化 挂载使用·

磁盘配额

  1. 首先检查是否安装 xfsprogs 和 xfs_quota
  2. 以支持配额的方式进行挂载文件系统 mount -o usrquota,grpquota /dev/vgname1/lvname1 /opt 或者永久挂载/ dev / vgname1 / lvname1 / opt xfs defaults,usrquota, grpquota 0
  3. 对用户和组账号进行配额限制 xfs_quota -x -c 'limit -u bsoft-80M bhard-100M isoft=40 ihard=50 lisi’ /opt/
  4. 验证用户在限制目录下的使用

raid 磁盘阵列

raid 0 条带化存储 传输速率达到单个硬盘的N 倍 但它没有数据冗余

raid 1 镜像存储 实现数据冗余 但利用率为N/2

raid 5 N>=3 块盘组成 利用率 (N-1)/N (其中有一块是用来校验的)

raid 6 N>=4 块盘组成 (N-2)/ N (有两块盘用来校验)

raid 1 0 先做镜像 再做条带 利用率 N/2

文本三剑客

grep :

-i 不区分大小写

-v 取反

-n 显示行号

-r 递归过滤文件夹中的所有内容

-w 只显示全部字符的列

-l 列出文件内容符合指定的样式文件名称

sed :

-i 替换:s 对指定的内容进行替换

​ d 删除选定的行

​ a 在当前行的下面增加一行内容

​ i 在当前行的上面增加一行内容

​ c 替换选定行为指定内容

​ y 字符转换 转换前后的字符必须长度相同

awk:

FS 列分隔符

NF 当前处理行的字段个数

NR 当前处理行的序号

RS 行分隔符

防火墙iptables与fireward

四表:raw 表 mangle

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/37204.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

stable diffusion 单张图片换头roop安装配置

1.首先安装秋叶大佬的webui 2.然后在拓展里面搜索roop,下载roop插件,然后重启webui 3.重启后,在文生图和图生图的界面,就可以看到roop的入口 4.这里面,需要提前安装Visual Studio. 勾选一些必要的选项,这里可以参照b站的视频 # 秋叶版本Stablediffusion的Roop插件的安装 …

JavaScript reduce深入了解

reduce() 是 JavaScript 数组的一个高阶函数,它允许你将数组中的元素按顺序依次合并为一个单一的值。reduce() 可以用于数组求和、计算平均值、连接字符串等各种情况。它的工作原理是通过迭代数组的每个元素,然后将元素和累加器进行某种操作,…

使用 Python 在 NLP 中进行文本预处理

一、说明 自然语言处理 (NLP) 是人工智能 (AI) 和计算语言学的一个子领域,专注于使计算机能够理解、解释和生成人类语言。它涉及计算机和自然语言之间的交互,允许机器以对人类有意义和有用的方式处理、分析…

Java # JVM内存管理

一、运行时数据区域 程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区、运行时常量池、直接内存 二、HotSpot虚拟机对象 对象创建: 引用检查类加载检查分配内存空间:指针碰撞、空闲列表分配空间初始化对象信息设置(对象头内&#xff0…

​可视化绘图技巧100篇进阶篇(五)-阶梯线图(Step Chart)

目录 前言 图表类型特征 适用场景 图例 绘图工具及代码实现 ECharts SMARTBI

安卓中常见的字节码指令介绍

问题背景 安卓开发过程中,经常要通过看一些java代码对应的字节码,来了解java代码编译后的运行机制,本文将通过一个简单的demo介绍一些基本的字节码指令。 问题分析 比如以下代码: public class test {public static void main…

Java课题笔记~ JSP编程

4.1 JSP基本语法 JSP (全称Java Server Pages) 是由 Sun Microsystems 公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,而动态生成 HTML、XML 或其他格式文档的Web网页的技术标准。 JSPHTMLJava JSP的本质是Servlet 访问JSP的时候&#x…

【设计模式】原型模式

原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式之一。 这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接…

javaScript:数组的认识与使用以及相关案例

目录 一.前言 二.数组 1.认识 2.数组的声明 1.let arr [1,2,3,4] 2.结合构造函数,创建数组 注意: 3.数组长度的设置和获取 注意 4.删除数组元素 5.清空数组 三.获取数组元素 获取数组元素的几种方法 1.使用方括号 [] 访问元素&#xff1…

Keepalived+Lvs高可用高性能负载配置

环境准备 IP配置VIPnode1192.168.134.170LVSKeepalived192.168.134.100node3192.168.134.172LVSKeepalived192.168.134.100node2192.168.134.171做web服务器使用node4192.168.134.173做web服务器使用 1、准备node1与node3环境(安装LVS与Keepalived)>…

基于微服务+Java+Spring Cloud +Vue+UniApp +MySql实现的智慧工地云平台源码

基于微服务JavaSpring Cloud VueUniApp MySql开发的智慧工地云平台源码 智慧工地概念: 智慧工地就是互联网建筑工地,是将互联网的理念和技术引入建筑工地,然后以物联网、移动互联网技术为基础,充分应用BIM、大数据、人工智能、移…

滚动条样式更改

::-webkit-scrollbar 滚动条整体部分,可以设置宽度啥的 ::-webkit-scrollbar-button 滚动条两端的按钮 ::-webkit-scrollbar-track 外层轨道 ::-webkit-scrollbar-track-piece 内层滚动槽 ::-webkit-scrollbar-thumb 滚动的滑块 ::-webkit-scrollbar…

Android布局【RelativeLayout】

文章目录 介绍常见属性根据父容器定位根据兄弟组件定位 通用属性margin 设置组件与父容器的边距padding 设置组件内部元素的边距 项目结构主要代码 介绍 RelativeLayout是一个相对布局,如果不指定对齐位置,都是默认相对于父容器的左上角的开始布局 常见…

TypeScript教程(二)基础语法与基础类型

一、基础语法 TypeScript由以下几个部分组成 1.模块 2.函数 3.变量 4.语句和表达式 5.注释 示例: Runoob.ts 文件代码: const hello : string "Hello World!" console.log(hello) 以上代码首先通过 tsc 命令编译: tsc …

MQTT宝典

文章目录 1.介绍2.发布和订阅3.MQTT 数据包结构4.Demo5.EMQX 1.介绍 什么是MQTT协议 MQTT(消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协…

php、 go 语言怎么结合构建高性能高并发商城。

一、php、 go 语言怎么结合构建高性能高并发商城。 将PHP和Go语言结合起来构建高性能高并发的商城系统可以通过多种方法实现,以利用两种语言的优势。下面是一些可能的方法和策略: 1. **微服务架构:** 使用微服务架构,将系统拆分…

安卓快速开发

1.环境搭建 Android Studio下载网页:https://developer.android.google.cn/studio/index.html 第一次新建工程需要等待很长时间,新建一个Empty Views Activity 项目,右上角选择要运行的机器,运行就安装上去了(打开USB调试)。 2…

【Linux】UDP协议——传输层

目录 传输层 再谈端口号 端口号范围划分 认识知名端口号 两个问题 netstat与iostat pidof UDP协议 UDP协议格式 UDP协议的特点 面向数据报 UDP的缓冲区 UDP使用注意事项 基于UDP的应用层协议 传输层 在学习HTTP等应用层协议时,为了便于理解&#xff…

【实操】2023年npm组件库的创建发布流程

2022年的实践为基础,2023年我再建一个组件库【ZUI】。步骤回顾: 2022年的npm组件包的发布删除教程_npm i ant-design/pro-components 怎么删除_啥咕啦呛的博客-CSDN博客 1.在gitee上创建一个项目,相信你是会的 2.创建初始化项目,看吧&#…

泛型类接口方法学习

一、泛型 1 概念 泛型(Generics),广泛的类型。最大用途是给集合容器添加标签,让开发人员知道容器里面放到是什么类型,并且自动对放入集合的元素进行类型检查。 类比实参和形参,我们在对方法中的变量操作时,并没有指…