2024 Linux 运维面试题分享-2

1、shell编程常用哪些脚本
  自动备份,lnmp一键安装,for循环,case语句,if判断,数据库自动备份脚本,日常日志切割,自动化安装lnmp,安装nginx,redis,tomcat,自动化一键安装,远程部署脚本,自动化发布脚本,批量处理,批量建站,故障探测脚本(Myql 主从异常、主从延迟探测)。


2、自动化部署,自动化运维熟悉哪些?
  自动化运维工具 熟悉jenkins 、gitlab、salt 、ansible

3、简单列出如何做容灾与恢复,保证数据安全
  容灾:我们在异地也部署一套模拟真实环境,数据库每天进行全量备份,推送异地服务器上,以便于恢复使用。数据安全可以从三个层面入手:操作系统;应用系统;数据库;比较常用的是:应用系统和数据库层面的安全保障措施。
  操作系统的设置:防火墙使用。
  应用系统层次:比如密码设置不能使用明文、登录权限分配。
  数据库层面:权限控制。


4、mysql sleep线程过多如何解决
1).什么是sleep线程?
 sleep线程长时间存在可保持客户端与服务端的连接状态
 导致sleep过多的原因:
 使用太多持久连接(高并发系统中 不适合使用持久连接)
 程序中 没有及时关闭MySQL连接
 数据库优化不完善 导致执行sql语句过慢
2).解决方法:
  wait_timeout 和 interactive_timeout 的参数应该调整小一点。
 1).wait_timeout: 服务器关闭非交互连接之前等待活动的秒数。参数默认值:28800秒(8小时)
 2).interactive_timeout: 服务器关闭交互式连接前等待活动的秒数。参数默认值:28800秒(8小时)

想当时就生效利用直接在数据库里设置:
set global wait_timeout = 120 #临时全局生效
set wait_timeout = 120 #临时生效
永久生效:vim /etc/my.cnf 配置文件里进行配置
 【mysqld】
interactive_timeout = 120 #设置服务器关闭交互式连接前等待活动的秒数.系统默认是8小时
wait_timeout = 120 #设置服务器关闭非交互连接之前等待活动的秒数.系统默认是8小时
  在系统运行一段时间后,可以通过show processlist命令查看当前系统的连接状态,如果发现有大量的sleep状态的连接进程,则说明 wait_timeout 设置的过大,可以进行适当的调整小些。


5、写shell脚本防范ddos攻击的思路
  日志获取异常ip 然后使用防火墙拉入黑名单,也能用 nginx 限制异常 ip 的并发连接数,防止 ddos 攻击。


6、你在工作中都遇到过哪些故障?怎么解决的?日常工作中处理频率最多的是哪方面问题?怎么高效解决的?
网站访问慢排查故障:
  1).首先要确定是用户端还是服务端的问题。当接到用户反馈访问慢,那边自己立即访问网站看看,如果自己这边访问快,基本断定是用户端问题,就需要耐心跟客户解释,协助客户解决问题。
  2).如果自己访问也慢,那么可以利用浏览器的调试功能,看看加载那一项数据消耗时间过多,是图片加载慢,还是某些数据加载慢。排查静态资源问题还是动态某些数据加载慢问题。
  3).针对服务器负载情况。查看服务器硬件(网络、CPU、内存)的消耗情况。如果是购买的云主机,比如阿里云,可以登录阿里云平台提供各方面的监控,比如 CPU、内存、带宽的使用情况。 有无异常进程,有无攻击等。
  4).如果发现硬件资源消耗都不高,那么就需要通过查日志,比如看看 MySQL 慢查询的日志,看看是不是某条 sql语句查询慢,导致网站访问慢。
