运维面试总结

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 面试总结

shell的单引号,双引号,反撇 有啥区别
” “属于弱引用 ,‘ ’属于强引用 反撇是直接执行命令
单引号和双引号都能关闭shell对特殊字符的处理

Linux在线查看的用户
who w
查看cpu,内存,硬盘,cpu具体信息
top df free /proc/cpuinfo

新增一块存储设备,lvm操作的命令如何写?
需要增加一块虚拟磁盘, 创建物理分区,创建物理卷,创建逻辑卷,挂载挂载逻辑卷,
fdisk /dev/sdb (n,p,1,w)
pvcreate /dev/sdb1 创建物理卷
vgcreate -s 16 mmailbox 创建卷组,并指定PE大小为16M
lvcreate -L 30G -n mail mailbox 创建逻辑卷
mkfs.xfs /dev/mailbox/mail 格式化成xfs文件系统
resize2fs /dev/mailbox/mail 重新识别逻辑卷大小

定时计划任务
crontab

grep 怎么看报错上下文信息,用什么参数
grep -C 10 error.log

tomcat怎么查看并发连接数
netstat -anput | grep 8080 | grep ESTABLISHED |wc -l

mysql的(left join)和右连接( right join)区别
左连接 返回包括左表中的所有记录和右表中连接字段相等的记录。右表中没有则以null显示.
右连接 返回包括右表中的所有记录和左表中连接字段相等的记录。表中没有则以null显示.

mysql 主从
mysql有个binlog二进制文件记录所有的增删改查sql语句,从数据库开启io/sql线程,从数据库把主的binlog的sql语句复制到自己的relaylog中继日志中,然后从中继日志读写数据复写到自己的自己数据库中

mysql宕机怎么看原因,哪些可能宕机,做了主从怎么恢复数据
先查看数据库状态,如果服务没停止,就查看报错日志,查看进程信息,把占用资源最多的进程杀掉,然后修改数据库最大连接数和连接超时数,修改每个连接用户最大使用资源,修改每条进程最大打开文件数
srv_error_monitor_thread线程堵塞
由于慢查询导致的RW-Latch占有,导致其他事务阻塞
由于大事务导致的latch占有
BUG导致的宕机事件大部分的解决方式查到定位某个参数,然后关闭即可
日志量过大未及时清理 ,导致磁盘被占满

3.mysql数据库用的是主从读写分离,主库写,从库读,假如从库无法读取或者从库读取特别慢,你会如何解决?(页面能进去,但是登不进去)
先看主从的二进制日志和中继日志是不是一样,再看io/sql线程是否错误,再日志能看到那里err
先看挂的盘,是否挂上,系统数据盘掉的话,重新备份一下,再挂载,

每个数据都需要挂一个盘

mysql和tomcat默认并发
mysql 100
tomcat 150

tomcat多实例
解压后复制多个tomcat
然后在server.xml修改端口

tomcat jvm调优
内存的限制
系统响应时间增快;
JVM回收速度增快同时又不影响系统的响应率;
JVM内存最大化利用;
线程阻塞情况最小化。

tomcat 怎么启动
解压后在bin下有个启动脚本startup.sh
在system里添加启动项,然后用systemctl start tomcat

JDK环境1.8版本升级
先看进程ps,进程杀了,把原先的目录备份一下,然后把之前的覆盖一下,再重启

Jenkins怎么做分布式,为什么做分布式
运行主节点,为Jenkins代理创建EC2实例,Jenkins代理程序需要与主节点建立双向通信,然后再web界面加入node节点,把地址和端口添加进去。
Jenkins单点构建任务多、负载较高、性能不足的场景

1.redis主从怎么配置
在配置文件里设置redis后台启动 “daemonize yes”
在slave上,redis界面输入:slaveof 主机ip名:端口

2.redis主从模式下,主挂了怎么办?
先把从库升为主库 然后看错误日志 找到主挂的原因解决问题 后边再从新 做好主从

6.详细介绍一下docker的原理及优点?
1.docker使用的cpu、内存等硬件资源都是直接使用物理机的硬件
2.docker使用的系统内核也是宿主机的。docker新建一个容器时,不需要重新加载一个系统内核,避免引导。而新建虚拟机时,得加载系统内核,就很费时间

7.如何映射docker内的环境配置文件到容器外的系统指定路径?
在创建Docker容器时,想要与本地路径进行映射共享文件,使用docker run -v指令

docker的CI/CD工作流程
开发人员在本地编写代码,并使用Docker容器与同事共享他们的工作。使用Docker将其应用程序推送到测试环境中,并执行自动或手动测试。当开发人员发现错误时,他们可以在开发环境中对其进行修复,然后将其重新部署到测试环境中,以进行测试和验证。测试完成后,将修补程序推送给生产环境,就像将更新的镜像推送到生产环境一样简单。

CI/CD 发布流程 通过git 在git的分支(branch)在master合并分支(git merge dev)推送(git push -u origin ops)推送到gitlab再连接Jenkins触发脚本自动同步,gitlab自动化部署服务
放一个项目到gitlab

开发者更新代码--上传分支--提交合并分支请求
运维人员同意合并分支
gitlab触发webhook组件,通知jenkins代码已更新
jenkins关联gitlab之后将更新后的代码自动下载到jenkins本地服务器
并且自动执行脚本,将代码文件发送到web节点的网页目录中
实现持续集成

描述一下如何配置多域名指向同一台服务器上的不同站点?
1:通过分配不同端口号实现
2:通过设置主机头名实现
3.多个域名对应同个Web站点

如何使用docker把A服务器的环境复制到B服务器?
把容器制作成镜像 docker commit
然后docker save”压缩镜像并将其迁移到新服务器
docker load -i 导入

静态:视频,文件,附件,不需要分析和计算,需要取它直接给结果
动态:需要去数据库获取数据,所有接口,所有的程序需要计算和处理,每次点击都需要处理

四层和七层区别?
四层和七层的主要区别在于它们处理数据的方式不同。
四层主要传输协议的连接,而七层应用程序之间的通信。

四层:四层也称为传输层,主要2负责数据包的传输控制,包括数据包的分段、重组、错误检查、流量控制和拥塞控制等。四层的代表协议是传输控制协议(TCP)和用户数据报协议(UDP)。

七层:七层也称为应用层,主要负责应用程序之间的通信和数据交换,包括应用程序的表示、会话和应用层协议的定义等。七层的代表协议有超文本传输协议(HTTP)、文件传输协议(FTP)和域名系统协议(DNS)等。

项目架构是什么样的 都用到那些?
2台nginx,tomcat+2台负载均衡+keepalived+4台mysql(2主2从,redis)+2台sersync+rsync

MySQL部署的架构?
主从 双主多从 mha高可用 读写分离atlas mycat

部署后运维的环境
巡检啊 备份策略备份 还有负载均衡策略

客户出什么问题 mysql出什么问题 es出问题怎么解决

主挂了从是否能顶上,完整演练?
每周有故障演练

内部流量大怎么排查这个问题

redis的架构
主从 主从从 哨兵

mysql的监控指标有哪些,redis的监控指标
性能指标(响应,请求数,缓存) 内存指标(已使用,内存限制)错误指标(主从断开的持续时间)

你公司开多少个nginx线程
(默认支持1024个线程)默认最大是65535

不要说远程给账号,因为运维是管理账号的
保管密码报关很好 服务器有外网,有开通外网的提供连接,有的只有内网
有时候接触过,装系统做raid阵列 我们公司以VMware创建虚拟机,然后虚拟化的服务器

什么是文件系统
特性:一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把文件系统及叠加起来,这样最终的文件系统包含所有底层的文件和目录

Dcoker镜像加载原理(bootfs rootfs)
docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统UnionFS。

docker和虚拟机有啥区别
传统虚拟机:完全型解耦
磁盘是G,占用虚拟系统资源多,启动分钟级别

docker:半解耦 寄生

磁盘M,引擎不占资源,启动秒级别,隔离性好

dockerfile怎么构建镜像
from 基于哪个镜像
add 拷贝文件或目录到镜像
copy 拷贝文件或目录到容器内,不具备自动下载或自动解压
run 构建镜像时运行的shell命令
export 声明容器的服务端口
env 设置容器环境变量
cmd 运行容器时执行的shell命令

volume 指定容器挂载点
docker build -t 镜像名 .

dockerfile构建镜像出现错误(运行)
docker build . -t 指定镜像的名称,-f 指定 Dockerfile 的路径,. 表示使用当前目录作为构建上下文

docker logs -f -t --details 容器id    查看容器日志

k8s组件
master:apiserver,etcd,controller-manager,scheduler,kubelet,kube-proxy

 node: kubelet kube-proxy 

kube apiserver默认端口
8080 6443

kubelet功能
kubelet 是运行在每个节点上的主要的“节点代理”,每个节点都会启动 kubelet进程,主要用来处理 Master 节点 Scheduler 下发到本节点的任务,按照 PodSpec 描述来管理Pod 和其中的容器(PodSpec 是用来描述一个 pod 的 YAML 或者 JSON 对象)。

kubelet 通过各种机制(主要通过 apiserver )获取一组 PodSpec 并保证在这些 PodSpec 中描述的容器健康运行

pod的重启策略
Always:容器失效时\,自动重启该容器,这是默认值
OnFailure:容器停止运行且退出码不为0时重启
Never:不论状态为何,都不重启该容器

pod镜像拉取策略
IfNotPresent : 优先使用本地已存在的镜像,如本地没有则从仓库中拉取镜像。
Always : 总是从仓库拉取镜像,无论本地是否存在镜像。
Never : 仅使用本地镜像,并总是不从仓库拉取镜像。

