營運技術面試

來源:互聯網
上載者:User

營運技術面試
1. 軟串連與永久連結區別

2. Linux檔案刪除原理

3. linux系統的啟動過程

BIOS(基本輸出入系統 (BIOS))

  • 1. 檢查硬體,即電腦硬體是否滿足運行基本條件。(如果硬體有問題主板會發出有頻率的蜂鳴,啟動終止);

  • 2. 尋找磁碟片、光碟片或硬碟的引導裝在程式(指引導記錄,即MBR);

  • 3. 將引導裝在程式(MBR)載入記憶體,將控制權交給MBR.

MBR(主引導記錄)

  • 載入並執行GRUB

MBR位於啟動盤第一扇區(一般為/dev/hda或者/dev/sda)
MBR共有512位由三部分組成:
① 1-446bit 主引導載入程式資訊
② 447-510bit 存放分區表
③ 511-512bit 儲存MBR有效標記

GRUB(啟動管理器)

  • 載入並執行核心以及initrd鏡像

GRUB會讓你選擇啟動的核心
GRUB會通過設定檔找到核心及Initrd鏡像,initrd鏡像含有核心所需的基本模組驅動

Kernel

  • 1. 掛載根檔案系統;

  • 2. 運行/sbin/init程式,初始化系統內容;

由於init是被linux第一個執行的程式,所以它的進程號為1.
在根系統被掛載之前,initrd被核心作為一個臨時檔案系統,核心啟東市展開改initrd載入根驅動,在驅動的補充下掛載根分區.

init

  • 根據/etc/inittab設定linux的運行層級

Runlevel programs

  • 根據運行層級,執行對應層級的程式

s開頭程式為啟動進程使用,即startup;
k開頭程式為關閉過程使用,即kill.
s和k後面的數字代表執行順序
即S12syslog,這個進程的啟動順序為12.
S80sendmail啟動順序為80,就會比syslog晚啟動.

4. top命令右上方的load average的值是什麼意思,高於多少代表負載有問題

拆分出四個內容 :
1. load average(系統平均負載)是什麼?
系統平均負載被定義為在特定時間間隔內運行隊列中(在CPU上運行或者等待運行多少進程)的平均進程數.

2. load average的三個數值代表什麼?
通過top\uptime\w可以擷取到load average的值,它的三個數字值分別記錄了一分鐘\五分鐘\十五分鐘的系統平均負載.

3. 高於多少負載有問題?
高於多少代表負載有問題呢,這裡有兩個法則:

  • “有多少核心即為有多少負荷”法則: 在多核處理中,你的系統均值不應該高於處理器核心的總數量。

  • “核心的核心”法則: 核心分布在分別幾個單個物理處理中並不重要,其實兩顆四核的處理器 等於 四個雙核處理器 等於 八個單一處理器。所以,它應該有八個處理器核心。

4. 我們以哪個數字為準?一分鐘?五分鐘?還是十五分鐘?
我認為你應該著眼於五分鐘或者十五分鐘的平均數值。坦白講,如果前一分鐘的負載情況是 1.00,那麼仍可以說明認定伺服器情況還是正常的。 但是如果十五分鐘的數值仍然保持在 1.00,那麼就值得注意了(根據我的經驗,這時候你應 該增加的處理器數量了).

5. 查看網路I/O命令

dstat:多功能系統資源統計工具,不但可以擷取net(網路)資訊,還可以擷取disk(硬碟)\處理器(CPU)等資訊,結果可儲存為csv.
dstat的用法如下:

dstat[-afv][options..][delay[count]]使用dstat-h查看全部選項,這裡不逐一列舉,下面簡單介紹下常用選項常用選項如下:#直接跟數字,表示#秒收集一次資料,預設為一秒;dstat5表示5秒更新一次-c,--cpu統計CPU狀態,包括user,system,idle(空閑等待時間百分比),wait(等待磁碟IO),hardwareinterrupt(硬體中斷),softwareinterrupt(軟體中斷)等;-d,--disk統計磁碟讀寫狀態-Dtotal,sda統計指定磁碟或匯總資訊-l,--load統計系統負載情況,包括1分鐘、5分鐘、15分鐘平均值-m,--mem統計系統實體記憶體使用方式,包括used,buffers,cache,free-s,--swap統計swap已使用和剩餘量-n,--net統計網路使用方式,包括接收和發送資料-Neth1,total統計eth1介面匯總流量-r,--io統計I/O請求,包括讀寫請求-p,--proc統計進程資訊,包括runnable、uninterruptible、new-y,--sys統計系統資訊,包括中斷、環境切換-t顯示統計時時間,對分析曆史資料非常有用--fs統計檔案開啟數和inodes數

