“面试总结 ”
面试题总结
redis篇
1、什么是Redis?简述它的优缺点?
redis是一个非关系型数据库,主要以键值对的方式存储数据,用于缓存服务,也可用来保存会话信息
2、Redis相比memcached有哪些优势?
redis支持数据持久化存储,支持更多的数据类型
3、Redis支持哪几种数据类型?
数字、字符串、哈希、位图等
4、Redis主要消耗什么物理资源?
内存
5、Redis有哪几种数据淘汰策略?
Noeviction
默认策略,内存达到顶值后,返回写失败信息
allkeys-lru
按最近最少访问原则,在所有数据中进行清除
volatile-lru:
按最近最少访问原则, 在设置的过期时间的数据中进行清除
allkeys-random:
在所有数据范围内,随机删除数据
volatile-random:
在设置了过期时间的数据中随机删
6、Redis官方为什么不提供Windows版本?
因为目前Linux版本已经相当稳定,而且用户量很大,无需开发windows版本,反而会带来兼容性等问题。
7、一个字符串类型的值能存储最大容量是多少?
512M
8、为什么Redis需要把所有数据放到内存中?
为了追求数据读写速度
9、Redis集群方案应该怎么做?都有哪些方案?
主从复制、哨兵集群、分片集群
10、Redis集群方案什么情况下会导致整个集群不可用?
有A,B,C三个节点的集群,在没有复制模型的情况下,如果节点B失败了,那么整个集群就会以为缺少5501-11000这个范围的槽而不可用。
11、MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据?
redis内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。
12、Redis有哪些适合的场景?
用于缓存、消息中间件
13、Redis如何设置密码及验证密码?
在配置文件中通过require_pass设置,登录redis时通过auth认证密码
14、说说Redis哈希槽的概念?
哈希槽是在分片集群中的概念,用于定位数据存储,分片集群创建后,固定有16384哈希槽,集群中的主节点平均分,当有数据存入时,会使用键进行哈希运算再除以16384取余,根据余数定位数据
15、Redis集群的主从复制模型是怎样的?
支持一主一从,一主多从,从默认为只读
16、Redis集群会有写操作丢失吗?为什么?
会有,当集群中的主服务器宕机时,会缺少一部分数据的写操作
公司面试题
1、yum安装的缺点
需要依赖正常的yum源配置文件,安装软件时需要配置yum源
2、yum安装后如果没有提示配置文件位置要怎么查找
rpm -ql 软件名
3、ssh免密登陆的原理
通过密钥对,公钥和私钥唯一对应的关系,在客户机创建密钥对,并将公钥拷贝到远程服务器
4、讲述TCP协议三次握手过程
主机A发送SYN请求建立连接
主机B回应SYN + ACK, 同意连接并向A发送建立连接的请求
主机A回应ACK,确认建立连接
5、你比同届毕业生的优势是什么
6、你是怎么和你学习圈子的人认识的
7、你平时通过什么来学习想要了解的技术知识。
8、现在在那居住
9、能否接受不定期加班
10、入职后对自己有什么规划
某云面试题
1、监控cpu 磁盘,IO,内存的命令
监控cpu: top, mpstat, uptime
磁盘: iostat
内存:free -m
2、文件权限,解释755是什么权限
文件所有者读写执行,用户组与其他用户读和执行
3、服务器加硬盘,如何挂在到data目录
硬盘首先进行初始化,按需求进行分区,格式化,编辑/etc/fstab进行自动挂载, 使用df -hT查看挂载
4、需要从文件中截取字符串用到那些字符串
使用awk或者grep
5、Linux默认shell
/bin/bash
6、测试到某个服务器的网络和连通性
测试网络可以使用ping,telnet
7、看一台服务器到那个服务的ip或端口通不通
测试ip是否可正常通信使用ping, 测试端口可以使用telnet, curl这样的工具
8、硬链接和软连接区别,删除后呢,删除后有什么影响
1、软链接
可以为文件、目录创建
可跨分区创建
源文件删除,链接文件失效
2、硬链接
只能为文件创建
不可跨分区
源文件删除、链接文件可正常访问
9、有用过ansible用那些模块?
shell执行命令, copy拷贝普通文件,ping测试通信, yum安装系统软件,service管理系统服务,script统一推送执行脚本, user/group模块管理用户和用户组
10、如果ansible 配置密码 ,名字可以叫什么?
需要在主机清单文件中通过ansible_ssh_user变量定义用户名,ansible_ssh_passwd变量定义密码
11、容器了解吗
了解,容器是个轻量级的虚拟化技术,创建速度快,一般都是秒级的; 用于快速部署业务统一,方便业务迁移。容器需要依赖特定的镜像创建
12、如果做nginx镜像 需要做什么?
准备一个容量小的基础镜像,nginx安装包, 编写dockerfile,在dockerfile中指定基础镜像,通过RUN指令安装依赖,安装nginx; 拷贝事先准备的配置文件,使用指令CMD配置前台启动nginx, 再使用docker build构建镜像
13、如果dockerfile 有个copy和add命令 的区别
copy只能拷贝本地文件
add支持拷贝本地文件、url; 如果 本地文件是压缩包,拷贝到容器后会自动解压
14、Docker看有多少镜像
Docker images list
15、Docker启动容器要指定端口
-p 指定端口
-P随机端口
16、容器导出
docker export -o
17、Mysql清楚吗,主从哪? 说明主从的原理
清楚,Master服务器将写操作保存到二进制日志,通过网络将事件发送给slave服务器;
slave服务器产生I/O thread线程接收二进制日志事件,并将该事件写入到本地的中继日志relay log,同时产生SQL thread线程从中继日志中读取操作执行操作,确保数据同步
18、部署MySQL密码忘记怎么办?
编辑配置文件 输入mysqld –skip-grant-tables 然后重启服务,开启MySQL修改密码,退出 ,删除mysqld –skip-grant-tables,重启服务,用密码登录
19、定时任务,每周一的早上2点备份库的一个表,随便取库名表名,每周一怎么体现
0 2 * * 1 mysqldump -u用户 -p密码 库名 表名 > 备份文件内容
20、自动化监控方面接触的什么?搭建过吗,简要说一下zabbix部署流程
自动化监控,首先部署一台zabbix监控服务器,可以通过ansible这样的工具在客户端自动部署zabbix-agent,然后在server端通过创建自动注册动作自动监控主机、链接模板
21、ELK有了解吗,说一下了解的模块,说一个各自负责的内容
ELK可以方便在集群环境统一收集日志,便于日志分析处理。服务端主要涉及3个组件,分别是ES提供搜索引擎功能,Logstash提供日志过滤功能,kibana提供web UI界面; 客户端通常需要安装beat软件,作为日志搜索的客户端工具
某创面试
-
MySQL数据库的备份方式有哪几种
通过mysqldump做逻辑备份,也可以进行物理备份
-
MySQL数据库找不到套接字文件的可能原因
(1) MySQL服务未启动,
(2) 套接字文件的路径设置错误。需要修改配置文件
(3) 套接字文件目录的访问权限
(4) 套接字文件丢失
-
说一说在MySQL数据库中 view命令和job命令分别是干什么的
答:view命令为视图命令,下次再使用数据时,直接从视图中查询数据即可
Job命令为MySQL的定时任务, 可以精确定位到秒级别的任务执行
-
在top命令中如何按照进程的CPU使用率排序
答:运行top命令后,键入大写P 即可查看按进程的CPU使用率排序。
-
讲一讲raid50和raid5 的区别
答:(1) raid50提供了个更可靠的数据存储和整体性能,支持更大的卷尺寸,即使两个 物理磁盘发生故障,数据也可以顺利恢复过来
(2) raid5 适合小数据块和随机读写的数据。Raid50更适合需要高可靠性存储。高读取速度,高数据传输性能的应用
-
讲一讲lvs和haproxy负载均衡的区别
答:lvs是基于四层调度的负载均衡,haproxy既可以进行四层调度,也可以进行七层调度
-
阐述一下LVS负载均衡集群中的DR模式和NAT模式。
答: 在DR模式中请求由LVS接受由真实提供服务的服务器,直接返回给用户。返回的
候不经过LVS
在NAT模式中请求的相应都需要经过调度器的处理。DIP VIP分别属于不同的网络。调度器开启路由转发,所有real server网关要指向VIP
某鲸面试题
1、linux怎么删除多个后缀为.log文件
rm *.log
2、raid0 1 5 10区别
Raid 0:两块盘,增加数据读写速度,无数据冗余
Raid 1:两块盘,增加数据冗余 ,1/2存储空间
Raid 5:至少3块盘,存储数据和校验码,提升速度、冗余性; 最多允许坏一盘硬
Raid 10:至少4块盘,提升速度、冗余 ,就是raid 1和raid 0的组合
3、shell脚本写了一个1-100循环打印
For i in $(seq 100); do
Echo $i
done
4、mysql存储引擎
MyISAM: 查询速度快,不支持事务
InnoDB: 支持事务,适应写多的场景
5、服务器开机步骤
开机硬件自检,在MBR中找引导记录加载grub,加载内核,启动系统初始化程序,等待用户登录
6、nginx几层负载均衡
支持四层、七层负载
7、redis哨兵 集群 原理
哨兵起一个监控的作用,监控主服务器状态,主宕机后,会在从中自动选择一个新主,并把其他的从连接到新主上,增加主服务器的可用性
8、tomcat 原理 各个端口作用
原理:启动java虚拟机,在java虚拟机中运行应用
8005端口:默认实例端口, 8080:默认提供http服务端口
9、怎么sed将一个文件带#号 的行删除
Sed -ri ‘/#/d’ 文件
10、kvm列举出所有的虚拟机命令
Virsh list –all
11、openstack的创建开机流程,都会流转那些组件
客户端申请创建虚拟机,由nova-api进行接收,通过nova-conductor将信息写入数据库,再由nova-scheduler选择合适的计算节点创建,最后由nova-compute调用hypervisor创建虚拟机;
中间会涉及glance组件,获取镜像信息; neutron组件为其提供网络连接,cinder组件提供系统盘
12、对于mysql的备份,有2T的数据需要备份,使用mysqldump合适吗
不合适,考虑数据恢复速度,建议使用物理备份方式
13、不同目录下的*.log文件,怎么通过一条命令删除
# find 目录 -name “*.log” -exec rm -rf {} \;
14、docker-compose怎么去按顺序启动容器
按compose文件中定义的service顺序
15、LVS负载均衡有那些调度算法
主要三类,轮询rr, sh源hash, lc最少连接算法
16、Keepalived中一台机器挂了vip漂移到备机上,主机恢复了vip会飘回去吗
会
17、keepalived master抢占和脑裂怎么排查
通过观察messages日志信息,或者通过抓包查看心跳地
18、存活探针和就绪探针的用法
都是用来对Pod进行健康状态检查的
存活探针:只要pod自身运行正常即认为健康
就绪探针:要检测pod中的服务可正常接收客户端请求
19、k8s怎么去管理容器的
将容器封装到pod中,以pod为最小单位进行管理
20、有状态pod调度用什么
pod重建时会自动挂载之前的存储,适用于数据库场景
21、k8s的组件
Kube-apiserver:负责接收客户操作请求,身份认证,与etcd数据库交互
Kube-scheduler:调度pod的操作请求
Kube-controller-manager:提供RS,维护pod副本
Kubelet:负责调用容器引擎实现容器的创建、删除、查看等操作
Kube-proxy:实现pod间负载均衡
etcd数据库:存储k8s集群中所有状态数据
22、k8s的pv和pvc有啥区别
PV:相当于对后端真实存储的一个描述
PVC:相当于一个申请存储空间的请求
23、用grep命令查看关键字的前10行
# -B 10 前10行
# -A 10 后10行
# -C 10 前后10行
24、sed 命令加什么参数只显示修改过的行 -n
# -n
25、怎么查看cpu的使用情况
# top
# mpstat
26、mysql怎样备份一张表
# mysqldump -u 用户名 -p 密码 –lock-all-tables –master-data=2 库名 表名 > 文件名称
27、数据库有一张学生表,把成绩59分的学生,修改为70分
# update 表 set 成绩=70 where 成绩=59
28、mysql的端口
3306/tcp
29、用zabbix监控一个网站,都需要哪些监控项
端口进程状态 并发连接 下载速度 时间 流量
30、k8s的最小调度单位
pod
31、新磁盘设置的命令
Fdisk 管理MBR分区表磁盘 小于2T
Parted 管理GPT分区表磁盘 大于等于2T
32、查看数据库的主从
# show slave status
33、docker的命令
# docker run
# docker ps
# docker rm
# docker rmi
# docker exec
# docker logs
# docker inspect
34、docker网络模式
Bridge, host, none, container
35、块存储和网络存储的区别
块存储: 直接共享裸设备,通过iSCSI协议共享存储,分为IP SAN和FC SAN
网络存储: 基于NFS或CIFS共享文件系统,适用于小型集群
36、nginx和lvs负载均衡的区别
Nginx:
七层调度,1.19版后支持四层调度(stream模块)
可以用于做网站服务、url重写
LVS
基于内核工作
4层调度
37、zabbix怎么通过snmp协议监控网络设备
A) 网络设备启动SNMP V2协议
B) 网络设备配置MIB库
C) Zabbix server通过SNMP协议采集数据
38、主从复制原理
39、grep的一些参数的用法
-A, -B, -C
-i 忽略大小 写
-n 显示行号
-e 多条件过滤
-v 反向过滤
-E 支持扩展正则
40、ftp配置完成后能不能root用户直接登录
不能,root用户不能作为任意服务访问用户
41、kvm,docker的一些操作命令
# virsh list –all
# virsh net-list
# virsh pool-list
# virsh attach-disk
# virsh attack-interface
# qemu-img info
# qemu-img create -f qcow2
42、mysql源码安装和rpm安装的区别
源码安装:
可自定义软件安装目录、定制软件功能参数
rpm安装:
安装简单
43、mysql调优
1) 设置最大并发数 2) 调整innodb存储引擎buffer/cache大小 3) 启动线程池
44、三次握手,四次挥手
45、如果远程链接不到MySQL,什么解决思路
1) ping检测网络通信 2) 检查防火墙拦截 3) 检查MySQL远程用户存在、权限是否正确 4) MySQL是否禁用远程 连接 5) MySQL服务是否正常运行
46、CPU那一列各个参数
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
Us: 用户进程CPU百分比
Sy: 系统进程CPU百分比
Ni: 调整过进程优先级CPU占比
Id: CPU空闲
Wa: 等待磁盘IO的进程CPU占比
Hi: 处理硬中断CPU占比
Si: 处理软中断CPU占比
St: 处理虚拟化操作CPU占比
47、在哪可以用到数据库
数据库分关系型、非关系型
关系型用做数据持久化存储
非关系型用作缓存、存储会话
48、nginx了解到多少
Lnmp, url重写、反向代理 、负载均衡、https
49、使用ansible干过什么
自动部署zabbix-agent
自动部署nginx
50、docker删除镜像,查看镜像
# docker rmi 镜像名称/ID
# docker image ls
51、tomcat是什么
# java应用程序中间件
52、mycat中间件,以及项目的原理
Mycat对前端业务呈现虚拟数据库、通过dataNode关联后端真实数据库、通过dataHost关联后端数据库地址
53、haproxy的原理,keepalived项目的组合应用的原理
组合:
haproxy提供虚拟服务接收客户端请求、通过调度算法向real server转发请求、real server处理请求响应客户端。keepalived为haproxy提供高可用,同时提供VIP便于客户端连接
54、查看所有系统的参数
# sysctl -a
55、docker与传统虚拟机的区别
docker容器:
1) 所有容器共享物理机内核 2) 创建速度快 3) 没有虚拟硬件
传统虚拟机:
1) 每个虚拟机都有独立内核 2) 数据处理速度慢
56、连接容器除了exec还有啥
# docker exec
# docker attach 容器名称/ID
57、docker怎么实现容器数据的持久化存储
# -v 挂载物理机目录
# 通过数据卷实现持久化
58、docker 导出镜像命令中export和save的区别
# docker export 导出容器
# docker save 导出镜像
K8s组件有哪些,有啥作用
59、yum依赖网络下载软件,如果电脑没网,怎么安装软件
找有网的主机缓存软件包,拷贝到 服务器做本地源安装
60、Python的pip install 也要网,没网怎么下载
找有网的机器下载模块安装包,上传到服务器进行安装
61、查找文件的命令有哪些
# find
# locate
# whereis
# which
62、mysql主从与主主区别
主从
# 主服务器处理写,从负责读, 主将数据同步到从
主主
# 任意主都可以进行写操作,相互同步数据
63、配置ansible时,ssh怎么配置
A) SSH配置免密
B) 或在/etc/ansible/hosts清单文件中添加被管理主机ssh连接信息
Ansible_ssh_user, ansible_ssh_pwd, ansible_ssh_port
64、openstack各个组件及作用
Keystone: 进行各组件认证、终端用户认证
Nova: 实现云服务器整个生命周期 管理
Glance:提供磁盘镜像文件管理
Neutron:为云服务器提供网络连接
Cinder:为云服务提供虚拟磁盘
Dashboard:在云平台提供web UI界面
Swift:连接分布式存储,存储磁盘镜像文件
65、常见的raid有哪些 raid10和raid01有什么区别 哪个故障率更高
Raid 0:读写速度快
Raid 1:提供数据冗余
Raid 5:增加读写速度、提供数据冗余、最多坏一块盘
Raid 6:和raid 5类似,同时可坏两块盘
Raid 10:
先进行raid 1,再通过raid 1组合raid 0
故障率低
Raid 01
先进行raid 0, 再通过raid 0组合raid 1
故障率高
66、mha中主master故障之后,时隔一个月在连接进mha集群会有什么问题
连接进来时,尽可能减少复制延迟,要在当前主服务器上进行数据备份,在新服务器上进行恢复,将新服务器作为从连接进来
67、如何从容器中传文件到本地,反过来可以吗
# docker cp 本地文件 容器:目录
# docker cp 容器:目录 本地文件
68、k8s master的组件 哪个和数据库交互
Kube-apiserver
69、k8s怎么创建资源
编写yaml文件,通过kubectl create -f yaml文件名
70、keepalived vip怎么生成的,调用的外部脚本 脚本中最关键的是什么
将多个实体机器加入同一个vrrp组,通过组进行生成VIP,在组内通过优先级选举主备、主服务器负责接收连接同时负责心跳,调用外部脚本时,外部脚本检测虚拟服务工作状态,虚拟服务宕机后,停止keepalived,VIP迁移
某世纪面试题
1、nginx反向代理做四层和七层调度在配置上有什么区别?
四层:根据ip和端口进行调度——stream
七层:根据访问的数据来进行调度——upstream
2、Nginx反向代理location的匹配优先级?
精确
不正则
~
区分大小
不区分大小写
所有
3、使用过nginx那些模块?
认证模块,http反向代理模块,负载均衡,调php的模块
4、MySQL的MHA集群原理?
一主多从的环境
MHA node运行在每台MySQL服务器上,MHA Manager会定时探测集群中的master节点,当master出现故障时,它可以自动将最新数据的slave提升为新的master,然后将所有其他的slave重新指向新的master。整个故障转移过程对应用程序是完全透明的。
5、MySQL主从如何查看数据是否同步?
看复制延迟时间
| 看IO | SQL进程状态 |
看二进制日志
6、Docker的网络模型?
Bridge、host、None
7、如何查看docker虚拟网卡绑定的容器数量
docker network inspect
8、使用什么方式安装的k8s集群
Kuberadmin第三方工具
9、Docker是利用什么形成的资源隔离
namespace 命名空间——实现容器间的资源(用户、进程)隔离
Cgroup——实现容器的资源(CPU、内存)限制
10、Deployment 和RS 有什么区别?
RS是副本集 是新一代的RC,提供同样的高可用能力。
Deployment自动创建RS保证Pod副本,支持滚动更新
11、Ceph的存储方式?
块存储、文件系统存储、对象存储
12、Ansible用过什么模块
Copy推送文件、File管理文件目录、Shell执行shell命令、ping检测网络、cron周期计划、yum管理RPM软件、service管理系统服务、group管理用户组、user管理用户、script推送并执行脚本、lineinfile管理文件内容,setup搜集被管理机信息
13、剧本设置变量的优先级
优先级
1.命令行中的-e
2.主机自带的变量 such as: set up
3.playbook中定义的变量(yml文件中)直接写在里面大于写在文件里面的
4.主机清单里面的
变量名:
只能是字母、数字、下划线必须数字开头
引用变量
14、详细说明客户端是怎么访问百度的
(1) 客户端查找本地DNS缓存获取IP,若没有,则查找本地hosts文件,若没有则向网卡上配置的DNS发送请求获取
(2) 客户端查看本地ARP缓存表,查找网关的MAC,若没有,则发送ARP请求获取
(3) 向网关发送数据,经过公司网络设备转换,到达连接互联网的网关设备
(4) 网关设备查找路由器表,将源IP转换为公网IP,将数据发送到互联网
某宇信息面试
一面
1.数据库操作语言
2.ELK日志分析平台部署
3.zabbix具体监控过什么
4.辩论赛小组担任什么角色
5.毕业论文
6.了解tomcat,nginx这种中间件吗,他俩的共同之处是什么
7.tomcat怎么修改端口的
二面
1.在校期间学了什么科目
2.如果你和另一个人需要在周四之前完成任务,你的部分完成了,另一个人咋都不愿意完成你会怎么办
3.如果法官的审核系统有数据错误(他看错了),给你打电话让你修改,然后你核对之后没错,你告诉他,但他就说错了,你会咋弄,还投诉你
4.问啥会来的北京
5.面了几家了
6.一般实习是3-6个月,你如何在三个月内转正
7.毕设问题(浅问了一下)
8.平时喜欢干什么
9.问我的职业规划
10.管理岗位与普通工程师的区别
11.对加班的看法
12.Nginx在做负载均衡的时候,具体的配置是什么?
13.使用过redis没有,有没有做过哨兵集群(在这里我延伸了一下redis哨兵集群中的配置文件的问题)
14.Lvs,haproxy,keepalived,之间有什么区别,分别可以用来干什么?
15.用shell写过什么(我说了pxe还有mysql主备),python掌握的怎么样
16.其余的就是一些硬件上的问题,例如磁盘阵列,网络上的问题,例如抓包。
某丰华面试
1、网络方面,你有了解哪些,对于包括路由器交换机配置什么的说说?
2、Nginx和tomcat,你是怎么分配的,具体根据什么分配的,怎样让它合理,有没有什么依据?
根据应用场景不同选择不同的软件,tomcat主要是java的中间件,运行java应用程序; 而nginx主要用于作反向代理或负载均衡
3、讲讲你对防火墙的理解?
防火墙主要为了加强服务器访问的安全性,设置一些规则拦截或允许特定的访问,分为硬件、软件 防火墙
4、NAT转换有几种?具体怎么配置的,能说一点代码吗?
接触到的有2种,一种是SNAT源地址转换,主要用于内容客户端访问外网; 还有一种是DNAT,目的地址转换,主要用于端口映射
5、说说你对数据库的理解?
以MySQL为例,提供以表为结构的数据存储,主要用于业务后端存储数据,同时提供比如主键、外键的一些约束保证数据的一致完整,同时还提供事务,确保多个写操作的成功执行。
做数据备份可以使用mysqldump工具
可以通过主从复制、双主复制的架构提供性能、可用性
6、AB复制是怎么实现的,说说具体过程?如果在将来从机出现故障,而且数据已经很多的状况下不适合重新全备,你怎么做?有没有什么恢复方法?
主服务器将写操作记录到二进制日志,从服务器产生IO线程接收写操作并存入自己的中继日志,SQL线程从中继日志中读取再重新执行。
从服务器会记录上次故障数据复制的断点,修复后,配置其从断点开始向后恢复数据
7、Nginx转发,后台tomcat日志文件中看到是客户的真实地址还是nginx的地址?
看到的是nginx地址,要想记录真实客户端地址,需要通过proxy_set_header X-REAL-IP $remote_addr配置
8、常用的日志文件有什么?有什么作用,可以得到什么信息?
/var/log/messages:记录系统日常操作行为,例如安装软件、重启网络
/var/log/secure:安全日志,记录普通用户sudo授权执行的操作
/var/log/boot.log:启动日志,记录系统启动流程
Dmesg:查看硬件故障
9、如何利用日志文件进行错误排错,有没有什么具体的方法或者操作?
例如启动服务失败,准备两个终端,其中一个启动服务,另外一个终端通过tail -f动态查看日志,
10、说说抓包的过程?什么情况下抓包,有什么作用?
使用过tcpdump进行抓包,网络通信故障、或集群心跳故障、再或者了解协议的工作原理可通过抓包验证
11、说说TCP和UDP的区别?有什么特点?
TCP:
面向连接、可靠的
可靠是因为其内部设计有数据重传计时器、滑动窗口机制避免数据阻塞
UDP:
无连接,相对不可靠的,由于数据容量小,速度快
12、谈谈你对firewalld的认识?你是如何配置的?具体代码是什么?
Centos 7之后的一个动态防火墙,通过区域实现数据的拦截
13、关系型数据库的特点?和非关系型数据库的区别?
关系型数据库以表为结构存储数据,一般用于业务数据的持久存储
非关系型数据库,例如redis, memcahed,以键值对存储数据,用于缓存 服务
14、MHA集群是怎么部署的?主服务器宕机恢复后它的状态?
MHA主要是为了在主从复制环境下提供主的可用性,它会监控主要的状态,主宕机后,会在从中自动选择一个新主,其他的从会自动连接到新主上
恢复后它需要删除上次的故障切换记录,重新启动MHA
15、Nginx是怎样实现负载均衡的?它的模块的代码具体是什么,功能是什么?
通过upstream定义后端服务器组,在通过虚拟主机的location匹配客户端请求,根据请求不同向不同的后端服务器组进行转发,使用的模块为upstream,调度算法有轮询、ip_hash,最少连接
###
16、你为什么选择HAProxy,说一下它和起它负载均衡软件的区别
同时支持四层、七层调度,并发能力相对nginx, lvs要高
17、你的Keeplived是调用脚本实现监测HAProxy的吗?脚本是如何监测HAProxy正常工作的?监测项是什么?脚本大概是怎么写的描述一下。
通过脚本监测,脚本主要监测虚拟服务的状态,虚拟服务故障后,由脚本停止keepalived实现VIP转移
18、你在项目的配置过程中两台HAProxy服务器之间的防火墙是如何配置的?
不开防火墙
或者防火墙要配置放行vrrp协议数据,为了正常传播心跳
19、Apache日志中有哪些信息?
客户端地址、访问时间、请求方法、请求的文件名、HTTP协议版本、状态码、响应数据大小、超链接地址、客户端浏览器
1、你这个项目经验里写了一个毕业设计项目是关于docker的,简单介绍一下你这个毕业设计吧。
利用脚本搭建了一个系统,实现对容器、镜像的一键式拉取、管理、删除,容器的创建启动删除,还有对网络资源模式的管理。
2、那你说一下docker的几个核心组件
镜像、容器、仓库
3、虚拟机技术和docker技术有什么区别了
虚拟机技术要模拟出这个一套系统,是由用户态和内核态组成了,包括软件和硬件。但是docker不需要内核态,直接调用主机的内核态,不需要模拟硬件,只占用物理机的一个接口。
4、看你这项目里还写了一个Mycat的集群,你介绍介绍
我们先做规划,前端搭建Apache服务器,后台搭建两个sql数据库,配置主从服务器,然后在主服务器上配置mycat读写分离。
5、你这个主从服务器具体怎么实现的
我们先手动同步两个服务器的数据库数据,然后通过对IO进程和sql进程的配置进行同步,他的实现远离是将我们对数据库的修改命令写入binlog日志然后通过对binlog日志的同步实现的。
6、那如果从服务器出现问题了应该怎么解决呢,比如你说通过日志同步的,那主服务器执行了一条删除命令,但是从服务器没同步过去
我们需要先考虑是不是由于主服务器访问量过大,因为主从复制是单线程操作,主库的数据量太大,超过了从库的同步能力。或者是由于硬件问题比如磁盘或者网络延迟过大。
7、sql除了你说的binlog日志还有哪些日志
错误日志、查询日志、慢查询日志、二进制日志、中继日志、事备日志、重做日志、回滚日志
8、sql数据库操作分为哪几个部分
DDL定义、DML操纵、DQL查询、DCL控制、TCL事物
9、什么是主键、什么是索引、什么是约束
PRIMARY+KEY约束唯⼀地标识表中的每⼀⾏。它必须包含UNIQUE值
UNIQUE约束确保列中的所有值都不同。这为列提供了唯⼀性,并有助于唯⼀地标识每一行的代码语法可以跟主键互换使用。
索引就是快速查找一个表的一个列或多个列的数据。
10、你简单介绍一下inode号的概念
Inode就是linux里面的索引节点,系统通过inode号识别文件名
11、软连接inode号和硬连接的inode号一样吗
硬连接相同,软连接不同
12、软连接和硬连接的区别是啥
我们用windos距离,软连接大概是创建一个快捷方式,硬连接就是复制一份文件,所以当软连接源文件删除后,软连接也失效,但硬连接还能继续访问。
13、软连接和硬连接都可以跨文件系统吗,为什么
软连接可以,硬连接不能
硬连接是不会建立inode的,他只是在文件原来的inode link count域再增加1而已,也因此硬链接是不可以跨越文件系统的。相反都是软连接会重新建立一个inode,当然inode的结构跟其他的不一样,他只是 一个指明源文件的字符串信息。一旦删除源文件,那么软连接将变得毫无意义。而硬链接删除的时候,系统调用会检查inode link count的数值,如果他大于等于1,那么inode不会被回收。因此文件的内容不会被删除。(没答上)
14、怎么查看linux的程序或者进程
Ps、ss、top都可以
15、用ps查到的进程都有哪几种状态
运行状态、睡眠状态、停止状态、退出状态、跟踪状态
16、如果需要对一个文件夹里的所有文件实现一段内容的替换,你怎么做
可以写一个循环,循环条件就是文件名,执行sed命令替换内容
17、sed替换内容的时候是对源文件进行替换吗
不会,默认在内存中,要对源文件进行修改加-i参数
18、对一个文件里面的序号进行累加
| awk ‘{print $1}’ | awk ‘{sum+=$1}END{print sum}’ |
19、怎么实现程序的开机自启动
通过systemctl设置enable
20、当你没有systemctl权限的时候呢
修改etc下的rc.local文件
21、做了主从复制以后,从服务器出了问题怎么解决,比如同步binlog日志时中间有一条删除同步不过来了
可以在主服务器上查看这个缺失的操作,从二进制日志中找出来 ,放到从库上手动执行;