导航菜单
首页 >  linux运维考试题  > Linux运维工程师面试题

Linux运维工程师面试题

本版面试题来源于网络,整合了各个版本的面试题,如有错误之处,请后台私信。

1、什么是运维?

1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常,在他运转的过程中,对他进行维护,他集合了网络、系统、数据库、开发、安全、监控于一身的技术运维又包括很多种,有DBA运维、网站运维、虚拟化运维、监控运维、游戏运维等等。

2)游戏运维又有分工,分为开发运维、应用运维(业务运维)和系统运维。

开发运维:是给应用运维开发运维工具和运维平台的。

应用运维:是给业务上线、维护和做故障排除的,用开发运维开发出来的工具给业务上线、维护、做故障排查。

系统运维:是给应用运维提供业务上的基础设施,比如:系统、网络、监控、硬件等等。

总结:开发运维和系统运维给应用运维提供了“工具”和“基础设施”上的支撑,开发运维、应用运维和系统运维他们的工作是环环相扣的。

2、简述raid0 raid1 raid5 三种工作模式的工作原理及特点

RAID,可以把硬盘整合成一个大磁盘,还可以在大磁盘上再分区,放数据还有一个大功能,多块盘放在一起可以有冗余(备份)。

RAID整合方式有很多,常用的:0 1 5 10。

RAID 0:可以是一块盘和N个盘组合,其优点读写快,是RAID中最好的。缺点:没有冗余,一块坏了数据就全没有了,不能应用于数据安全性要求高的场合。

RAID 1:只能2块盘,盘的大小可以不一样,以小的为准,10G+10G只有10G,另一个做备份。它有100%的冗余,缺点:浪费资源,成本高。它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据,

不能提升写数据效率。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID1 可以提高读取性能,RAID 1 是磁盘阵列中单位成本最高的,镜像卷可用容量为总容量的1/2,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。

RAID 5 :至少由3块硬盘组成,容量计算10*(n-1),损失一块盘。特点:读写性能一般,读还好一点,写不好。raid5可以实现数据冗余,确保数据的安全性,同时raid5也可以提升数据的读写性能。

冗余从好到坏:RAID1 RAID10 RAID 5 RAID0

性能从好到坏:RAID0 RAID10 RAID5 RAID1

成本从低到高:RAID0 RAID5 RAID1 RAID10

我们会根据数据的存储和访问的需求,去匹配对应的RAID级别:

单台服务器:很重要盘不多,系统盘,RAID1

数据库服务器:主库:RAID10 从库 RAID5\RAID0(为了维护成本,RAID10)。

WEB服务器,如果没有太多的数据的话,RAID5,RAID0(单盘)。

有多台,监控、应用服务器,RAID0 RAID5

3、讲述一下Tomcat8005、8009、8080三个端口的含义?

8005 ==> 关闭时使用。

8009 ==> 为AJP端口,即容器使用,如Apache能通过AJP协议访问Tomcat的8009端口。

8080 ==> 一般应用使用。

4、简述DNS进行域名解析的过程?

用户要访问www.baidu.com,会先找本机的host文件,再找本地设置的DNS服务器,如果也没有的话,就去网络中找根服务器,根服务器反馈结果,说只能提供一级域名服务器.cn,就去找一级域名服务器,一级域名服务器说只能提供二级域名服务器.com.cn,就去找二级域名服务器,二级域服务器只能提供三级域名服务器.baidu.com.cn,就去找三级域名服务器,三级域名服务器正好有这个网站www.baidu.com,然后发给请求的服务器,保存一份之后,再发给客户端。

5、RabbitMQ是什么东西?

RabbitMQ也就是消息队列中间件,消息中间件是在消息的传息过程中保存消息的容器,消息中间件再将消息从它的源中到它的目标中标时充当中间人的作用,队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用消息队列不会保留消息,直到可以成功地传递为止,当然,消息队列保存消息也是有期限的。

