Linux运维工程师笔试题第十三套

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介:

 这套题的出处是http://blog.51cto.com/nolinux/1670406  ,看到了周末闲着没事就做一做,答案都是我结合自己的工作得到的,不一定百分百准确,现在拿出来跟各位分享一番。

1、请写出五种系统性能分析工具,并简述其作用和特点
[我的答案] top、free、vmstat、iostat、perf等等等等,如果你想装逼,可以回答fio,blktrace,oprofile。
具体的作用和特点这里不多说了,但是我着重要推荐vmstat,很实用很棒的一个命令。可以去移步看看https://rorschachchan.github.io/2018/01/03/从vmstat命令里看服务器瓶颈/ 这篇文章。 


2、请写出web服务器的调优要点
[我的答案]以nginx为例,个人总结有如下几个要点:
1)尽可能的少用http,因为http是有开销的;
2)尽可能的使用CDN;
3)添加Expire/Cache-Control头,这个头是缓存用的,可以缓存图片和flash那样不轻易更改的文件,减少访问时间;
4)启动gzip压缩,这个没啥好说的了;
5)尽可能少的重定向,重定向是需要时间的,增加一次重定向就会多一次web需求;
6)如果可以,把ajax也做缓存;
7)减少dns查询,很多网页会有外站的广告,这些广告也是会启动dns查询的,所以如果不缺钱,减少这种广告;

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


3、请写出你知道或使用过的nginx扩展模块(注意标注知道和使用)
[我的答案] 随便说几个我使用过的,这玩意到时候结合工作过的情况说说吧:
Nginx负载均衡模块:nginx-upstream-fair
非阻塞访问redis模块:redis2-nginx-module
分布式图片实时动态压缩:ngx-fastdfs

4、请简述你了解的自动化配置管理工具特点和运行原理
[我的答案]我用的最多的就是ansible和saltstack,这俩都是python的,对于我这个半路出家的更亲切。
ansible基于SSH协议传输数据,不用装agent,配置比较简单,对windows支持惨不忍睹;
saltstack使用消息队列zeroMQ传输数据,如果1000台以上的话它速度比ansible还要快,要安装agent,对windows支持同样惨不忍睹;

5、目前,有一个文件,内容如下:
         172.16.100.1
         172.16.100.2
         172.16.100.3
         172.16.100.4
   请使用while和ssh命令,登录文件内的ip并执行hostname命令

[我的答案]这个还真没有什么思路,不过我觉得是要搭配“<”输入重定向的吧。
PS,为啥不用ansible...哪怕pssh也可以啊!

6、请使用awk命令将如下两份文件中名字相同的两行合并起来
   A文件:
          大广州 21岁
          广州大 23岁
          州广大 22岁
          广州大 24岁
   B文件:
          广州大 男
         大广州 男
          州广大 男
          广州大 男
输出效果:
    `大广州 21岁 男`
[我的答案]#awk 'NR==FNR{a[$1]=$2}NR>FNR{print $0,a[$1]}'  B文件名 A文件名
1.png

PS,做完这道题,我已经不认识“广”“州”这两个字了...

7、请使用绘图的方式简述TCP/IP三次握手和四次断开的交互过程
[我的答案]这种图满大街都是了,我这个灵魂画师在这里就不污染各位的眼睛,不过这里推荐各位去看一篇文章:https://mp.weixin.qq.com/s?__biz=MjM5NzA1MTcyMA==&mid=2651160450&idx=2&sn=1128438fa5287b6cee503880698642b2&scene=21  对原理讲的浅显易懂。
多说一句,网易招聘java的时候也问这个问题,不过他们问的是“为什么要三次握手?”
 
8、请根据你的理解,简述高可用服务体系的相关组件,并列举该组件的具体实现服务名字
[我的答案] 我觉得这个题是要问一些架构上的东西,以我工作环境为例:
统一配置:zookeeper、Consul、Etcd+Confd(这俩比较常见于动态管理nginx)
前端展示:nginx
消息队列:activemq、kafka
读写分离中间件:atlas
日志分析:elk

