运维面试题含答案文档格式.docx
- 文档编号:16904509
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:7
- 大小:21.19KB
运维面试题含答案文档格式.docx
《运维面试题含答案文档格式.docx》由会员分享,可在线阅读,更多相关《运维面试题含答案文档格式.docx(7页珍藏版)》请在冰豆网上搜索。
3>
能够在从服务器上执行备份,以避免备份期间影响主服务器的服务。
4.Mysql复制的基本原理过程
(1)Slave上面的IO线程连接上Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容;
(2)Master接收到来自Slave的IO线程的请求后,经过负责复制的IO线程根据请求信息读取指定日志指定位置之后的日志信息,返回给Slave端的IO线程。
返回信息中除了日志所包含的信息之外,还包括本次返回的信息在Master端binarylog文件的名称以及在Binarylog中的位置;
(3)Slave的IO线程收到信息后,将接收到的日志内容依次写入到Slave端的RelayLog文件(mysql-relay-lin.xxxxx)的最末端,并将读取到的Master端的bin-log的文件名和位置记录到master-info文件中,以便在下一次读取的时候能够清楚的告诉master“我需要从某个bin-log的哪个位置开始往后的日志内容,请发给我”
(4)Slave的SQL线程检测到RelayLog中新增加了内容后,会马上解析该Log文件中的内容成为在Master端真实执行时候的那些可执行的查询或操作语句,并在自身执行那些查询或操作语句,这样,实际上就是在master端和Slave端执行了同样的查询或操作语句,因此两端的数据是完全一样的。
5.为MYSQL添加一个用户?
mysql>
grantselect,insert,update,deleteonbook.*totest2@localhostidentifiedby“abc”;
#增加test2用户,密码为abc。
并只能在localhost这台主机上登录,而且只能访问book这个库中的表,具有查询,插入,更新,删除权限;
语法:
GRANT<
权限>
ON<
库>
.<
表>
TO‘用户’@’主机名’identifiedby“密码”;
6.写一个脚本将数据库备份并打包至远程服务器192.168.1.1/backup目录下。
mount192.168.1.1:
/backup/mnt
cd/mnt
/usr/local/mysql/bin/mysqldump-hlocalhost-uroottest>
test.sql
tarczftest.sql.tar.gztest.sql
rm-ftest.sql
7.写一个脚本进行nginx日志统计,得到访问ip最多的前10个(nginx日志路径/home/logs/nginx/default/access.log)
awk‘{a[$1]++}END{for(jina)printa[j],j}’/home/logs/nginx/default/access.log|sort-nr|head-10
8.简要描述Linux的启动过程?
BIOS启动引导(从mbr中装载启动管理器grub)—-GRUB启动引导(装载kernel和initrd到内存)—–内核启动参数-sysinit初始化..
9.简要叙述下列端口所运行的服务21、22、23、25、110、143、873、3306
对应的服务是ftpsshtelnetsnmppop3IMAPrsync
10.Linux系统中病毒怎么解决
找到病毒文件然后删除;
中毒之后一般机器cpu、内存使用率会比较高,机器向外发包等异常情况,排查方法:
linux服务器流量剧增,用iftop查看有连接外网的情况。
netstat连接的外网ip和端口。
#top命令找到cpu使用率高的进程,一般病毒文件命名都比较乱#能够用ps
aux
查看是否有不明进程,找出病毒文件的位置#rm
-f
命令删除病毒文件#检查计划任务、开机启动项和病毒文件目录有无其它可疑文件等
chkconfig
--list
|
grep
3:
on
服务器启动级别是3的,检查一下了开机启动项,没有特别明显的服务。
然后检查了一下开机启动的一个文件,more
/etc/rc.local
11.发现一个病毒文件你删了她又自动创立怎么解决
ps
axu一个个排查,方法是查看可疑的用户和系统相似而又不是的进程找出进程可疑。
杀掉所有与病毒相关的进程,然后删掉病毒这个可执行文件,最后删除病毒创立的文件
12.请写出5个你常见的系统或网络维护工具的名称
rhel
centos
ubuntu
iotop用于检查
I/O
的使用情况
htop实质上是
top
的一个增强版本。
它更容易对进程排序。
ping
traceroute
13.你使用过监控软件吗?
说说其特点
使用nagios对服务器进行监控,其特点侧重于对检测项的状态监控,主要经过nrpe实现对远程主机的监控,但也能够经过snmp对设备(如路由器、交换机)进行监控,可实时实现手机短信、电子邮件、MSN、飞信报警。
使用cacti
对服务器进行监控,其特点侧重性能和流量监控并经过图表显示,主要经过snmp协议收集监测项数据,可实时实现手机短信、电子邮件、
使用zabbix对服务器进行监控,zabbix是完全开源的工具,整合了cacti和nagios等特性。
zabbix能够对主机的性能监控、网络设备性能监控、数据库、FTP
等通用协议监控、多种告警方式、详细的报表图表绘制
支持自动发现网络设备和服务器(能够经过配置自动发现服务器规则来实现)
支持分布式,能集中展示、管理分布式的监控点,扩展性强
能够自己开发完善各类监控(根据相关接口编写程序实现),编写插件容易,能够自定义监控项,报警级别的设置。
数据收集,支持
snmp(包括
trapping
and
polling
),IPMI,JMX,SSH,TELNET;
14.web服务器的调优要点
以nginx为例,个人总结有如下几个要点:
1)尽可能的少用http,因为http是有开销的;
2)尽可能的使用CDN;
3)添加Expire/Cache-Control头,这个头是缓存用的,能够缓存图片和flash那样不轻易更改的文件,减少访问时间;
4)启动gzip压缩,这个没啥好说的了;
5)尽可能少的重定向,能rewrite就不要return,我也知道return比rewrite好写,可是重定向是需要时间的,增加一次重定向就会多一次web需求;
6)如果能够,把ajax也做缓存;
7)减少dns查询,很多网页会有外站的广告,这些广告也是会启动dns查询的,因此如果不缺钱,减少这种广告;
8)调好服务器里的TCP协议栈,这个无论是web服务器还是应用服务器都是必须的;
15.mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
mysql的innodb如何定位锁问题:
在使用
show
engine
innodb
status检查引擎状态时,发现了死锁问题
在5.5中,information_schema
库中增加了三个关于锁的表(MEMORY引擎):
innodb_trx
##
当前运行的所有事务
innodb_locks
当前出现的锁
innodb_lock_waits
锁等待的对应关系
mysql如何减少主从复制延迟:
如果延迟比较大,就先确认以下几个因素:
1.
从库硬件比主库差,导致复制延迟
2.
主从复制单线程,如果主库写并发太大,来不及传送到从库,就会导致延迟。
更高版本的mysql能够支持多线程复制
3.
慢SQL语句过多
4.
网络延迟5.
master负载
主库读写压力大,导致复制延迟,架构的前端要加buffer及缓存层6.
slave负载
一般的做法是,使用多台slave来分摊读请求,再从这些slave中取一台专用的服务器,只作为备份用,不进行其它任何操作.
另外,
2个能够减少延迟的参数:
–slave-net-timeout=seconds
单位为秒
默认设置为
3600秒
#参数含义:
当slave从主数据库读取log数据失败后,等待多久重新建立连接并获取数据
–master-connect-retry=seconds
60秒
当重新建立主从连接时,如果连接建立失败,间隔多久后重试。
一般配置以上2个参数能够减少网络问题导致的主从数据同步延迟
16.MySQL数据库主从同步延迟解决方案
最简单的减少slave同步延时的方案就是在架构上做优化,尽量让主库的DDL快速执行。
还有就是主库是写,对数据安全性较高,比如sync_binlog=1,innodb_flush_log_at_trx_commit
=
1
之类的设置,而slave则不需要这么高的数据安全,完全能够讲sync_binlog设置为0或者关闭binlog,innodb_flushlog也能够设置为0来提高sql的执行效率。
另外就是使用比主库更好的硬件设备作为slave。
17.osi七层模型,tcp三次握手过程,tcp连接断开过程,什么情况下tcp进入time_wait?
其它问题答案略
什么情况下tcp进入time_wait?
当关闭一个
socket
连接时,主动关闭一端的
将进入TIME_WAIT状态,而被动关闭一方则转入CLOSED状态。
具体过程如下:
1、
客户端发送FIN报文段,进入FIN_WAIT_1状态。
2、
服务器端收到FIN报文段,发送ACK表示确认,进入CLOSE_WAIT状态。
3、
客户端收到FIN的确认报文段,进入FIN_WAIT_2状态。
4、
服务器端发送FIN报文端,进入LAST_ACK状态。
5、
客户端收到FIN报文端,发送FIN的ACK,同时进入TIME_WAIT状态,启动TIME_WAIT定时器,超时时间设为2MSL。
6、
服务器端收到FIN的ACK,进入CLOSED状态。
7、
客户端在2MSL时间内没收到对端的任何响应,TIME_WAIT超时,进入CLOSED状态。
18.请列出你了解的web服务器负载架构。
Nginx
haproxy
keepalived
lvs
19.请写出你知道或使用过的nginx扩展模块(注意标注知道和使用)
[我的答案]随便说几个,这玩意到时候结合工作过的情况说说吧:
Nginx负载均衡模块:
nginx-upstream-fair
非阻塞访问redis模块:
redis2-nginx-module
分布式图片实时动态压缩:
ngx-fastdfs
20.请根据你的理解,简述高可用服务体系的相关组件,并列举该组件的具体实现服务名字
统一配置:
zookeeper、Consul、Etcd+Confd(这俩比较常见于动态管理nginx)
前端展示:
nginx
消息队列:
activemq、kafka
读写分离中间件:
atlas
日志分析:
elk
21.请根据你的理解,简述数据迁移工具和数据存储服务有哪些以及相关特点
由于我公司主要都放在了阿里云,数据库用过的就这么几个:
mysql、redis和elasticsearch。
对于Storm和Hadoop这俩我还是初学者。
mysql:
关系型数据库
elasticsearch:
全文检索框架,这玩意逐渐向一个数据库靠拢了
redis:
键值储存数据库
mysql的数据迁移最常见的就是mysqldump,可是要注意使用不当会锁表,
redis的数据迁移最稳妥的方法就是主从同步:
在slave端启动redis,然后执行slaveofmaster机器IP地址6379,然后使用info的时候查看master_link_status如果是up那就是OK了,再执行slaveofnoone,提示OK就是OK了;
Elasticsearch的数据迁移工具就是Elasticsearch-Exporter,不过我对它仅仅只是了解,用的并不多
22.请简述你了解的自动化配置管理工具特点和运行原理
我用的最多的就是ansible和saltstack,这俩都是python的,对于我这个半路出家的更亲切。
ansible基于SSH协议传输数据,不用装agent,配置比较简单,对windows支持惨不忍睹;
saltstack使用消息队列zeroMQ传输数据,如果1000台以上的话它速度比ansible还要快,要安装agent,对windows支持同样惨不忍睹;
23.你们公司的网络出口带宽是多少?
每天网站的PV、UV是多少?
24.请简单阐述运维工程师的职责。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运维面 试题 答案