查看網路命令為下

1dstat-Nlo,eth01005

解釋:指定查看Lo和eth0網卡,每條資料存在100秒(每一秒即時重新整理資料,這個頻率貌似不能改),共重新整理5條.

6. memcache運行原理

7. 當一個網站訪問慢時,你怎麼去最佳化 ###

翻譯為: 當一個網站訪問慢時, 你都是怎麼去尋找問題,和解決問題以達到最佳化效果的

第一,用5分鐘排除網路因素,藉助工具(如pagespeed)分析頁面載入過程
1. 某個元素或者圖片載入過慢: 具體原因具體分析
2. DNS解析時間長度問題: 可以通過購買解析服務, 來讓自己的網域名稱在各地DNS更多緩衝
3. 網路頻寬瓶頸: 考慮增加頻寬
4. 網路線路波動: 考慮CDN,或者鏡像站
第二,要考慮到伺服器問題
1. 是否有伺服器過載: 考慮增加硬體
2. I/O操作:資料庫的頻繁讀寫,伺服器的頻繁請求(包括靜態檔案的讀取,圖片的讀取)等都屬於I/O問題。對於資料庫的問題,首先要最佳化SQL,預存程序等。如果單表資料量過大要考慮做分割或者運用程式來控制分表。如果請求量過大,要考慮做叢集。對於伺服器(靜態)檔案的I/O問題,則可以考慮做CDN,這樣也可以解決地區性問題。對於動態檔案的訪問,則涉及到代碼最佳化及負載平衡兩項。
3. 具體應用最佳化: nginx針對訪問量修改設定檔,調高Buffers 調低keep alive空連線時間等
第三,安全方面
1. 查看web\mail等其它服務日誌,是否存在被攻擊現象: 針對安全方面加固
2. 是否有其它攻擊存在DDOS,WEB CC等

8. mysql主從不同步怎麼解決
  1. 在master端執行:

    mysql>flushlogs;mysql>showmasterstatus;PS:記下File、Position的值。
  2. 在slave端執行:

    mysql>stopslave;mysql>CHANGEMASTERTOMASTER_LOG_FILE='bin-log.000002',MASTER_LOG_POS=107;mysql>startslave;mysql>showslavestatus

sql命令手動同步,還有一種方法是跳過這個導致錯誤的事物

  1. 跳過指定數量的事務:

    mysql>slavestop;mysql>SETGLOBALSQL_SLAVE_SKIP_COUNTER=1#跳過一個事務mysql>slavestart
  2. 修改mysql的設定檔,通過slave_skip_errors參數來跳所有錯誤或指定類型的錯誤

    vi/etc/my.cnf[mysqld]slave-skip-errors=1062,1053,1146#跳過指定errorno類型的錯誤slave-skip-errors=all#跳過所有錯誤
9. 進程和線程的區別

翻譯: 進程和線程的概念

  • 進程(英語:process),是電腦中已運行程式的實體。進程是程式的基本執行實體,進程本身不是基本運行單位,而是線程的容器

  • 線程(英語:thread)是作業系統能夠進行運算調度的最小單位。它被包含在進程之中,是進程中的實際運作單位。一條線程指的是進程中一個單一順序的控制流程,一個進程中可以並發多個線程,每條線程並存執行不同的任務。

① 進程是系統進行資源分派的基本單位,有獨立的記憶體位址空間; 線程是CPU調度的基本單位,沒有單獨地址空間,有獨立的棧,局部變數,寄存器, 程式計數器等。
② 建立進程的開銷大,包括建立虛擬位址空間等需要大量系統資源; 建立線程開銷小,基本上只有一個核心對象和一個堆棧。
③ 一個進程無法直接存取另一個進程的資源;同一進程內的多個線程共用進程的資源。
④ 進程切換開銷大,線程切換開銷小;處理序間通訊開銷大,線程間通訊開銷小。
⑤ 線程屬於進程,不能獨立執行。每個進程至少要有一個線程,成為主線程

10. 常用的RAID原理

RAID 0連續以位或位元組為單位分割資料,並行讀/寫於多個磁碟上,因此具有很高的資料轉送率,但它沒有資料冗餘,因此並不能算是真正的RAID 結構。RAID 0 只是單純地提高效能,並沒有為資料的可靠性提供保證,而且其中的一個磁碟失效將影響到所有資料。因此,RAID 0 不能應用於資料安全性要求高的場合。

RAID 1它是通過磁碟資料鏡像實現資料冗餘,在成對的獨立磁碟上產生互為備份的資料。當未經處理資料繁忙時,可直接從鏡像拷貝中讀取資料,因此RAID 1 可以提高讀取效能。RAID 1是磁碟陣列中單位成本最高的,但提供了很高的資料安全性和可用性。當一個磁碟失效時,系統可以自動切換到鏡像磁碟上讀寫,而不需要重組失效的資料。簡單來說就是:鏡象結構,類似於備份模式,一個資料被複製到兩塊硬碟上。

