应用运维面试核心

面试题

Nginx模块

你以前用过哪些Nginx模块? upstream 是Nginx负载均衡模块

image geoip stream 这三个模块一定要记住


​ lvs四层负载均衡(面试题)

​ Net Address Translator
​ nat模式
​ 后端服务器支持数量10-20台
​ 使用最少两个网段
​ 可以说是3层负载均衡
​ 流量回流时会路过负载均衡器

​ direct route
dr模式
​ 后端服务器支持数量100+台
​ 使用一个网段
​ 可以说是2层负载均衡
​ 流量回流时不会路过负载均衡器

​ tunnel隧道模式
​ 后端服务器支持数量100左右
​ 异地负载均衡 realserver必须使用公网Ip,还得需要服务器支持ip隧道协议

full-nat

版本号

hostnamectl set-hostname http1 修改linux主机名,可永久生效(centos7可用)

Nginx 1.12 用稳定版

apache

MySQL 版本 5.6 5.5 与 5.7 版本差别也很大

zabbix 3.2 版本

/etc/fstab里面只能执行脚本

/etc/rc.local里面能执行命令行的语句

clock -w 将时间修改保存到 BIOS
rpm -qc [服务名] 查看服务的日志地址

服务平稳运行怎么让它出毛病….负载大,并发量大,内存就高了,或者硬盘问题,dd if 命令把硬盘填满

  1. 集群的分类

  2. 四七层负载均衡的区别

    lvs是转发客户的请求给真实服务器,而Nginx七层是发送一个新的请求给真实服务器,区别在于如果真实服务器宕机了,Nginx会直接把请求发给没有宕机的服务器,而lvs不会。
    lvs是内核上的功能,Nginx是应用上的功能,理论是lvs更灵活速度更快,但很容易坏。
    
  3. (keepalived的工作原理)
    将N台提供相同功能的服务器组成一个服务器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该服务器所在局域网内其他机器的默认路由为该vip),master会发组播(当心跳),当backup收不到vrrp(心跳)包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master(优先级是可以自定义的)

工作拍错步骤:

如果没有zabbix监控一般我会先检查常出事故的单故障节点,如果找不到问题所在会依次排查

网络—>硬件—>操作系统—>进程—>端口—>服务本身

svn、Git的区别:svn是一种集中式的代码管理,,,,,,,,,,,

RabbitMQ :消息队列服务器,大型网站架构特性(敏捷性:有了新的服务,能够快速把服务器部署上去,让服务器上架);电商等秒杀活动,,它还可以做集群的

服务器用的redis、memcache到底部署哪个,是开发架构师说了算,git、svn(小乌龟)也是同样的道理;

ansible:puppet 12年特别火,saltstack 同类的产品要知道几个

kickstart:配置pxe所需要的工具,cobbler就没啥必要去研究它了

马云:去IOC运动

单机架构:

初创的公司先招

开发架构师,开发(php)因为便宜比java开发便宜

产品离上线接近一个月,开始招运维工程师

(面试的人很可能是开发架构师,不是清楚的了解运维,一定要抓住这种机会)

(虽然招的是运维人员,但是实际上干的是架构师的活)

(服务器的选型等等一两天搞不定,要一周才行)

(你能力越强干的活可能越多,在公司里要少出错)

(/root/www/网站根目录在这里,太正常了,开发遗留的原因)

lnmp 架构:

httpd (真实WEB)服务器最好2台

需要Nginx+php 一台

mysql 一台

​ vip (虚拟IP浮动资源)在这两个机器上做出第三IP来

​ A A 双主 这个就是高可用做出来的第三个ip叫做VIP

数据备份 一台

什么时候该上高可用,什么时候该上负载均衡,对现实情况的把握很关键

mycat 的主要功能是读写分离,它有高可用的功能,但这只是它的副业

Nginx 的 静态页面 并发理论值为5万,实际工作中8K到10K

  1. pv 并发 最多500QPS
  2. 架构
  3. 你们公司网站平时的峰值并发是多少 50左右吧CDN加速/异地缓存搞定的,如果还是不行,短期内可以上云服务,之后搭建分布式集群
  4. 从运维的角度如何看待Nginx的优化:其实就是架构上的优化,有没有做负载均衡,高可用等。
  5. 画一下你们上家公司的网站架构
  6. 如何升级架构
    1. 应用分离
      1. 加缓存 消息队列服务器(活动秒杀时最常用)

lvm logical volume manager 逻辑卷管理器

lvs linux virtualization server 4层负载均衡 是tcp协议

Nginx 7层负载均衡是http协议

Nginx 做负载均衡:方便、简单、灵活。

原则:驱离单故障节点


日志切割分析

  • 常用字段

    1 远程客户端真实IP

    4 服务器时间

    7 记录请求的URL和HTTP协议

    9 200、403等请求状态

    10 发送给客户端的字节数

  1. 统计2017年9月5日 一天内访问最多的10个IP(ip top10)

    grep '05/Sep/2017' cd.mobiletrain.org.log | awk '{ ips[$1]++ } END{for(i in ips){print i,ips[i]} } '| sort -k2 -rn | head -n10

  2. 统计2017年9月5日 每个URL访问内容总大小($body_bytes_sent)

    grep '05/Sep/2017' sz.mobiletrain.org.log | awk '{ urls[$7]++; size[$7]+=$10} END{for(i in urls){print urls[i],size[i],i}}'| sort -k1 -rn | head -n10

  3. 统计2017年9月5日 IP访问状态码为404及出现次数($status)

    grep '05/Sep/2017' sz.mobiletrain.org.log | awk '{if($9="404"){ip_code[$1" "$9]++}} END{for(i in ip_code){print i,ip_code[i]}}'

  4. 统计前一分钟的PV量

    date=$(date -d '-1 minute' +%Y:%H:%M);awk -v date=$date '$0 ~ date {i++} END{print i}' /var/log/nginx/access.log


apached的工作模式?

介绍下特点,说明什么情况下采取不同的工作模式?

  • apache 3种工作模式

    prefork worker event

    1. prefork 是一种进程,进程去请求处理,容易消耗内存但是稳定。某个进程出现问题不会影响其他请求,要求稳定时候使用
    2. worker使用多个子进程,每个子进程有多个线程,使用线程去处理请求,消耗内存小,稳定不好,在访问量多的时候使用
    3. evnent 为了解决keep--alive 保持长连接工作模式,不支持用在https

DNS采取了TCP和UDP协议,什么使用采取TCP

  • 什么时候用UDP? 为什么要这么设计?

    DNS有2种情况,一种是区域传输,一种域名解析

    1. 区域传输时,

      一个区主DNS从自己本机数据文件中读取该区DNS信息,而辅助服务器则从主DNS服务器中读取该DNS数据信息,传输协议TCP

    2. 域名解析时,

      首选通信协议是UDP,使用UDP传输,不经过三次握手,这样DNS服务器负载更低,响应更快
      但是当域名解析反馈长度报文长度超过512字节时
      则不能使用UDP协议进行解析,必须使用TCP

NFS 是什么技术?遇到了什么问题

  • 用NFS做存储访问比较多时候会很卡,
    提升交换机上连带宽,提升千兆或者万兆

VMware里有几种网络模式:

有两种模式,一种接口,NAT和hostonly(个人主机模式),桥接接口。

nginx 和apche的区别

为什么用Nginx,不用apache

Nginx工作模型,和apache的工作模型

eppoll模型,select模型

你可能感兴趣的:(应用运维面试核心)