Linux運維工程師筆試題第十三套

 這套題的出處是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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章