RAID 10高可靠性與高效磁碟結構一個帶區結構加一個鏡象結構,因為兩種結構各有優缺點,因此可以相互補充。主要用於容量不大,但要求速度和差錯控制的資料庫中。

RAID 5分布式同位的獨立磁碟結構,它的同位碼存在於所有磁碟上,任何一個硬碟損壞,都可以根據其它硬碟上的校正位來重建損壞的資料。支援一塊盤掉線後仍然正常運行。

11. 有沒有做過效能調優

這個是個大的話題,要反問是應用調優還是系統調優 沒有進行過調優,基本調優步驟:
1. 找出系統效能瓶頸(包括硬體瓶頸和軟體瓶頸);
2. ***能最佳化的方案(升級硬體?改進系統系統結構?);
3. 達到合理的硬體和軟體配置;
4. 使系統資源使用達到最大的平衡。

12. 請求一個網站的過程

網域名稱解析 --> 發起TCP的3次握手 --> 建立TCP串連後發起http請求 --> 伺服器響應http請求,瀏覽器得到html代碼 --> 瀏覽器解析html代碼,並請求html代碼中的資源(如js、css、圖片等) --> 瀏覽器對頁面進行渲染呈現給使用者

13. lvs/dr調度的過程

用戶端請求發送給LVS ==> LVS接受請求後根據調度演算法選出後台伺服器 ==> LVS將報文目標MAC地址修改為該伺服器 ==> 伺服器處理請求後直接返回給用戶端

14. 我想查看WEB日誌中訪問TOP 10的IP有哪些怎麼查看

當時是面試官讓我把具體命令說出來, 也就是看看知道一些處理文本的命令嘛.其實不難:

catlogfile|cut-d''-f5|sort|uniq-c|sort-nr|head-n10|less

cut命令負責將文本以空格分開,取第五列資料==>
排序==> 去重並統計次數(-c參數就是統計參數)==> 再次排序(統計次數會被寫在IP之前, 所以這裡是按統計次數排序 sort的-r是逆序就是從大到小,-n為按數字排序主要是sort預設排序很可能會把10判斷為比2還小,通過-n就不會出現這個情況)==> 取次數最多的10條==> less可有可無

15. CDN的主要原理

CDN是一種組合技術,主要包含以下3個方面:
① 來源站點
來源站點指發布內容的原始網站。添加、刪除和更改網站的檔案,都是在來源站點上進行的;另外快取服務器所抓取的對象也全部來自於來源站點。
② 快取服務器
快取服務器是直接提供給使用者訪問的網站資源,有一台或數台伺服器組成;當使用者發起訪問時,他的訪問請求被智能DNS定位到離他較近的快取服務器。如果使用者所請求的內容剛好在緩衝裡面,則直接把內容返還給使用者;如果訪問所需的內容沒有被緩衝,則快取服務器向鄰近的快取服務器或直接向來源站點抓取內容,然後再返還給使用者。
③ 智能DNS
智能DNS是整個CDN技術的核心,它主要根據使用者的來源,將其訪問請求指向離使用者比較近的快取服務器,如把廣州電信的使用者請求指向到廣州電信IDC機房中的快取服務器。通過智能DNS解析,讓使用者訪問同服務商下的伺服器,消除國內南北網路互相訪問慢的問題,達到加速作用。智能DNS的出現,顛複了傳統的一個網域名稱對應一個鏡像的做法,讓使用者更加便捷的去訪問網站。

快取服務器中有訪問內容:
用戶端請求 ==> 智能DNS解析到最近的快取服務器 ==> 快取服務器返回請求資源
快取服務器中無訪問內容:
用戶端請求 ==> 智能DNS解析到最近的快取服務器 ==> 快取服務器發現沒有用戶端請求資源,向來源站點請求 ==> 來源站點返回資源到快取服務器 ==> 快取服務器返回用戶端請求資源

16. 跨伺服器同步檔案

當時面試官原問題是, "將某一個檔案夾的所有圖片(不同類型jpg|png)同步到另一台伺服器的",當時我那個不會啊...只憋出個find命令含含糊糊的說了下.
回來趕緊複習了下, 其實就兩個內容, 一個是怎麼尋找到這個檔案, 一個是怎麼去同步到另一台伺服器:
怎麼尋找:
1. ls命令 + grep命令

ls/tmp/test|grep".*\.jpg\|.*\.png"

