天天看點

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

1、請寫出五種系統性能分析工具,并簡述其作用和特點

[我的答案] top、free、vmstat、iostat、perf等等等等,如果你想裝逼,可以回答fio,blktrace,oprofile。

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檔案名

PS,做完這道題,我已經不認識“廣”“州”這兩個字了...

7、請使用繪圖的方式簡述TCP/IP三次握手和四次斷開的互動過程

多說一句,網易招聘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,不過我對它僅僅隻是了解,用的并不多; 

最後的最後,如果您覺得本文對您升職加薪有幫助,那麼請不吝贊助之手,刷一下下面的二維碼,贊助本人繼續寫更多的博文!

 本文轉自 蘇幕遮618 51CTO部落格,原文連結:http://blog.51cto.com/chenx1242/2058818