6、mysql如何减少主从复制延迟?

如果延迟比较大,就先确认以下几个因素:

从库硬件比主库差,导致复制延迟。主从复制单线程,如果主库写并发太大,来不及传送到从库就会导致延迟。更高版本的mysql可以支持多线程复制。慢SQL语句过多。网络延迟。master负载主库读写压力大,导致复制延迟,架构的前端要加buffer及缓存层。

slave负载一般的做法是,使用多台slave来分摊读请求,再从这些slave中取一台专用的服务器,只作为备份用,不进行其他任何操作。另外,2个可以减少延迟的参数:

代码语言:javascript复制–slave-net-timeout=seconds 单位为秒 默认设置为 3600秒#参数含义:当slave从主数据库读取log数据失败后,等待多久重新建立连接并获取数据–master-connect-retry=seconds 单位为秒 默认设置为 60秒#参数含义:当重新建立主从连接时,如果连接建立失败,间隔多久后重试通常配置以上2个参数可以减少网络问题导致的主从数据同步延迟

MySQL数据库主从同步延迟解决方案:

最简单的减少slave同步延时的方案就是在架构上做优化,尽量让主库的DDL快速执行。还有就是主库是写,对数据安全性较高,比如sync_binlog=1,innodb_flush_log_at_trx_commit= 1 之类的设置,而slave则不需要这么高的数据安全,完全可以讲sync_binlog设置为0或者关闭binlog。innodb_flushlog也可以设置为0来提高sql的执行效率。另外就是使用比主库更好的硬件设备作为slave。

7、如何重置mysql root密码?

一、 在已知MYSQL数据库的ROOT用户密码的情况下,修改密码的方法:

1、 在SHELL环境下,使用mysqladmin命令设置:

代码语言:javascript复制mysqladmin –u root –p password “新密码” 回车后要求输入旧密码

2、 在mysql>环境中,使用update命令,直接更新mysql库user表的数据:

代码语言:javascript复制Update mysql.user set password=password(‘新密码’) where user=’root’;flush privileges;注意:mysql语句要以分号”;”结束

3、 在mysql>环境中,使用grant命令,修改root用户的授权权限。

代码语言:javascript复制grant all on . to root@’localhost’ identified by ‘新密码’;

二、 如果忘记了mysql数据库的ROOT用户的密码,又如何做呢?方法如下:

1、 关闭当前运行的mysqld服务程序:service mysqld stop(要先将mysqld添加为系统服务)。

2、 使用mysqld_safe脚本以安全模式(不加载授权表)启动mysqld 服务:

代码语言:javascript复制 /usr/local/mysql/bin/mysqld_safe --skip-grant-table &

3、 使用空密码的root用户登录数据库,重新设置ROOT用户的密码:

代码语言:javascript复制#mysql -uroot //空密码登录Mysql> Update mysql.user set password=password(‘新密码’) where user=’root’;Mysql> flushprivileges;

8、简述几种mysql数据备份方式

mysqldump工具:mysqldump是mysql自带的备份工具,目录在bin目录下面:/usr/local/mysql/bin/mysqldump。支持基于innodb的热备份,但是由于是逻辑备份,所以速度不是很快,适合备份数据比较小的场景。Mysqldump完全备份+二进制日志可以实现基于时间点的恢复。

基于LVM快照备份:在物理备份中,有基于文件系统的物理备份(LVM的快照),也可以直接用tar之类的命令对整个数据库目录进行打包备份,但是这些只能进行冷备份,不同的存储引擎备份的也不一样,myisam自动备份到表级别,而innodb不开启独立表空间的话只能备份整个数据库。

tar包备份。

percona提供的xtrabackup工具:支持innodb的物理热备份,支持完全备份,增量备份,而且速度非常快,支持innodb存储引起的数据在不同数据库之间迁移,支持复制模式下的从机备份恢复备份恢复,为了让xtrabackup支持

相关推荐: