面试题总结

文章目录

  • 第一阶段:
  • 网络
    • 1、osi七层模型、tcp\ip 五层模型
    • 2、三次握手四次挥手
    • 3、交换机路由器工作原理
    • 4、vlan的作用
    • 5、icmp协议
  • Linux
    • 1、cpu、内存、io、磁盘容量、网络流量、load average
    • 2、lvm逻辑卷如何创建
    • 3、raid磁盘阵列
    • 4、开机引导过程
    • 5、软连接硬链接
    • 6、查找文件命令
    • 7、yum仓库
    • 8、文本三剑客grep、awk、sed
    • 9、linux的性能安全优化
  • shell脚本
    • 1、预定义变量
    • 2、输出全局变量
    • 3、如何创建函数
    • 4、 shell实现nginx日志自动切割
  • 防火墙
    • 1、四表五链
    • 2、iptables命令
    • 3、firewalld九大区域
  • 第二阶段
    • 1、nginx的优化
    • 2、nginx负载均衡器的类型
    • 3、nginx如何实现会话保持
    • 4、nginx四层代理和七层代理的区别
    • 5、tomcat的几个端口
    • 6、mysql sql语句
    • 7、MySQL索引
    • 8、MySQL事务、隔离级别
    • 9、什么是死锁,产生的原因、解决方法、如何避免
    • 10、MySQL存储引擎
    • 11、Keepalived
    • 12、脑裂
    • 13、状态响应码
    • 14、MySQL的存储过程
    • 15、MySQL高可用
    • 16、MySQL主从复制有延迟
    • 17、MySQL双1设置
    • 18、MySQL配置优化
    • 19、如何定位并优化慢查询SQL?
    • 20、Redis 为什么读写速度那么快
    • 21、redis的数据结构
    • 22、redis 中rdb和aof的区别
    • 23、redis主从复制(哨兵、集群)
    • 24、什么是 CDN
    • 25、rsync怎么实现远程同步、清空文件
    • 26、elk怎么工作的、组件
    • 27、es集群部署
    • 28、Logstash模块
    • 29、es创建删除索引
    • 30、kafka作用特点、组件
    • 31、zabbix组件、如何自定义监控状态
    • 32、zookeeper的选举机制
    • 33、redis的优化
    • 34、 ceph的存储过程
    • 35、缓存击穿,穿透,雪崩
      • 缓存击穿:
      • 缓存雪崩
      • 缓存穿透
    • 36、MHA 部署过程:
    • 37、tomcat的优化
  • 三、
    • 1、k8s的工作流程
    • 2、k8s核心组件
      • master组件
      • node组件
    • 3、相比VLAN技术,VXLAN技术具有以下的优势:
    • 4、flannel UDP 模式的工作原理
    • 5、flannel vxlan 模式工作原理

第一阶段:

网络

1、osi七层模型、tcp\ip 五层模型

应用层 :直接面向用户,为用户的应用进程提供服务,处理应用进程之间的通信。

表示层 :确定数据的表示形式,完成数据格式之间的转换,从而使收发双方都能理
解。

会话层 :负责管理远程用户或进程之间的通信,为表示层提供建立、维护和结束会话连接的功能。

传输层 :定义传输数据的端口号,将数据以数据段的形式完成端到端的传输。

网络层 :通过逻辑寻址,实现不同网络之间的路径选择,将源和目的ip地址以数据包的形式实现数据从源地址到目的地址的传输。通过ip地址实现点到点的通信。

数据链路层 :建立相邻结点之间的数据链路,进行硬件地址寻址、差错校验等功能,将比特封装成数据帧的形式进行文件的传输。通过物理(MAC)地址来实现两个相邻网络之间的通信。

物理层 :将数据以比特流的形式进行传输,物理层将这些二进制数字组成的比特流转换成电信号在网络中传输。

应用层—传输层—网络层—数据链路层—物理层

2、三次握手四次挥手

三次握手:

  1. 客户端向服务器发送一个SYN(同步)报文,其中包含一个随机的初始序列号(ISN)。
  2. 服务器收到SYN报文后,向客户端发送一个SYN-ACK(同步-确认)报文,其中确认号为客户端的ISN加1,并且服务器也随机生成一个ISN。
  3. 客户端收到服务器的SYN-ACK报文后,向服务器发送一个ACK(确认)报文,其中确认号为服务器的ISN加1,同时客户端还确认了服务器的ISN。