最簡單易懂, 只不過ls並不是尋找命令, 所以這條命令也只是去查看了/tmp/test檔案夾下的有哪些檔案,並沒有對/tmp/test下的子目錄去搜尋.


2. find命令

find/tmp/test-typef-regex'.*\.jpg\|.*\.png'

最常用的尋找命令, 可以通過指定正則\檔案類型\檔案大小\檔案許可權\檔案屬主屬組\檔案時間等對檔案匹配尋找.

還有一些locate\whereis等等比較另類的命令,都可以用,只要你能定位到你的檔案就可以,這裡就不一一舉例.

怎麼同步:

通過管道將尋找交給負責同步的命令

  1. xargs + scp命令

    ls/tmp/test|grep".*\.jpg\|.*\.png"|xargs-n1-I{}scp{}root@192.168.1.97:/tmpfind/tmp/test-typef-regex'.*\.jpg\|.*\.png'|xargs-n1-I{}scp{}root@192.168.1.97:/tmp

    使用xargs接收管線標準輸入,然後執行遠程拷貝命令.

  2. find命令 + scp命令

    find/tmp/test-typef-regex'.*\.jpg\|.*\.png'-execscp{}root@192.168.1.97:/tmp\;

    也可以配合xargs命令完成

    find/tmp/test-typef-regex'.*\.jpg\|.*\.png'|xargs-n1-I{}scp{}root@192.168.1.97:/tmp

    這兩條效果一樣的,執行過程都是建立子進程逐個檔案scp.比較坑的是, 你要使用scp檔案的話,沒有秘鑰認證遠程主機的話,每個檔案都要輸一次密碼...

  3. rsync同步 普通rsync同步:

    find/tmp/test-typef-regex'.*\.jpg\|.*\.png'|xargs-n1-I{}rsync{}root@192.168.1.97:/tmp

    上傳rsync server同步(需要遠程主機已搭建rsync伺服器):

    find/tmp-typef-regex'.*\.jpg\|.*\.png'|xargs-n1-I{}rsync-avzP{}wys@192.168.1.98::wys

    以上的兩條和scp一樣需要逐個密碼認證,而rsync有--password-file指定密碼檔案(注意密碼檔案許可權必須600,否則會報錯)來戴我們認證密碼,像這樣:

    find/tmp-typef-regex'.*\.jpg\|.*\.png'|xargs-n1-I{}rsync-avzP{}--password-file=/tmp/wys.passwordwys@192.168.1.98::wys

    同步的命令或者服務也有很多,但是像這種臨時性的不是很大量的使用我覺得最多rsync就夠了.

涉及到到知識:
rsync伺服器搭建:參考一|參考二
rsync命令:參考一
find命令:參考一
xargs命令:參考一注意這篇裡邊-I參數例子中有個錯誤少寫了替換字串,應該是:

...-I{}CMD{}XXX...17. mysql增刪改查基礎問題(筆試基礎)
  1. INSERTINTO表名稱VALUES(值1,值2,...);#按列的順序將值依次賦給對應列的對象INSERTINTO表名稱(列1,列2)VALUES(值1,值2);#對應列插入相應值
  2. DELETEFROM表名稱WHERE列運算子值;#例:DELETEFROMtabWHEREname=job;匹配到name列值為job的一條記錄,刪除它DELETE*FROM表名稱;#清空表
  3. UPDATE表名稱SET列名稱=新值WHERE列=值;例:UPDATEtabSETname=easonWHEREid=3;匹配到id列值為3的記錄,修改該記錄name的值為eason
  4. SELECT列名稱1,列名稱2...FROM表名稱;#指定列查詢SELECT*FROM表名稱;#查詢表所有內容SELECT列名稱FROM表名稱WHERE列運算子值;#例:SELECTnameFROMtabWHEREid<10;匹配到tab的id列小於10的記錄,查看這些記錄name列的值SELECTDISTINCT列名稱FROM表名稱;#刪除返回結果的重複項SELECT*FROM表名稱ORDERBY列名稱;#按照某一列排序(從小到大順序)SELECT*FROM表名稱ORDERBY列名稱DESC;#按照某一列排序(倒序)
18. 伺服器更換主板後linux無法識別網卡

系統載入網卡驅動後會去讀一個檔案,這個檔案是一個快取檔案,包含了網卡的mac地址,因為更換了主板,網卡的mac也變動了,但是這個檔案的mac還是沒有變,所以現有的網卡mac地址和檔案裡的不同,所以系統就拒絕啟動,把這個檔案刪除後重啟系統就可以了 操作為下:

>#mv/etc/udev/rules.d/70-persistent-net.rules/etc/udev/rules.d/70-persistent-net.rules.bak>#reboot#重啟後會產生新的快取檔案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.