运维全靠百度,面试一问不知,笔试填空全留空,还是要多刷题
总结一下最近碰到的面试问题和笔试问题
面试问题
线上有遇到什么故障strong>
带宽资源耗尽 阿里云监控平台->iftop->ss->ps>程序->查看日志
磁盘容量不足
内存容量不足
进行rsync+sersync数据同步导致内存不足
ip冲突,导致设备连接不上服务器
selinux临时关闭,重启后,导致nginx起不来
ssl证书失效,导致小程序和app应用资源请求失败
nginx算法策略
轮询(默认)
加权轮询(轮询+weight)
ip_hash
每一个请求的访问IP,都会映射成一个hash,再通过hash算法(hash值%node_count),分配到不同的后端服务器,访问ip相同的请求会固定访问同一个后端服务器,这样可以做到会话保持,解决session同步问题。
least_conn(最少连接)
使用最少连接的负载平衡,nginx将尝试不会使繁忙的应用程序服务器超载请求过多,而是将新请求分发给不太繁忙的服务器。
nignx常用模块
upstream
rewrite
location
proxy_pass
数据库类
MySQL
mysql主从同步的原理
在master机器上,主从同步事件会被写到特殊的log文件中(binary-log);在slave机器上,slave读取主从同步事件,并根据读取的事件变化,在slave库上做相应的更改。
mysql主从的搭建大概过程
1.master启用binlog
2.master创建一个slave同步权限账
3.slave配置主从复制
4.启动主从同步
mysql主备高可用集群
双master+keepalive+slave只读
mysql主从延迟问题
如果延迟比较大,就先确认以下几个因素:
1.硬件问题:从库硬件比主库差,导致复制延迟
2.主从复制单线程,如果主库写并发太大,来不及传送到从库就会导致延迟。更高版本的mysql可以支持多线程复制
3.慢SQL语句过多
4. 络问题: 络延迟
MySQL数据库主从同步延迟解决方案
1.读写分离,主库的DDL快速执行,从库只读
2.还有就是主库是写,对数据安全性较高,比如sync_binlog=1,innodb_flush_log_at_trx_commit
= 1 之类的设置,而slave则不需要这么高的数据安全,完全可以讲sync_binlog设置为0或者关闭binlog
innodb_flushlog也可以设置为0来提高sql的执行效率。另外就是使用比主库更好的硬件设备作为slave
redis持久化和集群问题
redis持久化: rdb和aof
rdb:在指定的时间间隔内将内存中的数据集快照写入磁盘,数据量大时恢复比较快
aof:redis每次接收到一条写命令,就会写入日志文件中,aof数据恢复比较完整
生产环境可以同时开rdb和aof,然后根据实际情况,选择一个恢复数据。
域名解析流程
迭代查询
我们以中科三方的官 http://www.sfn.cn为例进行讲解,当我们在地址栏输入该域名之后,会发生以下这些步骤。
第一步:检查浏览器缓存中是否缓存过该域名对应的IP地址
如果用户之前浏览过该 站,浏览器会自动缓存该域名对应的IP地址,当用户再次访问时,如果缓存的时间尚未到期,浏览器会从缓存中查找对应的IP地址,整个域名解析过程结束。
如果没有找到对应IP,或者缓存时间已经到期,那么就会进行下一步骤。
第二步:如果在浏览器缓存中没有找到IP,那么将继续查找本机系统是否缓存过IP
除浏览器外,系统自身也具备域名解析的基本能力。如果在浏览器中没有查找到对应IP,就会继续查找本机系统是否缓存过IP。在Windows系统中,可以通过设置hosts文件来将域名手动绑定到某IP上,hosts文件位置在C:WindowsSystem32driversetchosts。
第三步:向本地域名解析服务系统发起域名解析的请求
如果在本机中无法获取对应的IP,那么系统就只能请求本地域名解析服务系统进行解析,本地域名系统LDNS(local DNS: 本地DNS服务器)一般都是本地区的域名服务器,比如你连接的校园 ,那么域名解析系统就在你的校园机房里。LDNS一般都缓存了大部分的域名解析的结果,当然LDNS也存在缓存有效时间,大部分的解析工作到这里就差不多已经结束了,LDNS负责了大部分的解析工作。
第四步:向根域名解析服务器发起域名解析请求
如果在LDNS中无法完成解析,那么LDNS就会向根域名服务器发起解析请求。
第五步:根域名服务器返回gTLD域名解析服务器地址
本地DNS域名解析向根域名服务器发起解析请求后,根域名解析服务器返回的是所查域名的通用顶级域(gTLD)地址。
第六步:本地域名解析服务器向gTLD发起解析请求。
第七步:gTLD服务器接收本地域名服务器的请求后,找到被解析域名对应的Name Sever域名服务器,一般情况下也就是该域名注册时对应的解析服务器,此时注册域名服务商的解析服务器就会承担起域名解析的任务。
第八步:Name Server服务器查找域名对应的IP地址,将IP地址和TTL值返回给本地域名服务器。
第九步:本地域名服务器缓存解析后的结果,缓存时间由TTL时间来控制。
第十步:解析结果将直接返回给用户,用户系统将缓存该IP地址,缓存时间由TTL来控制,至此,解析过程结束。
linux系统
请描述一个linux系统的开机流程
整个过程基本可以分为POST–>BIOS–>MBR(GRUB)–>Kernel–>Init–>Runlevel。下面会详细说明每个过程的作用。
让linux系统中的某个服务开机自启的方法有哪些
1. 在/etc/rc.d/rc.local中写入运行程序的命令
2. 在/usr/lib/systemd/system/**.service 添加service服务,然后使用systemctl enable **
笔试问题
linux类
查看目录大小并按从大到小排序
获取nginx access.log中的访问ip,进行统计分类,显示统计的数量和对应的ip,按数量多到少排序,仅显示top10
只查询/etc/passwd文件的第5行到第10行(请用三种办法实现)
查询/etc/passwd文件的内容包含root的行(至少三种方法)
打印/etc/passwd的行 以及内容(至少两种)
使用sed 把文件test.txt第20行的test替换为testdb
从etho 卡中捕获ip为192.168.1.2,tcp协议,端口为80的数据包
iptables和firewall分别开放80端口
以下centos系统配置文件文件的作用
绝对路径打包yum缓存文件目录 /var/cache/yum/ 以便给其它服务器使用,请写出在本机打包命令及在其它服务器解包命令
将 /var/log/目录下所有7天前并且以log结尾的文件,文件的大小超过1M,移动到/tmp/log/文件内,深度为1即可
Redmat中,dns配置文件与内容
centos系统中,请用linux命令取出ens192中ip地址,至少三种方法(grep,awk,sed)
把nignx.conf.default中的带#行和空行都去掉,剩下的内容保存到nginx.conf
添加一个用户mysql,禁止用户登录,不创建用户目录
添加一个UID为888的虚拟用户mysql
说明软件链接的区别
如何创建
含义
特点
写一个ansible拷贝文件的命令
如何监控PHP的状态
请简要说明一下WAIT_TIME是如何产生的,出现大量的WAIT_TIME如何解决strong>
产生:
然后执行/sbin/sysctl -p让参数生效.
数据库类
mysql 如何导出数据库test-db中test-table表
文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树首页概览8839 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!