1. 程式人生 > >運維的一些面試題整理

運維的一些面試題整理

  1. git commit push:本地庫,遠端庫
  2. kill -9 kill:強制關閉,要求自行關閉
  3. grep 不區分大小寫:grep –i
  4. raid陣列:

raid0:兩個磁碟串聯從而加速,但不安全

raid1:不串聯,安全性上升,但利用率很低

raid5:奇偶校驗,妥協了安全與速度

raid10:最少四個硬碟,不超過50%不會損壞資料,高速+高安全+更多錢

  1. 怎麼檢視服務佔用埠:

ps –ef | grep tomcat

netstat –nap | grep 1095

根據埠號檢視程序:netstat –tunlp | grep 1095

殺死程序:kill -9 1095

  1. 分散式檔案系統:

將固定於某個地點的某個檔案系統,擴充套件到任意多個地點/多個檔案系統,眾多的節點組成一個檔案系統網路,就是用NFS構建了一個網路檔案系統

  1. pv和uv:pv是頁面訪問量,uv:獨立訪客
  2. Linux開機啟動過程:

POST(加電自檢)-->由BIOS決定啟動裝置次序-->MBR(bootloader)-->解壓kernel,載入Kernel到記憶體-->載入init程序(/etc/inittab)

  1. 垃圾回收:
  1. 引用計數機制:創造一個計數用的欄位,每當一個物件有新引用時,+1,引用失效時,-1,=0時回收物件,釋放該物件佔用的空間
  2. 標記清楚演算法:是一種基於追蹤回收(tracing GC)技術實現的垃圾回收演算法。它分為兩個階段:第一階段是標記階段,GC會把所有的『活動物件』打上標記,第二階段是把那些沒有標記的物件『非活動物件』進行回收。(由根物件出發,沿著有向邊遍歷物件)
  3. 分代回收是一種以空間換時間的操作方式,Python將記憶體根據物件的存活時間劃分為不同的集合,每個集合稱為一個代,Python將記憶體分為了3“代”,分別為年輕代(第0代)、中年代(第1代)、老年代(第2代),他們對應的是3個連結串列,它們的垃圾收集頻率與物件的存活時間的增大而減小。新建立的物件都會分配在年輕代,年輕代連結串列的總數達到上限時,Python垃圾收集機制就會被觸發,把那些可以被回收的物件回收掉,而那些不會回收的物件就會被移到中年代去,依此類推,老年代中的物件是存活時間最久的物件,甚至是存活於整個系統的生命週期內。
  1. range和xrange:xrange效能要好一些,因為不會上來就佔用很大空間
  2. Django:
  3. 迭代器:
  4. 生成器:
  5. 修飾器:
  6. 元組,列表:列表可變,但元組不可變
  7. 程序vs執行緒:

我的理解是程序是指在系統中正在執行的一個應用程式;程式一旦執行就是程序,或者更專業化來說:程序是指程式執行時的一個例項。           執行緒是程序的一個實體。        程序——資源分配的最小單位,執行緒——程式執行的最小單位。

第一:因為程序擁有獨立的堆疊空間和資料段,所以每當啟動一個新的程序必須分配給它獨立的地址空間,建立眾多的資料表來維護它的程式碼段、堆疊段和資料段,這對於多程序來說十分“奢侈”,系統開銷比較大,而執行緒不一樣,執行緒擁有獨立的堆疊空間,但是共享資料段,它們彼此之間使用相同的地址空間,共享大部分資料,比程序更節儉,開銷比較小,切換速度也比程序快,效率高,但是正由於程序之間獨立的特點,使得程序安全性比較高,也因為程序有獨立的地址空間,一個程序崩潰後,在保護模式下不會對其它程序產生影響,而執行緒只是一個程序中的不同執行路徑。一個執行緒死掉就等於整個程序死掉。

第二:體現在通訊機制上面,正因為程序之間互不干擾,相互獨立,程序的通訊機制相對很複雜,譬如管道,訊號,訊息佇列,共享記憶體,套接字等通訊機制,而執行緒由於共享資料段所以通訊機制很方便。。

3.屬於同一個程序的所有執行緒共享該程序的所有資源,包括檔案描述符。而不同過的程序相互獨立。

4.執行緒又稱為輕量級程序,程序有程序控制塊,執行緒有執行緒控制塊;

5.執行緒必定也只能屬於一個程序,而程序可以擁有多個執行緒而且至少擁有一個執行緒;

第四:體現在程式結構上,舉一個簡明易懂的列子:當我們使用程序的時候,我們不自主的使用if else巢狀來判斷pid,使得程式結構繁瑣,但是當我們使用執行緒的時候,基本上可以甩掉它,當然程式內部執行功能單元需要使用的時候還是要使用,所以執行緒對程式結構的改善有很大幫助。

程序與執行緒的選擇取決以下幾點:

1、需要頻繁建立銷燬的優先使用執行緒;因為對程序來說建立和銷燬一個程序代價是很大的。

2、執行緒的切換速度快,所以在需要大量計算,切換頻繁時用執行緒,還有耗時的操作使用執行緒可提高應用程式的響應

3、因為對CPU系統的效率使用上執行緒更佔優,所以可能要發展到多機分佈的用程序,多核分佈用執行緒;

4、並行操作時使用執行緒,如C/S架構的伺服器端併發執行緒響應使用者的請求;

5、需要更穩定安全時,適合選擇程序;需要速度時,選擇執行緒更好。

  1. 三次握手四次揮手:
  2. bgp,rip協議:

BGP:邊界閘道器協議

而BGP是自治系統間相互訪問所使用的,它涉及到ISP運營商。可以理解為一個自治系統就是一臺大路由器,這些路由器中間跑的協議就是BGP。這裡的自治系統只的是物理意義上的自治系統例如聯通網 電信網,網際網路之間

rip:路由資訊協議,不同廠商的路由可以通過rip連線,配置簡單,像問路,小網際網路

ospf:開放最短路徑優先,用於計算最短路徑,減少流量消耗和浪費,大網際網路

  1. udp改tcp:
  2. udp、tcp區別:

1、TCP面向連線(如打電話要先撥號建立連線);UDP是無連線的,即傳送資料之前不需要建立連線
 

2、TCP提供可靠的服務。也就是說,通過TCP連線傳送的資料,無差錯,不丟失,不重複,且按序到達;UDP盡最大努力交付,即不保證可靠交付

Tcp通過校驗和,重傳控制,序號標識,滑動視窗、確認應答實現可靠傳輸。如丟包時的重發控制,還可以對次序亂掉的分包進行順序控制。

3、UDP具有較好的實時性,工作效率比TCP高,適用於對高速傳輸和實時性有較高的通訊或廣播通訊。

4.每一條TCP連線只能是點到點的;UDP支援一對一,一對多,多對一和多對多的互動通訊

5、TCP對系統資源要求較多,UDP對系統資源要求較少。