四次挥手:

  1. 当客户端需要关闭连接时,发送一个FIN(结束)报文,表示数据发送完成。
  2. 服务器收到FIN后,发送一个ACK报文作为确认。
  3. 服务器继续发送数据,当数据发送完成后,向客户端发送一个FIN报文。
  4. 客户端收到服务器的FIN后,发送一个ACK报文作为确认,并进入TIME_WAIT状态。在TIME_WAIT状态持续2倍的报文最大生存时间(MSL)后,关闭连接。

这样,通过三次握手建立连接和四次挥手关闭连接可以确保数据的可靠传输和连接的正常关闭。

为什么要进行三次握手呢?

因为三次握手的过程可以最快的进行客户端和服务器之间的互联互通,减少资源消耗。

3、交换机路由器工作原理

交换机:交换机的工作原理可以理解为是交换机通过MAC地址表来实现数据的传输

1、初始状态:交换机刚开机时MAC地址表没有任何记录。
2、MAC地址学习:源主机通过交换机发送数据帧给目标主机,交换机学习数据帧中的源MAC和对应的接口标识,并记录到MAC地址表中。
3、广播未知数据帧:如果交换机的HMAc地址表没有目的MAc地址所对应的接口记录,则会进行广播泛洪。
4、接收方回应:只有拥有对应目的MAC地址的主机才会进行回复响应。
5、交换机实现单播通信:交换机会从目的主机回复的消息中学习到MAc地址和对应的接口标识,并记录到MAC地址表中,之后两台之间即可通过交换机。MAC地址表的记录实现单播通信
注:MAC 地址表的默认老化时间是300s

路由器:通过路由表转发

4、vlan的作用

vlan是一种虚拟局域网技术,它将一个物理局域网划分成多个逻辑上的虚拟局域网。VLAN的作用主要有以下几点:

  1. 提供逻辑隔离:VLAN可以将网络设备按照逻辑上的需求进行划分,使得不同VLAN上的设备之间无法直接通信,从而增强网络的安全性。
  2. 简化网络管理:通过VLAN,管理员可以根据不同的需求将设备逻辑上分组,方便管理和配置。例如,可以将同一部门或同一功能的设备划分到同一个VLAN,更好地进行网络资源的管理。
  3. 减少广播域:传统的广播会在整个物理局域网中传播,这会导致网络拥塞和冲突。而VLAN将不同的设备划分到不同的虚拟局域网中,可以减少广播域的范围,降低了广播引起的网络负载。
  4. 支持虚拟机迁移:在虚拟化环境中,VLAN可以帮助实现虚拟机的灵活迁移。通过划分不同的VLAN,可以使得虚拟机在不同的物理服务器之间迁移时,网络配置更加简单和灵活。

5、icmp协议

linux:ping traceroute

windows:tracert、

Linux

1、cpu、内存、io、磁盘容量、网络流量、load average

