运维工程师面试题库,运维工程师面试题及答案文库

1.redis支持的数据类型有哪些

redis我主要负责公司里架构这个部分。 如果是数据类型的话,我知道的有这样一种。 字符串类型、xbddb类型、列表、集合,实际上有与任何开发语言或数据库相似的数据类型

Redis支持五种数据类型: string (字符串)、hash (XB DDB )、list (列表)、set (集合)和set (有序集合)。

2.redis架构有哪些?

我们公司主要使用的哨兵模式和主从,我知道的是官网上的redis cluster这三个框架。 我都接触过

Redis Sentinel集群内网络DNS自定义脚本

Redis Sentinel群集VIP自定义脚本

封装客户端直连Redis Sentinel端口

针对Java的JedisSentinelPool

PHP基于phpredis自行封装

Redis Sentinel集群Keepalived/Haproxy

Redis M/S Keepalived

redis群集

3.redis哨兵模式的特性和特点以及缺点。

优点:

1、支持set、zset、list、hash、string多种数据类型

2、永久存储: RDB和AOF

3、丰富特性: pub/sub、key过期策略、事务、多数据库支持等

4、性能好:由于是全存储器操作,读写性能好。

坏处:

1 )因为是内存数据库,所以数据的内存量与机器本身的内存大小有关。

2、Redis只能使用单线程,性能受限于CPU的性能

4.什么是缓存穿透,什么是缓存雪崩

直通缓存:

如果在微APP应用或分布式环境中有数百万个业务请求,那么如果这些请求的数据不在redis缓存这个层次中,那么它将通过redis缓存到达后台,或mysql服务器,然后进入微服务APP应用

雪崩:

是redis缓存直接锁定,请求通过缓存直接到达数据库,在数据并发访问量成千上万的情况下,数据直接锁定,最终整个系统锁定

5.apache与nginx有什么区别

在web方面,我们公司用过apache和nginx,但我个人更喜欢nginx。 因为,nginx对于apache

与apache相比,nginx更轻,是相同的web服务,内存和资源消耗比apache少,在抗并发性方面,nginx也是异步非阻塞请求,而apache是阻塞的。

6.tomcat connector 有哪三种运行模式

BIO :

一个线程处理一个请求。 缺点:并发量大时,线程数多,浪费资源。

Tomcat7或更低版本,Linux系统缺省使用此方法。

NIO :

利用Java异步IO处理,可以用较少的线程处理大量请求。

Tomcat8在Linux系统上缺省使用此方法。

APR :

也就是说,Apache可移植运行时在操作系统级别解决了io阻塞问题。

如果在Linux上安装了apr和native,则Tomcat7或Tomcat8在Linux系统上默认使用此方法。

7.tomcat有几个端口,作用是什么

Http访问端口号为8080,shutdown端口为8005,AJP协议访问端口为8009

8.tomcat修改端口号,是修改哪个配置文件

Tomcat的默认端口号位于server包下的server.xml中。

9.tomcat内存调优,XMX ,xms分别表示什么

Xms )显示java虚拟机堆内存的初始内存分配大小。 它通常只需要操作系统可用内存的1/64,但必须根据实际情况进行分配。 如果通过这些规则进行了实际分配,则设计的软件可能在还没有运行之前就锁定。

Xmx表示为java虚拟机堆内存分配的最大容量,通常为操作系统可用内存的1/4。 但是,-Xms和-Xmx这两个参数的值通常在开发过程中设置为相同的值。 其目的是在java垃圾回收机构清理堆后,不需要重新划分计算堆的大小,从而提高性能。

10.tomcat的目录结构有哪些

ljdhc:包含tomcat可执行文件,例如启动tomcat和关闭tomcat

common:包含可用于tomcat和所有web APP应用程序的类和jar包

conf:存储了一些tomcat配置文件。

logs:存储tomcat和web APP的输出

出的日志文件.
server:存放只有tomcat才能使用的类和jar包,以及tomcat自带的web应用
shared:存放所有web应用都可以使用的类和jar包
temp:存放一些临时文件
webapps:存放开发的web应用(可以有多个)
work:存放jsp相关的一些servlet类
11.如何配置tomcat的虚拟目录
在tomcat目录下的conf文件夹下的server.xml
在前一句写上:

12. nginx的重新加载(平滑启动) 命令是什么
进入nginx的sljdhc目录
./nginx -s reload
13.nginx查看配置文件是否正确怎么查看
首先执行命令找到nginx路径,
ps aux | grep nginx;
如nginx路径为;
/usr/local/nginx/sljdhc/nginx;
contos 下面查看 nginx配置是否OK,
/usr/local/nginx/sljdhc/nginx -t;
14.nginx调优怎么做的,写出12条
隐藏nginx版本号
修改nginx运行用户
设置nginx运行子进程个数
设置nginx的CPU亲和力
设置nginx每个子进程打开的最多文件数
.nginx事件处理模型
.设置nginx最大并发量

开启高效传输模式
.连接超时时间
文件上传限制大小
15.nginx作为负载均衡的策略有哪些?
我知道的Nginx作为负载均衡的策略有轮询、权值、ip_hash、url_hash,我们公司主要用的是ip_hash,因为这个ip_hash确保了相同的客户端请求发送到相同的服务器,保证lsession会话。(后边几上几个简单的介绍)
weight
权重方式,在轮询策略的基础上指定轮询的几率
ip_hash
指定负载均衡器按照基于客户端IP的分配方式,这个方法确保了相同的客户端的请求一直发送到相同的服务器,以保证session会话。这样每个访客都固定访问一个后端服务器,可以解决session不能跨服务器的问题。
4、least_conn
把请求转发给连接数较少的后端服务器。轮询算法是把请求平均的转发给各个后端,使它们的负载大致相同;但是,有些请求占用的时间很长,会导致其所在的后端负载较高。这种情况下,least_conn这种方式就可以达到更好的负载均衡效果。
5、第三方策略
第三方的负载均衡策略的实现需要安装第三方插件。
①fair
按照服务器端的响应时间来分配请求,响应时间短的优先分配。
②url_hash
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,要配合缓存命中来使用。同一个资源多次请求,可能会到达不同的服务器上,导致不必要的多次下载,缓存命中率不高,以及一些资源时间的浪费。而使用url_hash,可以使得同一个url(也就是同一个资源请求)会到达同一台服务器,一旦缓存住了资源,再此收到请求,就可以从缓存中读取。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注