雷傲普文化传播有限公司运维工程师面试题php
后续将整理出豪鹫亲身经历面试过的公司运维技术面的题目(非笔试题目,技术面运维经理的提问),并也附上答案。html
敬请期待。。。。。mysql
DNS使用的端口号和协议,简单描述一下DNS正向解析和反向解析的工做原理和做用还有应用场景?linux
答:DNS使用的端口号是53,封装协议udp。正向解析是指域名到IP地址的解析过程。反向解析是从IP地址到域名的解析过程,它的做用就是经过查询IP地址的PTR记录来获得该IP地址指向的域名。要成功获得域名就必须要有该IP地址的PTR记录。PTR记录是邮件交换记录的一种,邮件交换记录中有A记录和PTR记录,A记录解析名字到地址,而PTR记录解析地址到名字。反向解析主要应用到邮件服务器中来阻拦垃圾邮件,特别是在国外。多数垃圾邮件发送者使用动态分配或者没有注册域名的IP地址来发送垃圾邮件,以逃避追踪,使用了域名反向解析后,就能够大大下降垃圾邮件的数量。ios
2.编写IPTABLES使用内网某台机器的80端口能够在公网访问,假设公网IP为10.10.1.1 ,实现192.168.1.0/32段的NAT. nginx
答:请网友在评论区补充~_~web
3.举出三个以上的主流WEB服务器,并简述他们的特性和优缺点不限操做系统?面试
答:主流的web服务器有几款:apache、nginx、Microsoft IIS、tomcat、lighttpd、WebLogic、Jboss等,其中以apache,nginx和Microsoft IIS的市场占用率最大。sql
Apache的特色是简单、速度快、性能稳定,并可作代理服务器来使用。具体有如下特性:chrome
一、多计算机运行平台;
二、支持最新的http/1.1协议;
三、易配置(httpd.conf);
四、支持虚拟主机;
五、支持http认证;
六、可做为代理服务器;
七、提供web界面监控服务器状态
八、支持ssl数据传输;
九、支持fastcgi;
十、具备用户会话过程的跟踪能力;
优势:源代码开放能够运行在unix,windowns,linux平台上,可移植性、支持的模块多、稳定性很好、相对于其余web server,apache的bug要少一些,处理动态请求方面比较好;
缺点:性能,速度上不及其余轻量级的web服务器,可是也是重量级产品,所消耗的内存,cpu也比其余的要高。相对于nginx来讲,apache占用的系统资源要多一些,处理静态请求较nginx要差一些,并发数也较nginx少一些。负载能力较nginx差一些。
nginx具备如下特性:
一、处理静态文件,索引文件以及自动索引
二、无缓存的反向代理加速,简单的负载均衡和容错
三、必须使用FastCGI方式来执行PHP程序,快速响应请求
四、模块化结构
五、nginx专为性能优化而开发,支持epoll模型,能经受高负载的考验,官方代表能支持高达5w的并发链接数
六、nginx具备很高的稳定性,其余web服务器,当遇到访问的峰值,或者有人恶意发起慢速链接时,也颇有可能会致使服务器物理内存耗尽,频繁交换而失去响应,只能重启服务器。例如当前apache一旦上到200个进程以上,web响应速度就明显很是缓慢了,而nginx采起了分阶段资源分配技术,使得它的CPU与内存占用率很是低。nginx官方表示保持1w个没有活动的了解,nginx只占用2.5M内存,因此相似DOS这样的***对nginx来讲基本上是毫无用处的。
七、支持热部署。nginx启动特别容易,而且几乎能够作到7*24不间断运行,即便运行数个月也不须要从新启动,还可以在不间断服务的状况下,对软件版本进行升级或重载配置文件的信息。
优势:源代码开放发高性能的http和反向代理服务器,在高并发的状况下,nginx是apache不错的替代品,他可以支持高达50000个并发链接响应,内存,cpu等系统资源消耗也是很低的。
缺点:支持模块比较少,并发性比较好,较apache稳定性差一些,处理动态请求是软肋。
IIS具体有如下特性:IIS是一种Web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。它提供ISAPI(Intranet Server API)做为扩展Web服务器功能的编程接口;同时,它还提供一个Internet数据库链接器,能够实现对数据库的查询和更新。IIS提供了一个图形界面的管理工具,称为 Internet服务管理器,可用于监视配置和控制Internet服务。
优势:Microsoft IIS 配置很简单,自IIS 6.0版本以后,其在安全性,可靠性、可扩展性方面有了很大的提高。
缺点:不开放源代码,只能运行在windows系统上,bug通常较多等。
4,举出两个主流代理服务器,简述工做模式和优缺点?
答:后续补充。。。网友也能够在评论区补充~_~
5,举出两个负载均衡的软件,并简述工做模式和优缺点?
答:linux下的负载均衡软件有不少,这里简单介绍几个:lvs、nginx、HAProxy
6,IE,FF,chrome浏览器最大并发请求数是多少?
答:豪鹫先说明一下什么是浏览器的并发请求数:通俗地讲,就是当浏览网页的时候同时工做的数量。
若是同时只有2个并发链接的数量,那网页打开的时候只能依赖于这2条线程,前面若是有打开慢的内容,就会直接影响到后面的内容打开,可是若是同时又更多的并发链接数,这样就会大大的提升网页加载速度。固然,浏览器的并发链接数也并不是越大越好。
结合网上资料,IE,FF,chrome浏览器三者的最大并发请求数都是6个。
7,简单举例一下linux和windows系统今年都有哪些漏洞?
答:豪鹫收集了2015年针对linux系统的如下几个漏洞,仅供参考,关于更多linux和window的漏洞信息,欢迎各位补充
2015.1乌云网站公布了linux glibc幽灵漏洞:***者能够经过利用此漏洞远程获取操做系统的最高控制权限
2015.3乌云网站公布了linux kernel KVM本地权限提高漏洞:Linux kernel 3.18.5以前版本,在客户端OS缺少SYSENTER MSR初始化时,arch/x86/kvm/emulate.c的em_sysenter函数存在安全漏洞,经过触发使用16位代码段,以模拟SYSENTER指令,客户端OS用户利用此漏洞可获取OS权限或形成OS崩溃,致使拒绝服务。
2015.7乌云公布了linux kernel本地拒绝服务漏洞:***者可利用此漏洞执行拒绝服务***
8,mysql数据库备份种类有哪些,依据数据库的状态可分为哪些备份,备份工具备哪些,部署一个高可用mysql应用 环境,并说明他的高可用性?
答:mysql数据库备份种类:彻底备份、差别备份、增量备份、物理备份(文件备份)
依据mysql的状态可分为:冷备份、热备份、温备份
mysql备份工具:mysqldump、mysqlhotcopy 、kvm快照备份、tar工具有份、xtrabackup工具有份(只支持InnoDB存储引擎)等
豪鹫这里提供几个mysql的高可用方案,各有用途,仅供参考:
A.普通的主从复制————客户端经过master对数据库进行读/写操做,Slave端做为备机,可用来进行一些查询,备份等操做。
优势:部署简单,易于扩展,能提供必定的数据保护。
缺点:若是master主机硬件故障且没法恢复,则可能形成部分未传送到Slave端的数据丢失;若是master端须要进行某些维护操做,将slave临时做为master提供服务以后,又须要从新搭建主从环境,会对master形成必定的性能影响。
B.双主复制————两个 mysql server互相将对方做为本身的master,本身做为对方的Slave来进行复制,一端提供写服务,另外一端读服务或者仅仅做为备机不用提供任何服务,并且其还可以跟一个或者多个Slave专门提供读服务。
优势:最大的好处就是既能够避免主Master的写入操做不会受到Slave集群的复制所带来的影响,同时主Master须要切换的时候也基本上不会出现重搭Replication的状况。
缺点:这个架构也有一个弊端,那就是备用的Master有可能成为瓶颈,由于若是后面的Slave集群比较大的话,备用Master可能会由于过多的SlaveIO线程请求而成为瓶颈。
C.主从复制扩展:读写分离————由一个master复制到一个或者多个Slave的架构模式,客户端经过master对数据库进行写操做,经过Slave端进行读操做,并可进行备份,master出现问题后,能够后动将应用切换到Slave端。该方案主要用于读压力比较大的应用系统中。
优势:结构灵活,数据库端廉价扩展,可以解决不少中小型网站的数据库压力瓶颈问题。
缺点:须要程序来实现读写分离,增长了程序的复杂度,若是服务器架构调整或者有主机发生故障,还须要调整程序。
D.HearBeat+双主复制————hearbeat最核心包括的两个部分是心跳监测和资源接管。使用hearbeat+mysql主主同步来实现mysql数据库的 高可用,当master的主机或hearbeat宕机之后会自动切换到备用机上,当恢复之后能够自动切换回来,master继续提供服务。
优势:配置简单,能在必定的程度上避免单点故障。
缺点:若是master上的mysql挂掉,则没法检测到并进行切换,须要一些脚原本协助监控。默认切换到备用机后,不会自动启动mysql,须要手动或者脚本启动,不方便扩展,可能会出现脑裂的问题。
E.Hearbeat+DRBD+Mysql————本方案采用Hearbeat双机热备软件来保证数据库的高稳定性和连续性,数据的一致性有DRBD这个工具来保证。默认状况下只有一台mysql在工做,当主mysql服务器出现问题后,系统将自动切换到备机上继续提供服务,当主数据库修复完毕,又将服务切回继续由主mysql提供服务。
适用场景:适用于数据库访问量不太大,短时间内访问量增加不会太快,对数据库可用性要求很是高的场景。
优势:安全性高,稳定性高,可用性高,出现故障自动切换。
缺点:只有一台服务器提供服务,成本相对较高,不方便扩展,可能会出现数据库脑裂。
F.LVS+Keepalive+双主复制————lvs提供负载均衡,keepalive做为故障转移。服务器单点写入,读实现负载很横和故障切换。当网络、mysql服务、服务器、keepalive服务出现故障后,服务器能自动跳转到备用机,当主服务器服务启动起来后会自动切换回来。
适用场景:适用于对数据库可用性要求比较高,读压力比较大的场景(后端可跟一个或多个Slave服务器,让lvs实现读的负载均衡)。这个方案也可以很方便地进行单台数据库的管理维护以及切换工做,好比进行大表的表结构更改,数据库的升级等。
优势:高可用效率好,能够根据服务与系统的可用性多方面进行切换。能够将写vip和读vip分别进行设置,为读写分离作准备。扩展很方便。能够在后面添加多个从服务器,并作到读的负载均衡。
缺点:在启动或者恢复后若是要实现指定条件替换或者不替换须要经过其余方式实现,好比:临时更改mysql的端口等。安装配置比单写入稍微复杂,须要另一个vip。管理比单写入复杂。主切换后,从须要手工切换。主备切换须要1s左右的时间。
G.MMM+mysqlproxy+双主复制————MMM(mysql主主复制管理器)是一套灵活的脚本程序,用来对mysql replication进行监控和故障迁移?并能管理mysql Master-Master复制的配置 。附带的工具套件能够实现多个slaves的read负载均衡.两个mysql server服务器互为主从,MMM提供浮动IP的功能,若是当前的主服务器挂掉后,客户端的读写请求会经过漂移的虚拟IP自动转移到另外一台服务器上,从而自动实现服务器的故障转移,mysqlproxy实现了读写分离。
适用场景:这个方案是目前比较成熟的解决方案,适用于数据库访问量大,业务增加快的场景。适用于读/写比较高的web2.0应用中。
优势:安全性、稳定性高,可扩展性好,高可用好,当主服务器挂掉之后,另外一个主当即接管,其余的从服务器能自动切换,不用人工干预。
缺点:至少三个节点,对主机的数量有要求,对于实时性很高的场合可能须要作一些处理。
mysqlprox与mysql MMM集成的必要性:实现mysql数据库层的负载均衡;数据库节点实现HA动态切换;读写分离,下降主数据库负载
9,什么是裸设备,他的好处是什么?,mysql支持裸设备吗?
答:裸设备,也叫裸分区(原始分区),是一种没有通过格式化,不被Unix经过文件系统来读取的特殊字符设备。它由应用程序负责对它进行读写操做。不通过文件系统的缓冲。
辨别:在/dev 目录下,裸设备使用字符特殊文件。
好处:由于使用裸设备避免了再通过Unix操做系统这一层,数据直接从Disk到Oracle进行传输,因此使用裸设备对于读写频繁的数据库应用来讲,能够极大地提升数据库系统的性能。固然,这是以磁盘的 I/O 很是大,磁盘I/O已经称为系统瓶颈的状况下才成立。若是磁盘读写确实很是频繁,以致于磁盘读写成为系统瓶颈的状况成立,那么采用裸设备确实能够大大提升性能,最大甚至能够提升至40%,很是明显。
mysql支持裸设备。
10,若是给你一个100g的INNODB类型数据库,你会用什么备份方案来作备份。
答:豪鹫之前备份还原过一个82G左右的数据库,使用mysqldump命令导出,而后再使用mysql命令导进去,mysqldump命令导出整个数据库的数据大概须要20~30分钟,再经过mysql导入到新库,须要两天一晚上,效率确实过低了。
这里推荐给你们一个mysql的备份工具:Xtrabackup,它有两个主要的工具:xtrabackup、innobackupex。xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表。innobackupex是一个perl脚本封装,封装了xtrabackup。主要是为了方便的 同时备份InnoDB和MyISAM引擎的表,但在处理myisam时须要加一个读锁。
11,写一个简单的shell脚本,脚本运行时让CTRL+C没法中断的该shell脚本?
答:这里先作一个简单的介绍,在shell脚本中用trap命令捕获SIGINT信号就能够作到忽略系统传输的中断信号,好比,ctrl+c产生的中断信号。
系统给出的SIGINT信号数字为2或者直接写信号名称也能够
豪鹫这里给出一个简单的例子吧,脚本以下:
[root@haojiu ~]# cat vmstat.sh
#!/bin/bash
#script usinf for ignore system sigint.
#create by haojiu.
#date 2015-x-x
#在循环执行命令前面使用trap "" 2或者trap "" SIGINT,二者任选其一
#trap "" 2
trap "" SIGINT
vmstat 2 10
一般状况下,若是没有加入trap "" 2或者trap "" SIGINT这条命令时,直接执行vmstat 2 10,在脚本的执行过程当中,是能够经过按住CTRL+C来中断脚本的运行的,但若是加入trap命令以后,脚本在执行过程当中会忽略收到的信号SIGINT,而不作任何处理。
1三、具体说说cacti/nagios 的安装过程?cacti如何监控mysql?
答:豪鹫简单说下二者的安装过程吧,近两年还有比较热门的zabbix,这个我没用过,因此很差在这里吹。下面简单列出cacti和nagios的安装步骤吧;
cacti安装步骤:首先安装好lamp环境(建议都使用编译安装)和snmp服务,rrdtool工具安装,而后创建cacti库和登陆mysql帐号,并赋权;其次下载并解压cacti到web server的htdocs或html目录下,确保敲入http://IP:port/cacti能被访问到,进而在web上安装cacti,修改web页面上的snmp团体字,确保跟snmpd.conf的团体字一致,而后再手动执行php poller.php看看可否在rra目录下生成.rrd文件,默认只监控本机资源,将php.poller.php命令写入到crontab中,每5分钟执行一次,若是须要监控远程主机,须要在对方主机安装snmp服务,而且保证snmp的团体字与监控主机上的snmp团体字是一致的;最后,添加其余监控主机,添加模板,安装插件等一系列工做。
nagios安装步骤:首先一样安装好lamp环境(建议使用编译安装),而后下载并安装nagios和nagios-plugin,整合apache和naigos,并建立web登陆帐号验证,确保敲入http://IP:port/nagios能正常访问并登陆,远程主机安装nrpe或NClient++;最后添加配置远程主机信息,报警功能实现,添加所需的监控指标等工做。
cacti监控mysql:首先到cacti的论坛上下载cacti监控mysql的模板,而后导入到cacti中,而后添加主机,选择应用模板,最后等待5分钟,看看是否监控正常。
1四、sed和awk命令的区别?
答:
A.sed是行编辑器,awk是列编辑器;
B.awk适合对文件的截取整理,sed适合对文件的编辑;
C.若是文件内容是具备固定格式的,即由分隔符分为多个(列)域的,比较适合使用awk;