2020-08-05 ---运维工程师常见面试题整理-----篇章(一)


一 . Zabbix作用是什么,可以监控什么, 优化有什么,工作原理?


Zabbix作用:监控网络主机

监控:硬件(路由器 交换机 防火墙),系统(cpu负荷 ,内存,磁盘,网络,进程,tcp )服务(nginx,php,tomcat,redis,memcache,mysql) web(响应时间,加载时间,渲染时间) 日志(ELK,收集,存储,分析,展示)安全(firewalld)

Zabbix优化:1轮询器实例数量   2不可达主机  3 http轮询器子进程实例个数   4 缓存大小 5 历史缓存数据大小   6 trappers进程实例数量

工作原理Agent安装在被监控的主机上,Agent负责定期收集客户端本地各项数据,并发送至zabbix server端,zabbix server收到数据,将数据存储到数据库中,用户基于zabbix web可以看到数据在前端展现图像。  当zabbix监控某个具体的项目,项目会设置一个触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件,微信,短信),发送命令(shell命令,reboot,restart,install)-------agent收集数据分为主动和被动模式:主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy

被动:server向agent请求获取监控项的数据,agent返回数据。


二 .MySQL数据库与NoSQL数据库的区别、memcached与redis区别?


关系型数据库有:MySql, Orcale, SqlServer, Access

非关系型数据库(nosql)有:Hbase, MongoDBRedis

关系型数据是以行和列的形式展示,行与列的形式组织起来的数据的集合。一个数据库包括一个或多个表。比如说一个人的信息有:ID,×××,姓名,年龄,性别,住址等,这些信息都是和这个人有关系的。

非关系型数据库里面的数据是以 ”key”,”value”键值对的形式存在,key是唯一的,value值可以有多个重复的数据。

Redis 通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash/Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)五种类型,一个高性能的key-value数据库;支持持久化;数据的备份。

redis提供两种方式进行持久化,一种是RDB持久化(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化),另外一种是AOF(append only file)持久化(原理是将Reids的操作日志以追加的方式写入文件)。

RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。

AOF持久化以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。

Sql和Mysql区别

  1. 成本:nosql数据库简单容易部署,基本上都是开源软件,不像oracle数据库那样收费,和关系型数据库比起来价格便宜。
  2. 查询速度:nosql数据库是将数据存储到缓存之中,关系型数据库将数据存储到硬盘中,所以nosql数据库查询速度快。
  3. 存储数据的格式:nosql的存储格式是key,value形式、文档形式等等,所以可以存储基础类型以及对象或者集合等各种格式,关系型数据库只支持基础类型。
  4. 拓展性:关系型数据库有join这个样的多表查询机制的限制导致拓展很艰难。

Redis和Memcached的不同:

Memcached是一种基于内存的key-value存储,用来存储小块的任意数据(字符串、对象),是一个简洁的key-value存储系统.

     1、存储方式:

Memcached 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小

Redis有部份存在硬盘上,这样能保证数据的持久性,支持数据的持久化(笔者注:有快照和AOF日志两种持久化方式,在实际应用的时候,要特别注意配置文件快照参数,要不就很有可能服务器频繁满载做dump)。

      2、数据支持类型:

Redis在数据支持上要比Memcached多的多。

      3、使用底层模型不同:

新版本的Redis直接自己构建了VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。

      4、运行环境不同:

Redis目前官方只支持LINUX 上去行,从而省去了对于其它系统的支持,这样的话可以更好的把精力用于本系统 环境上的优化,虽然后来微软有一个小组为其写了补丁。但是没有放到主干上。


 三 .MySQL主从同步的原理


   主库将变更写入 binlog 日志,然后从库连接到主库之后,从库有一个 IO 线程,将主库的 binlog 日志拷贝到自己本地,写入一个 relay 中继日志中。接着从库中有一个 SQL 线程会从中继日志读取 binlog,然后执行 binlog 日志中的内容,也就是在自己本地再次执行一遍 SQL,这样就可以保证自己跟主库的数据是一样了。


  四 .Redis实现主从工作原理


  在master和slave互通之后,<1>首先,slave会向master发送sync同步指令;<2>当Master收到指令后,将在后台启动存盘进程,同时收集所有修改的数据命令;<3>master完成后台存盘后,传递整个数据文件到slave;<4>slave接受数据文件,加载到内存中,完成首次同步,后续有新数据产生时,master继续收集数据修改命令。


  五 .keepalived高可用原理


     Keepalived是一个用C语言写的路由软件,以VRRP协议为实现基础的,即虚拟路由冗余协议;由多台相同功能的路由器组成一个组,由一个master(有一个对外提供服务的vip)和多个backup组成,master会发组播,当backup收不到vrrp包是就认为master宕机了,这时需要根据VRRP优先级来选举一个backup当master。


   六  .Nginx基本优化有哪些


  1. 最大化worker_connections(1024)
  2. 启用Gzip压缩(压缩文件大小,减少了客户端http的传输带宽)
  3. 为静态文件启用缓存(减少带宽并提高性能)
  4. Timeouts
  5. 禁用access_logs
  6. 调整worker_processes

 


  七  .Nginx常见负载均衡策略及原理


轮询(每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除

;加权轮询(指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况

;ip_hash(每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器

;url_hash(按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器

;fair(按后端服务器的响应时间分配请求,响应时间短的优先分配


    八 .简述linux的优化方案


【硬件方面】

1. cpu

2. 内存  (增加内存)

3. 存储 (使用RAID 0+1 读写速度快、完全容错但成本高,用的比较多 4块盘 利用率50%,使用ssd)

4. 网卡 (使用千兆网卡,或者双网卡绑定)

【系统方面 】

1. 内核参数优化(网络相关、内存相关、缓冲缓存相关)

2. 文件系统方面(分区调优,格式化时根据存储文件特性,指定合适的块大小,noatime,日志隔离,软raid,有效使用/dev/shm,关闭不必要的服务)

3. cpu优化 (进程绑定,中断绑定)

【应用程序方面】

1. nginx、apache、php-fpm、mysql、tomcat、squid等应用,是可以通过调节各个参数获得性能优化的。

2. web优化,比如可以把用户请求合并,使用cdn加速静态页访问速度,把图片文档压缩减少带宽传输,

3. 优化网站程序

【架构方面】

1. 使用简单并且稳定的架构方案

2. 多使用缓存

 

猜你喜欢

转载自blog.csdn.net/weixin_46424541/article/details/107808272