运维面试题(含答案)教学提纲

2022-07-13 03:55:25   文档大全网     [ 字体: ] [ 阅读: ]

#文档大全网# 导语】以下是®文档大全网的小编为您整理的《运维面试题(含答案)教学提纲》,欢迎阅读!
提纲,试题,答案,教学
此文档来源于网络,如有侵权请联系网站删除

运维工程面试

姓名:

答题时间:



1. 新安装MYSQL后怎样提升MYSQL的安全级别?

A.修改mysql默认端口

B.linux下可以通过iptables来限制访问mysql端口的IP地址

C.对所有用户设置较复杂密码并严格指定对应账号的访问IP(可在mysql库中user表中指定用户的访问可访问IP地址)

D.root特权账号的处理(建议给root账号设置强密码,并指定只允许本地登录) E.开启二进制查询日志和慢查询日志

F.mysql安装目录及数据存储目录权限控制:mysql安装目录读取权限,mysql日志和数据所在目录读取和写入权限

G.删除无用mysql账号和删除无用的数据库(安装好的mysql默认会有个test库,可将其删除)

2. MYSQL的主从原理,怎么配置文件?

整体上来说,复制有3个步骤:

A.master将改变记录到二进制日志(binary log)(这些记录叫做二进制日志事件,binary log events);

B.slavemasterbinary log events拷贝到它的中继日志(relay log) C.slave重做中继日志中的事件,将改变反映它自己的数据。

3. mysql主从复制的优点

<1> 如果主服务器出现问题, 可以快速切换到从服务器提供的服务; <2> 可以在从服务器上执行查询操作, 降低主服务器的访问压力; 只供学习交流用


此文档来源于网络,如有侵权请联系网站删除

<3> 可以在从服务器上执行备份, 以避免备份期间影响主服务器的服务。

4. Mysql复制的基本原理过程

1Slave上面的IO线程连接上Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容;

2Master接收到来自SlaveIO线程的请求后,通过负责复制的IO线程根据请求信息读取指定日志指定位置之后的日志信息返回给Slave端的IO线程。返回信息中除了日志所包含的信息之外,还包括本次返回的信息Masterbinary log文件的名称以及在Binary log中的位置;

3SlaveIO线程收到信息后,将接收到的日志内容依次写入到Slave端的RelayLog文件(mysql-relay-lin.xxxxx)的最末端,并将读取到的Master端的bin-log的文件名和位置记录到master-info文件中,以便在下一次读取的时候能够清楚的告诉master“我需要从某个bin-log的哪个位置开始往后的日志内容,请发给我

4SlaveSQL线程检测到Relay Log中新增加了内容后,会马上解析该Log文件中的内容成为在Master端真实执行时候的那些可执行的查询或操作语句,并在自身执行那些查询或操作语句,这样,实际上就是在master端和Slave端执行了同样的查询或操作语句,所以两端的数据是完全一样的。

5. MYSQL添加一个用户?

mysql> grant select,insert,update,delete on book.* to test2@localhost identified by “abc”; #增加test2用户,密码为abc。并只能在localhost这台主机上登录,并且只能访问book这个库中的表,具有查询,插入,更新,删除权限;

语法:mysql> GRANT <权限> ON <>.<> TO ‘用户’@’主机名’ identified by “密码”;

6. 写一个脚本将数据库备份并打包至远程服务器192.168.1.1 /backup目录下。

mount 192.168.1.1:/backup /mnt cd /mnt

/usr/local/mysql/bin/mysqldump -hlocalhost -uroot test >test.sql tar czf test.sql.tar.gz test.sql rm -f test.sql

只供学习交流用


此文档来源于网络,如有侵权请联系网站删除

7. 写一个脚本进行nginx日志统计,得到访问ip最多的前10(nginx日志路径

/home/logs/nginx/default/access.log)

awk ‘{a[$1]++}END{for (j in a) print a[j],j}’ /home/logs/nginx/default/access.log|sort -nr|head -10

8. 简要描述Linux的启动过程?

BIOS启动引导(mbr中装载启动管理grub)—-GRUB启动引导(装载kernelinitrd内存)—–内核启动参数-sys init初始化..

9. 简要叙述下列端口所运行的服务212223251101438733306

对应的服务是 ftp ssh telnet snmp pop3 IMAP rsync

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是完全开源的工具,整合了cactinagios等特性。 zabbix可以对主机的性能监控、网络设备性能监控、数据库、FTP 等通用协议监控、多种告警方式、详细的报表图表绘制

支持自动发现网络设备和服务器(可以通过配置自动发现服务器规则来实现) 支持分布式,能集中展示、管理分布式的监控点,扩展性强

可以自己开发完善各类监控(根据相关接口编写程序实现),编写插件容易,可以自定义监控项,报警级别的设置。

数据收集,支持 snmp(包括 trapping and polling )IPMIJMXSSHTELNET

14. web服务器的调优要点

nginx为例,个人总结有如下几个要点: 1)尽可能的少用http,因为http是有开销的; 只供学习交流用


此文档来源于网络,如有侵权请联系网站删除 2)尽可能的使用CDN

3)添加Expire/Cache-Control头,这个头是缓存用的,可以缓存图片flash那样不轻易更改的文件,减少访问时间;

4)启动gzip压缩,这个没啥好说的了;

5)尽可能少的重定向,能rewrite就不要return,我也知道returnrewrite好写,但是重定向是需要时间的,增加一次重定向就会多一次web需求; 6)如果可以,把ajax也做缓存;

7)减少dns查询,很多网页会有外站的广告,这些广告也是会启动dns查询的,所以如果不缺钱,减少这种广告

8)调好服务器里的TCP协议栈,这个无论是web服务器还是应用服务器都是必须的;

15. mysqlinnodb如何定位锁问题,mysql如何减少主从复制延迟?

mysqlinnodb如何定位锁问题:

在使用 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=1innodb_flush_log_at_trx_commit

= 1 之类的设置,slave则不需要这么高的数据安全,完全可以讲sync_binlog设置为0或者关闭binloginnodb_flushlog也可以设置为0来提高sql的执行效率。另外就是使用比主库更好的硬件设备作为slave

17. osi七层模型,tcp三次握手过程,tcp连接断开过程,什么情况下tcp进入time_wait?

其他问题答案略

什么情况下tcp进入time_wait?

当关闭一个 socket 连接时,主动关闭一端的 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报文端,发送FINACK,同时进入TIME_WAIT状态,启动TIME_WAIT定时器,超时时间设为2MSL6 服务器端收到FINACK,进入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. 请根据你的理解,简述高可用服务体系的相关组件,并列举该组件的具体实现服务名



统一配置:zookeeperConsulEtcd+Confd(这俩比较常见于动态管理nginx) 前端展示:nginx

消息队列:activemqkafka 读写分离中间件:atlas 日志分析:elk

21. 请根据你的理解,简述数据迁移工具和数据存储服务有哪些以及相关特点

由于我公司主要都放在了阿里云,数据库用过的就这么几个:mysqlrediselasticsearch对于StormHadoop这俩我还是初学者。 只供学习交流用


此文档来源于网络,如有侵权请联系网站删除 mysql:关系型数据库

elasticsearch:全文检索框架,这玩意逐渐向一个数据库靠拢了 redis:键值储存数据库

mysql的数据迁移最常见的就是mysqldump,但是要注意使用不当会锁表,

redis的数据迁移最稳妥的方法就是主从同步:slave端启动redis然后执行slaveof master机器IP地址 6379,然后使用info的时候查看master_link_status如果是up那就是OK了,再执行slaveof no one,提示OK就是OK了;

Elasticsearch的数据迁移工具就是Elasticsearch-Exporter,不过我对它仅仅只是了解,用的并不多

22. 请简述你了解的自动化配置管理工具特点和运行原理

我用的最多的就是ansiblesaltstack这俩都是python的,对于我这个半路出家的更亲切。 ansible基于SSH协议传输数据,不用装agent,配置比较简单,对windows支持惨不忍睹; saltstack使用消息队列zeroMQ传输数据,如果1000台以上的话它速度比ansible还要快,安装agent,对windows支持同样惨不忍睹;

23. 你们公司的网络出口带宽是多少?每天网站的PVUV是多少? 24. 请简单阐述运维工程师的职责。

只供学习交流用


本文来源:https://www.wddqxz.cn/d055105401768e9951e79b89680203d8ce2f6a2e.html

相关推荐