http中302 404
302 临时重定向 404 前端资源找不到

网络中255.255.255.0有几个可以用的ip
254

有5个1T的硬盘(raid 5)可以使用的存储空间
4

最多同时坏几块不丢失数据,
1

raid成本由低到高的排名
raid0(条带卷),raid1(镜像卷),raid 10,raid5,

冗余的从好到坏
raid5,raid 10,raid1(镜像卷),raid0(条带卷),

raid 5的冗余类型

分布式奇偶校验来提供冗余能力,保护数据免受单个硬盘故障的影响。

常用端口号 mysql redis 8080 21 25 sqlserver
3306 6379 tomcat ftp smtp

数据库的索引有哪些
聚集索引 辅助索引
普通索引,组合索引,全文索引,唯一索引,主键索引

组合索引怎么用 遵循什么原则
最左前缀原则

mysql的存储引擎有哪些,区别是什么
innodb 聚集索引,支持事务,支持外键。支持表,行级锁,不支持全文索引
它支持提交、回滚和紧急恢复功能来保护数据
myisam 非聚集索引,不支持事务,外键。支持表锁,支持全文索引

mysql存储引擎的功能
数据读写,数据安全和一致性,提高性能,热备份,自动故障恢复,高可用方面支持

mysql列属性
主键约束,非空约束,唯一键约束

k8s的控制器(deployment)
控制器是k8s的核心组件之一,它用于管理Pod的部署和扩展。例如,Deployment控制器可以在Kubernetes集群中创建、更新、扩展或缩小一个或多个Pod。

ansible配置

ansible模块

ansible要改密码 怎么改密码
首先要再hosts配置

ansible应用密码怎么改jav

运维的上线步骤怎么实现
代码审查:在代码上线前,需要对代码进行审查,以确保代码的质量和稳定性。

构建代码:将代码编译、构建、打包成可执行文件。

部署代码:将可执行文件部署到相应的服务器上,可以使用自动化部署工具来简化这个过程。

配置环境:在服务器上设置相应的环境变量和配置文件,确保代码能够正常运行。

启动服务:启动相应的服务,检查服务的运行状态和日志,以确保服务能够正常工作。

测试验证:进行系统测试和验证,确保系统正常运行,并且满足用户需求。

监控和维护:在系统上线后,需要持续监控系统的运行状态和性能,并对系统进行必要的维护和修复。

总之,运维的上线步骤需要严谨的执行,以确保代码的质量和系统的稳定性。自动化工具和流程可以提高效率和减少错误。

一台实体机,多台虚拟机假死,业务系统正在运行,访问量不小,运维怎么解决
重启丢失数据,查系统日志message

kibana检索语言与es有啥区别
kibana是用的自然语言,是es的补充工具,
elasticsearch用的json语言

高可用数据业务web端使用服务器给5台搭建一个高可用的环境
负载均衡+高可用 Docker、Kubernetes 数据同步和备份(MySQL 主从复制、Redis Sentinel )监控和日志分析

打开个网站按回车会触发多少个协议
dns http

开发上传图片或者文件服务器是用什么做的
ftp

在图片服务器上安装一些东西 ftp和文件形式上传

运维外派出的问题
权限 软硬件不兼容 数据丢失

运维的最大优势在于能够确保系统稳定性和安全性,提高运维效率和质量,为业务提供可靠的支持和保障。

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
8月前
|
存储 SQL 运维
【面试】运维工程师面试题及答案
【面试】运维工程师面试题及答案
434 0
|
8月前
|
存储 运维 算法
|
1月前
|
存储 运维 关系型数据库
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
|
1月前
|
运维 Linux Docker
Docker笔记(个人向) 简述,最新高频Linux运维面试题目分享
Docker笔记(个人向) 简述,最新高频Linux运维面试题目分享
|
1月前
|
运维 Linux 程序员
最全树莓派4B安装64位Linux(不用显示器键盘鼠标),Linux运维面试送分题
最全树莓派4B安装64位Linux(不用显示器键盘鼠标),Linux运维面试送分题
最全树莓派4B安装64位Linux(不用显示器键盘鼠标),Linux运维面试送分题
|
3天前
|
运维 数据库 网络架构
详尽分享运维网络面试题101道
详尽分享运维网络面试题101道
|
1月前
|
运维 Linux Docker
ChatGLM3在Docker环境部署(1),Linux运维电话面试技巧
ChatGLM3在Docker环境部署(1),Linux运维电话面试技巧
|
1月前
|
运维 关系型数据库 MySQL
【运维面试100问】(三)说说你在故障排除方面的经历_运维面试故障排查类面经
【运维面试100问】(三)说说你在故障排除方面的经历_运维面试故障排查类面经
【运维面试100问】(三)说说你在故障排除方面的经历_运维面试故障排查类面经