简述我就不简了,自己百度一下。

9、请根据你的理解,简述负载均衡的实现方式
[我的答案]负载均衡主要分为两种,硬件(F5)和软件(NGINX、Haproxy、LVS),硬件效果比较牛逼,它是把4-7层的负载均衡功能做到一个硬件里面,但是价格昂贵最近用的越来越少了。
软件的负载均衡又分两种,四层和七层:四层是在IP/TCP协议栈上把网络包的IP地址和端口进行修改,达到转发的目的;七层就是在应用层里把HTTP请求、URL等具体的应用数据发送到具体的服务器上。四层的效率比七层的高,四层一般安排在架构的前端,七层一般就是在具体服务器的前端。
软件负载均衡比较常见的几个分配方式如下:
轮询:访问请求依序分发给后端服务器;
加权轮询:访问请求依序分发后端服务器,服务器权重越高被分发的几率也越大;
最小连接数: 将访问请求分发给当前连接数最小的一台后端服务器,服务器权重越高被分发的几率也越大;

10、请根据你的理解,简述数据迁移工具和数据存储服务有哪些以及相关特点
[我的答案]由于我公司主要都放在了阿里云,数据库用过的就这么几个:mysql、redis和elasticsearch。对于Storm和Hadoop这俩我还是初学者。
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,不过我对它仅仅只是了解,用的并不多; 


最后的最后,如果您觉得本文对您升职加薪有帮助,那么请不吝赞助之手,刷一下下面的二维码,赞助本人继续写更多的博文!

wKioL1l16m3BMYDKAACPHEqd55Q687.jpg


 本文转自 苏幕遮618 51CTO博客,原文链接:http://blog.51cto.com/chenx1242/2058818


相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
25天前
|
域名解析 网络协议 安全
|
2月前
|
运维 监控 网络协议
|
2月前
|
存储 运维 搜索推荐
|
6月前
|
网络协议 算法 Linux
【嵌入式软件工程师面经】Linux网络编程Socket
【嵌入式软件工程师面经】Linux网络编程Socket
172 1
|
5月前
|
弹性计算 运维 Linux
运维工程师必备的摸鱼神器:阿里云智能助手OS Copilot
OS Copilot 概述与体验评测摘要 阿里云的OS Copilot是一款基于大模型的智能操作系统助手,作为高级运维工程师,体验者发现它在系统诊断和性能优化上尤其有用,简化了如重置ECS密码和安全组配置等任务,提升了工作效率。 OS Copilot的易用性和安全性得到肯定,操作手册详细且交互性强,减少了用户在不同页面间切换的需要。在辅助编程方面,它能帮助非专业开发者编写和理解代码,对运维工作中的开发技能补充有很大帮助。与GitHub Copilot等产品相比,OS Copilot的独特之处在于结合了Linux操作的支持。
250 3
运维工程师必备的摸鱼神器:阿里云智能助手OS Copilot
|
4月前
|
运维 Kubernetes 关系型数据库
云计算运维工程师面试技巧
【8月更文挑战第6天】
401 1
|
4月前
|
Ubuntu Linux Shell
这7个重要的Linux命令,每一位Linux工程师都必须盘它!
这7个重要的Linux命令,每一位Linux工程师都必须盘它!
|
5月前
|
运维 知识图谱 Python
专为运维工程师设计!阿里藏经阁出品的Python实战手册被我搞来了
Python 可能是极少数既简单又强大的编程语言中的一种。更重要的是,用它来编程是非常快乐的事。 今天给小伙伴们分享的是阿里“藏经阁”出品的专门给运维工程师设计的Python实战手册
|
6月前
|
消息中间件 安全 Java
【嵌入式软件工程师面经】Linux多进程与多线程
【嵌入式软件工程师面经】Linux多进程与多线程
71 1
|
6月前
|
存储 缓存 Unix
【嵌入式软件工程师面经】Linux文件IO
【嵌入式软件工程师面经】Linux文件IO
50 1