**free ** 查看交换空间个内存状态
**cat /etc/redhat-release ; cat /etc/*release ; cat /proc/version ** 查看当前系统版本
**uname -r ** 查看内核版本
**cat /proc/cpuinfo ; yum -y install sysstat, sar ; ** 查看cpu信息
**vmstat ** 查看系统内存,交换空间,io,cpu信息
**iostat ** 查看磁盘io性能
**top ** 动态查看系统当前进程信息CPU负载信息,内存信息,交换空间信息
**yum -y install dstat , dstat ** 获取占用cpu的进程
**uptime ;w ** 显示系统运行时间,登录用户 和 CPU 负载情况
**cat /proc/meminfo ** 查看内存
**top --> H ** 查看线程
**ps -T ** 查看线程

2、lvm逻辑卷如何创建

在这里插入图片描述

3、raid磁盘阵列

raid级别 硬盘数量要求 利用率 有无冗余能力 读写性能
raid0 N N 单个硬盘的n倍
raid1 N(为偶数) N/2 有,允许一个设备故障 读性能提升,写没有提升
raid5 N>=3 (N-1) /N 有,允许一个设备故障 需要多写一份纠删码,所以写性能相对raid 0低一些
raid6 N>=4 (N-2) /N 有,允许两个设备故障 需要多写两份纠删码,所以写性能相对raid 5更低一些
raid10 N>=4 (偶数) N/2 有,允许不同组中各坏一个 读性能可提升N倍,写性能提升N/2倍

4、开机引导过程

1 、 开机自检(BIOS):检测出第一个能够引导系统的设备,比如硬盘或者光驱。

2 、MBR 引导:运行放在MBR扇区里的启动GRUB引导程序

3 、[GRUB])菜单:GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置以及路径位置。

4 、加载Linux内核:把内核和镜像文件系统加载到内存中

5 、init 进程初始化:加载硬件驱动程序,以及初始化进程,内核把init进程加载到内存中运行

5、软连接硬链接

软连接:ln -s 源文件 链接文件

硬链接:ln 源文件 链接文件

6、查找文件命令

find、locate、whereis、which

find:

-a:and 必须满足两个条件才显示
-o:or 只要满足一个条件就显示
-name:按照文件名查找文件
-iname:按照文件名查找文件(忽略大小写)
-type:根据文件类型进行搜索
-perm:按照文件权限来查找文件
-user 按照文件属主来查找文件。
-group 按照文件所属的组来查找文件。
-fprint 文件名:将匹配的文件输出到文件。
-newer file1 ! newer file2 查找更改时间比文件file1新但比文件file2旧的文件

7、yum仓库

8、文本三剑客grep、awk、sed

grep:

选项 作用
-i 查找时忽略大小写
-v 反向查找(后面的查找的条件,是除了这个限制的信息,其余都显示)
-n 显示行号
-r 递归过滤文件夹中的所有文件
-A 后面跟数字n +匹配的关键字,会显示关键字的后面n行
-B 后面跟数字n +匹配的关键字,会显示关键字的前面n行
-C 后面跟数字n +匹配的关键字,会显示关键字的前后n行
-e 多条件查询(逻辑or或关系

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

iOS——Block循环引用

Capturing ‘self’ strongly in this block is likely to lead to a retain cycle 典型的循环引用 self持有了blockblock持有了self(self.name) 这样就形成了self -> block -> self的循环引用 解决办法 强弱共舞 使用 中介者模式 __weak typeof(self) weakSelf sel…

“Rust难学”只是一个谎言

近年来Rust的存在感日渐升高,但是其陡峭的学习曲线似乎总是令人望而生畏。不过谷歌的一项内部调查表明,关于Rust的“难学”或许只是一种谣传。 Rust到底难不难学?谷歌有了Go,为何还要支持Rust?频频陷入内斗的Rust领导…

力扣 C++|一题多解之动态规划专题(2)

动态规划 Dynamic Programming 简写为 DP,是运筹学的一个分支,是求解决策过程最优化的过程。20世纪50年代初,美国数学家贝尔曼(R.Bellman)等人在研究多阶段决策过程的优化问题时,提出了著名的最优化原理&…

【前端|Javascript第1篇】一文搞懂Javascript的基本语法

欢迎来到JavaScript的奇妙世界!作为前端开发的基石,JavaScript为网页增色不少,赋予了静态页面活力与交互性。如果你是一名前端小白,对编程一无所知,或者只是听说过JavaScript却从未涉足过,那么你来对了地方…

MPAndroidChart学习及问题处理

1.添加依赖 项目目录->app->build.gradle dependencies {implementation com.github.PhilJay:MPAndroidChart:v3.0.3 }项目目录->app->setting.gradle dependencyResolutionManagement {repositories {maven { url https://jitpack.io }} }高版本的gradle添加依…

QGraphicsView实现简易地图1『加载离线瓦片地图』

最简单粗暴的加载方式,将每一层级的所有瓦片地图全部加载 注:该方式仅能够在瓦片地图层级较低时使用,否则卡顿!!! 瓦片地图数据来源:水经注-高德地图-卫星地图 瓦片地图瓦片大小:25…

【高级程序设计语言C++】二叉搜索树

1. 二叉搜索树的概念2. 二叉搜索树的功能2.1. 二叉搜索树的简单模型2.2. 二叉搜索树的查找2.3. 二叉搜索树的插入2.4. 二叉搜索树的删除 3. 二叉搜索树的性能分析 1. 二叉搜索树的概念 二叉搜索树(Binary Search Tree,简称BST)是一种常见的二…

C# Onnx Paddle模型 OCR识别服务

效果 项目 可运行程序exe下载 Demo(完整源码)下载

03 制作Ubuntu启动盘

1 软碟通 我是用软碟通制作启动盘。安装软碟通时一定要把虚拟光驱给勾选上,其余两个可以看你心情。 2 镜像文件 我使用清华镜像网站找到的Ubuntu镜像文件。 Index of /ubuntu-releases/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 请自己选择镜像…

探索 GPTCache|GPT-4 将开启多模态 AI 时代,GPTCache + Milvus 带来省钱秘籍

世界正处于数字化的浪潮中,为了更好理解和分析大量数据,人们对于人工智能(AI)解决方案的需求呈爆炸式增长。 此前,OpenAI 推出基于 GPT-3.5 模型的智能对话机器人 ChatGPT,在自然语言处理(NLP&a…

Word导出高清PDF

通过word导出pdf清晰度较高的方法_word如何导出高分辨率pdf_Perishell的博客-CSDN博客通过打印机属性设置,让word打印出比较高清的pdf_word如何导出高分辨率pdfhttps://blog.csdn.net/weixin_45390670/article/details/129228568?ops_request_misc%257B%2522reques…

卡片的点击事件通过点击进行路由传参

下面是详情页 通过 接收 <template><div class"detail"><img :src"row.imgUrl"><van-icon name"arrow-left" click"back" /></div> </template><script> export default {created() {let …

2023年第四届“华数杯”数学建模思路 - 案例:随机森林

## 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 什么是随机森林&#xff1f; 随机森林属于 集成学习 中的 Bagging&#xff08;Bootstrap AGgregation 的简称&#xff09; 方法。如果用图来表示他们之…

喜报 | 《中国AIOps现状调查报告(2023)》发布!擎创科技案例再度入选

&#xff08;本文部分内容来自《中国AIOps现状调查报告&#xff08;2023&#xff09;》&#xff0c;丝小编扣1&#xff0c;领取完整版报告&#xff09; 2023年7月18日&#xff0c;信通院Xops产业创新发展论坛于北京成功举办。大会旨在提高企业研发运营水平&#xff0c;加强XOp…

【Linux】进程间通信——管道

目录 写在前面的话 什么是进程间通信 为什么要进行进程间通信 进程间通信的本质理解 进程间通信的方式 管道 System V IPC POSIX IPC 管道 什么是管道 匿名管道 什么是匿名管道 匿名管道通信的原理 pipe()的使用 匿名管道通信的特点 拓展代码 命名管道 什么是命…

问题:idea启动项目错误提示【command line is too long. shorten command line】

问题&#xff1a;idea启动项目错误提示【command line is too long. shorten command line】 参考博客 问题描述 启动参数过长&#xff0c;启动项目&#xff0c;错误提示 原因分析 出现此问题的直接原因是&#xff1a;IDEA集成开发环境运行你的“源码”的时候&#xff08…

java:解决报错非法字符: ‘\ufeff‘以及什么是BOM

背景 运行 JAVA 项目后&#xff0c;报错提示&#xff1a;非法字符: \ufeff&#xff0c;如图&#xff1a; 但是我在这个报错的文件中并没有搜到这个字符&#xff0c;那到底是什么原因 什么是BOM BOM&#xff08;Byte Order Mark&#xff09;&#xff0c;隐藏字符&#xff0c…

Pytorch深度学习-----神经网络之线性层用法

系列文章目录 PyTorch深度学习——Anaconda和PyTorch安装 Pytorch深度学习-----数据模块Dataset类 Pytorch深度学习------TensorBoard的使用 Pytorch深度学习------Torchvision中Transforms的使用&#xff08;ToTensor&#xff0c;Normalize&#xff0c;Resize &#xff0c;Co…

python与深度学习(十一):CNN和猫狗大战

目录 1. 说明2. 猫狗大战2.1 导入相关库2.2 建立模型2.3 模型编译2.4 数据生成器2.5 模型训练2.6 模型保存2.7 模型训练结果的可视化 3. 猫狗大战的CNN模型可视化结果图4. 完整代码5. 猫狗大战的迁移学习 1. 说明 本篇文章是CNN的另外一个例子&#xff0c;猫狗大战&#xff0c…

Go -- 测试 and 项目实战

没有后端基础&#xff0c;学起来真是费劲&#xff0c;所以打算速刷一下&#xff0c;代码跟着敲一遍&#xff0c;有个印象&#xff0c;大项目肯定也做不了了&#xff0c;先把该学的学了&#xff0c;有空就跟点单体项目&#xff0c;还有该看的书.... 目录 &#x1f34c;单元测试…