怎么去解决:
  1).如果是出口带宽问题,那么就申请加大出口带宽。
  2).如果慢查询比较多,那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
  3).如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等等。然后也可以搭建MySQL 主从和读写分离,一台 MySQL 服务器负责写,其他几台从数据库负责读。
  4).申请购买 CDN 服务,加载用户的访问。
  5).如果访问还比较慢,那就需要从整体架构上进行优化。做到专角色专用,多台服务器提供同一个服务。


7、你们数据库的数据量多大,平时怎么备份的
  现在500G 还是逻辑备份 准备使用 xbk备份,节约备份时间。


8、日志分析怎么做的,都关注哪些参数
  ELK 搜集:nginx,tomcat,redis,docker 等日志,统计并关注 web 服务的 PV,UV。


9、MySQL你都负责维护哪些内容
  1).权限管理
  2).mysql慢查询日常抓取协助开发分析
  3).mysql优化


10、mysql用的哪个版本,nginx哪个版本
  mysql 5.7.29, nginx 1.16.1


11、mysql主从原理是啥
  mysql主从同步就是异步复制过程,主库开启dump线程,从库开启i/0线程和sql线程
主库,增、删、改 生成二进制日志
  从库i/0线程去请求主库binlog日志,并把主库binLog日志复制到从库,然后写到中继日志里面,SQL线程会读取relay log文件中的日志,进行sql语句回放操作,来实现主从的操作一致,而最终数据一致。


12、DNS 查询原理是什么?
  ● 递归查询:客户端请求查询给首选DNS服务器,首选DNS服务器与其他DNS服务器交流,查询到结果返回
  ● 迭代查询:客户端请求查询给首选DNS服务器,首选DNS服务器再告知其他DNS服务器IP,客户端再次请求,迭代到目标DNS服务器查询结果返回


13、es的优化
  现代服务器上,磁盘往往是系统的最大瓶颈。 并且ES本身是磁盘使用密集型的服务,所以在磁盘能力提升后,集群整体性能会大幅度提高。条件允许,强烈建议SSD,SSD相对机械磁盘具有超高的读写速度和稳定性。采用RAID 0 数据条带化方式,可以提升写入速度。配置ES在多块磁盘同时进行读写。


14、nginx优化怎么做的
使用epoll事件驱动模型,效率会提高
提高进程数、网络连接数,增加cpu工作核数
启用gzip压缩传输
为静态文件启用缓存
timeouts设置,长连接设置
防盗链设置,设置非法域名不能访问
减小请求头部buffer大小,限制非法脚本的执行
防止ddos攻击
禁止恶意域名解析
隐藏版本信息


15、用ansible playbook编写过什么哪些
  使用playbook部署nginx,批量部署zabbix监控的客户端,批量执行LNMP一键部署化脚本。


16、用docker部署过哪些项目
  部署我们公司java项目,把单独服务封装成容器 使用 docker-compose 统一管理


17、docker的网络模式有哪些?
  host模式,只与主机间访问,container模式 就是容器模式,和其他容器共享同一张网卡,none模式,可以自定义网络配置,bridge模式,就是普遍应用的桥接模式


18、docker跟虚拟机有什么区别
  虚拟机是: 在物理机模拟整台机器包含硬件,每台虚拟机都拥有自己独立的操作系统,虚拟机一旦开启,预分配的资源全部占用
  docker是:容器,和我们宿主机共享硬件和操作系统实现资源动态分配,容器包含所有的应用服务都与其他容器共享内核,减少资源消耗。


19、传统的业务上线流程是怎样的?
  1).使用shell脚本自动化发布到测试环境,测试人员测试没问题
  2).使用shell脚本自动发布推送正式环境
  现在代码上线:gitlab+Jenkins+ansible,CI/CD 持续集成/持续部署,快速自动化上线,提高交付速度。


20、nginx与apache比有什么优点
nginx适合处理静态请求,动态请求很弱
nginx轻量级,占用资源少
nginx处理请求异步非阻塞,apache阻塞型
nginx并发很强 apache 弱点
nginx做动静分离,apache不行

  • 11
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值