❶ 中科創達 linux 面試怎麼樣
本文將帶來11個Linux基礎面試問題,希望對即將換工作或者正在找相關工作的朋友們一些幫助。
Q.1: Linux 操作系統的核心是什麼?
Shell
Kernel
Command
Script
Terminal
答: 內核(Kernel)是Linux 操作系統的核心。Shell是一個命令行解釋器,命令(Command)是針對計算機的指令,腳本(Script)是存儲在文件中的命令的集合,終端(Termial)是命令行介面。
Q.2: Linus Torvalds 都創建過什麼東東?
Fedora
Slackware
Debian
Gentoo
Linux
答: Linux Torvalds 創建了Linux,Linux是所有上述操作系統的核心,同樣也是其他一些Linux 操作系統的核心。
Q.3: Torvalds,使用C++語言編寫了Linux內核的大部分代碼,是這樣嗎?
答: 不! Linux內核包含了12,020,528行代碼,其中注釋佔去了2,151,595 行。因此剩下的9,868,933 行就是純代碼了。而其中7,896,318行都是用C語言寫的。
剩下的1,972,615行則是使用C++,匯編,Perl, Shell Script, Python, Bash Script, HTML, awk, yacc, lex, sed等。
註:代碼行數每天都在變動,平均每天超過3,509行代碼添加到內核。
Q.4: 起初,Linux 是為 Intel X86 架構編寫的,但是後來比其他操作系統移植的硬體平台都多,是這樣嗎 ?
答: 是的,我同意。Linux那時候是為x86機器寫的,而且現已移至到所有類型的平台。今天超過90%的超級計算機都在使用Linux。Linux在移動手機和平板電腦領域前景廣闊。事實上我們被Linux包圍著,遠程遙控,太空科學,研究,Web,桌面計算等等,舉之不盡。
Q.5: 編輯 Linux 內核合法嗎?
答: 是的,內核基於GPL發布,任何人都可以基於GPL允許的許可權隨意編輯內核。Linux內核屬於免費開源軟體(FOSS)。
Q.6: UNIX和Linux操作系統,本質上的不同在哪裡?
答: Linux操作系統屬於免費開源軟體,內核是由 Linus Torvalds 和開源社區共同開發的。當然我們不能說UNIX操作系統和免費開源軟體(FOSS)無關,BSD 就是基於 FOSS 范疇的 UNIX 的變種。而且大公司如 Apple,IBM,Oracle,HP等,都在為UNIX內核貢獻代碼。
Q. 7: 挑出來一個與眾不同的來.
HP-UX
AIX
OSX
Slackware
Solaris
答 : Slackware。 HP-UX, AIX, OSX, Solaris 分別是由 HP, IBM, APPLE, Oracle 開發的,並且都是UNIX的變種. Slackware 則是一個Linux操作系統.
Q.8: Linux 不會感染病毒嗎?
答 : 當然會! 這個地球上不存在不會感染病毒的操作系統。但是Linux以迄今為止病毒數量少而著稱,是的,甚至比UNIX還要少。Linux榜上有名的病毒只有60-100個,而且沒有一個病毒在傳播蔓延。Unix粗略估計有85-120個。
Q.9: Linux 屬於哪種類型的操作系統?
多用戶
多任務
多線程
以上所有
以上都不是
答 : 以上所有。Linux是一個支持多用戶,可以同時運行多個進程執行多個任務的操作系統。
Q.10: 一般的 Linux 命令的語法格式是:
command [選項] [參數]
command 選項 [參數]
command [選項] [參數]
command 選項 參數
答 : Linux 命令的正確語法是, Command [選項] [參數]。
Q.11: 挑出來一個與眾不同的來。
Vi
vim
cd
nano
答 : cd 與其他命令不同。Vi,vim和 nano都是編輯器,用於編輯文檔,而cd是用於切換目錄的命令。
就這么多了。上述問題你學到手幾個?效果如何?我們期待著你的評論。下周,會有新的問題,讓我們拭目以待。保持健康,鎖定鏈接,記得來Tecmint哦。
❷ 面試 linux 文件系統怎樣io到底層
前言:本文主要講解LinuxIO調度層的三種模式:cfp、deadline和noop,並給出各自的優化和適用場景建議。IO調度發生在Linux內核的IO調度層。這個層次是針對Linux的整體IO層次體系來說的。從read()或者write()系統調用的角度來說,Linux整體IO體系可以分為七層,它們分別是:VFS層:虛擬文件系統層。由於內核要跟多種文件系統打交道,而每一種文件系統所實現的數據結構和相關方法都可能不盡相同,所以,內核抽象了這一層,專門用來適配各種文件系統,並對外提供統一操作介面。文件系統層:不同的文件系統實現自己的操作過程,提供自己特有的特徵,具體不多說了,大家願意的話自己去看代碼即可。頁緩存層:負責真對page的緩存。通用塊層:由於絕大多數情況的io操作是跟塊設備打交道,所以Linux在此提供了一個類似vfs層的塊設備操作抽象層。下層對接各種不同屬性的塊設備,對上提供統一的BlockIO請求標准。IO調度層:因為絕大多數的塊設備都是類似磁碟這樣的設備,所以有必要根據這類設備的特點以及應用的不同特點來設置一些不同的調度演算法和隊列。以便在不同的應用環境下有針對性的提高磁碟的讀寫效率,這里就是大名鼎鼎的Linux電梯所起作用的地方。針對機械硬碟的各種調度方法就是在這實現的。塊設備驅動層:驅動層對外提供相對比較高級的設備操作介面,往往是C語言的,而下層對接設備本身的操作方法和規范。塊設備層:這層就是具體的物理設備了,定義了各種真對設備操作方法和規范。有一個已經整理好的[LinuxIO結構圖],非常經典,一圖勝千言:我們今天要研究的內容主要在IO調度這一層。它要解決的核心問題是,如何提高塊設備IO的整體性能?這一層也主要是針對機械硬碟結構而設計的。眾所周知,機械硬碟的存儲介質是磁碟,磁頭在碟片上移動進行磁軌定址,行為類似播放一張唱片。這種結構的特點是,順序訪問時吞吐量較高,但是如果一旦對碟片有隨機訪問,那麼大量的時間都會浪費在磁頭的移動上,這時候就會導致每次IO的響應時間變長,極大的降低IO的響應速度。磁頭在碟片上尋道的操作,類似電梯調度,實際上在最開始的時期,Linux把這個演算法命名為Linux電梯演算法,即:如果在尋道的過程中,能把順序路過的相關磁軌的數據請求都「順便」處理掉,那麼就可以在比較小影響響應速度的前提下,提高整體IO的吞吐量。這就是我們為什麼要設計IO調度演算法的原因。目前在內核中默認開啟了三種演算法/模式:noop,cfq和deadline。嚴格算應該是兩種:因為第一種叫做noop,就是空操作調度演算法,也就是沒有任何調度操作,並不對io請求進行排序,僅僅做適當的io合並的一個fifo隊列。目前內核中默認的調度演算法應該是cfq,叫做完全公平隊列調度。這個調度演算法人如其名,它試圖給所有進程提供一個完全公平的IO操作環境。註:請大家一定記住這個詞語,cfq,完全公平隊列調度,不然下文就沒法看了。cfq為每個進程創建一個同步IO調度隊列,並默認以時間片和請求數限定的方式分配IO資源,以此保證每個進程的IO資源佔用是公平的,cfq還實現了針對進程級別的優先順序調度,這個我們後面會詳細解釋。查看和修改IO調度演算法的方法是:cfq是通用伺服器比較好的IO調度演算法選擇,對桌面用戶也是比較好的選擇。但是對於很多IO壓力較大的場景就並不是很適應,尤其是IO壓力集中在某些進程上的場景。因為這種場景我們需要的滿足某個或者某幾個進程的IO響應速度,而不是讓所有的進程公平的使用IO,比如資料庫應用。deadline調度(最終期限調度)就是更適合上述場景的解決方案。deadline實現了四個隊列:其中兩個分別處理正常read和write,按扇區號排序,進行正常io的合並處理以提高吞吐量。因為IO請求可能會集中在某些磁碟位置,這樣會導致新來的請求一直被合並,可能會有其他磁碟位置的io請求被餓死。另外兩個處理超時read和write的隊列,按請求創建時間排序,如果有超時的請求出現,就放進這兩個隊列,調度演算法保證超時(達到最終期限時間)的隊列中的請求會優先被處理,防止請求被餓死。不久前,內核還是默認標配四種演算法,還有一種叫做as的演算法(Anticipatoryscheler),預測調度演算法。一個高大上的名字,搞得我一度認為Linux內核都會算命了。結果發現,無非是在基於deadline演算法做io調度的之前等一小會時間,如果這段時間內有可以合並的io請求到來,就可以合並處理,提高deadline調度的在順序讀寫情況下的數據吞吐量。其實這根本不是啥預測,我覺得不如叫撞大運調度演算法,當然這種策略在某些特定場景差效果不錯。但是在大多數場景下,這個調度不僅沒有提高吞吐量,還降低了響應速度,所以內核乾脆把它從默認配置里刪除了。畢竟Linux的宗旨是實用,而我們也就不再這個調度演算法上多費口舌了。1、cfq:完全公平隊列調度cfq是內核默認選擇的IO調度隊列,它在桌面應用場景以及大多數常見應用場景下都是很好的選擇。如何實現一個所謂的完全公平隊列(CompletelyFairQueueing)?首先我們要理解所謂的公平是對誰的公平?從操作系統的角度來說,產生操作行為的主體都是進程,所以這里的公平是針對每個進程而言的,我們要試圖讓進程可以公平的佔用IO資源。那麼如何讓進程公平的佔用IO資源?我們需要先理解什麼是IO資源。當我們衡量一個IO資源的時候,一般喜歡用的是兩個單位,一個是數據讀寫的帶寬,另一個是數據讀寫的IOPS。帶寬就是以時間為單位的讀寫數據量,比如,100Mbyte/s。而IOPS是以時間為單位的讀寫次數。在不同的讀寫情境下,這兩個單位的表現可能不一樣,但是可以確定的是,兩個單位的任何一個達到了性能上限,都會成為IO的瓶頸。從機械硬碟的結構考慮,如果讀寫是順序讀寫,那麼IO的表現是可以通過比較少的IOPS達到較大的帶寬,因為可以合並很多IO,也可以通過預讀等方式加速數據讀取效率。當IO的表現是偏向於隨機讀寫的時候,那麼IOPS就會變得更大,IO的請求的合並可能性下降,當每次io請求數據越少的時候,帶寬表現就會越低。從這里我們可以理解,針對進程的IO資源的主要表現形式有兩個:進程在單位時間內提交的IO請求個數和進程佔用IO的帶寬。其實無論哪個,都是跟進程分配的IO處理時間長度緊密相關的。有時業務可以在較少IOPS的情況下佔用較大帶寬,另外一些則可能在較大IOPS的情況下佔用較少帶寬,所以對進程佔用IO的時間進行調度才是相對最公平的。即,我不管你是IOPS高還是帶寬佔用高,到了時間咱就換下一個進程處理,你愛咋樣咋樣。所以,cfq就是試圖給所有進程分配等同的塊設備使用的時間片,進程在時間片內,可以將產生的IO請求提交給塊設備進行處理,時間片結束,進程的請求將排進它自己的隊列,等待下次調度的時候進行處理。這就是cfq的基本原理。當然,現實生活中不可能有真正的「公平」,常見的應用場景下,我們很肯能需要人為的對進程的IO佔用進行人為指定優先順序,這就像對進程的CPU佔用設置優先順序的概念一樣。所以,除了針對時間片進行公平隊列調度外,cfq還提供了優先順序支持。每個進程都可以設置一個IO優先順序,cfq會根據這個優先順序的設置情況作為調度時的重要參考因素。優先順序首先分成三大類:RT、BE、IDLE,它們分別是實時(RealTime)、最佳效果(BestTry)和閑置(Idle)三個類別,對每個類別的IO,cfq都使用不同的策略進行處理。另外,RT和BE類別中,分別又再劃分了8個子優先順序實現更細節的QOS需求,而IDLE只有一個子優先順序。另外,我們都知道內核默認對存儲的讀寫都是經過緩存(buffer/cache)的,在這種情況下,cfq是無法區分當前處理的請求是來自哪一個進程的。只有在進程使用同步方式(syncread或者syncwirte)或者直接IO(DirectIO)方式進行讀寫的時候,cfq才能區分出IO請求來自哪個進程。所以,除了針對每個進程實現的IO隊列以外,還實現了一個公共的隊列用來處理非同步請求。當前內核已經實現了針對IO資源的cgroup資源隔離,所以在以上體系的基礎上,cfq也實現了針對cgroup的調度支持。總的來說,cfq用了一系列的數據結構實現了以上所有復雜功能的支持,大家可以通過源代碼看到其相關實現,文件在源代碼目錄下的block/cfq-iosched.c。1.1cfq設計原理在此,我們對整體數據結構做一個簡要描述:首先,cfq通過一個叫做cfq_data的數據結構維護了整個調度器流程。在一個支持了cgroup功能的cfq中,全部進程被分成了若干個contralgroup進行管理。每個cgroup在cfq中都有一個cfq_group的結構進行描述,所有的cgroup都被作為一個調度對象放進一個紅黑樹中,並以vdisktime為key進行排序。vdisktime這個時間紀錄的是當前cgroup所佔用的io時間,每次對cgroup進行調度時,總是通過紅黑樹選擇當前vdisktime時間最少的cgroup進行處理,以保證所有cgroups之間的IO資源佔用「公平」。當然我們知道,cgroup是可以對blkio進行資源比例分配的,其作用原理就是,分配比例大的cgroup佔用vdisktime時間增長較慢,分配比例小的vdisktime時間增長較快,快慢與分配比例成正比。這樣就做到了不同的cgroup分配的IO比例不一樣,並且在cfq的角度看來依然是「公平「的。選擇好了需要處理的cgroup(cfq_group)之後,調度器需要決策選擇下一步的service_tree。service_tree這個數據結構對應的都是一系列的紅黑樹,主要目的是用來實現請求優先順序分類的,就是RT、BE、IDLE的分類。每一個cfq_group都維護了7個service_trees,其定義如下:其中service_tree_idle就是用來給IDLE類型的請求進行排隊用的紅黑樹。而上面二維數組,首先第一個維度針對RT和BE分別各實現了一個數組,每一個數組中都維護了三個紅黑樹,分別對應三種不同子類型的請求,分別是:SYNC、SYNC_NOIDLE以及ASYNC。我們可以認為SYNC相當於SYNC_IDLE並與SYNC_NOIDLE對應。idling是cfq在設計上為了盡量合並連續的IO請求以達到提高吞吐量的目的而加入的機制,我們可以理解為是一種「空轉」等待機制。空轉是指,當一個隊列處理一個請求結束後,會在發生調度之前空等一小會時間,如果下一個請求到來,則可以減少磁頭定址,繼續處理順序的IO請求。為了實現這個功能,cfq在service_tree這層數據結構這實現了SYNC隊列,如果請求是同步順序請求,就入隊這個servicetree,如果請求是同步隨機請求,則入隊SYNC_NOIDLE隊列,以判斷下一個請求是否是順序請求。所有的非同步寫操作請求將入隊ASYNC的servicetree,並且針對這個隊列沒有空轉等待機制。此外,cfq還對SSD這樣的硬碟有特殊調整,當cfq發現存儲設備是一個ssd硬碟這樣的隊列深度更大的設備時,所有針對單獨隊列的空轉都將不生效,所有的IO請求都將入隊SYNC_NOIDLE這個servicetree。每一個servicetree都對應了若干個cfq_queue隊列,每個cfq_queue隊列對應一個進程,這個我們後續再詳細說明。cfq_group還維護了一個在cgroup內部所有進程公用的非同步IO請求隊列,其結構如下:非同步請求也分成了RT、BE、IDLE這三類進行處理,每一類對應一個cfq_queue進行排隊。BE和RT也實現了優先順序的支持,每一個類型有IOPRIO_BE_NR這么多個優先順序,這個值定義為8,數組下標為0-7。我們目前分析的內核代碼版本為Linux4.4,可以看出,從cfq的角度來說,已經可以實現非同步IO的cgroup支持了,我們需要定義一下這里所謂非同步IO的含義,它僅僅表示從內存的buffer/cache中的數據同步到硬碟的IO請求,而不是aio(man7aio)或者linux的native非同步io以及lio機制,實際上這些所謂的「非同步」IO機制,在內核中都是同步實現的(本質上馮諾伊曼計算機沒有真正的「非同步」機制)。我們在上面已經說明過,由於進程正常情況下都是將數據先寫入buffer/cache,所以這種非同步IO都是統一由cfq_group中的async請求隊列處理的。那麼為什麼在上面的service_tree中還要實現和一個ASYNC的類型呢?這當然是為了支持區分進程的非同步IO並使之可以「完全公平」做准備嘍。實際上在最新的cgroupv2的blkio體系中,內核已經支持了針對bufferIO的cgroup限速支持,而以上這些可能容易混淆的一堆類型,都是在新的體系下需要用到的類型標記。新體系的復雜度更高了,功能也更加強大,但是大家先不要著急,正式的cgroupv2體系,在Linux4.5發布的時候會正式跟大家見面。我們繼續選擇service_tree的過程,三種優先順序類型的service_tree的選擇就是根據類型的優先順序來做選擇的,RT優先順序最高,BE其次,IDLE最低。就是說,RT里有,就會一直處理RT,RT沒了再處理BE。每個service_tree對應一個元素為cfq_queue排隊的紅黑樹,而每個cfq_queue就是內核為進程(線程)創建的請求隊列。每一個cfq_queue都會維護一個rb_key的變數,這個變數實際上就是這個隊列的IO服務時間(servicetime)。這里還是通過紅黑樹找到servicetime時間最短的那個cfq_queue進行服務,以保證「完全公平」。選擇好了cfq_queue之後,就要開始處理這個隊列里的IO請求了。這里的調度方式基本跟deadline類似。cfq_queue會對進入隊列的每一個請求進行兩次入隊,一個放進fifo中,另一個放進按訪問扇區順序作為key的紅黑樹中。默認從紅黑樹中取請求進行處理,當請求的延時時間達到deadline時,就從紅黑樹中取等待時間最長的進行處理,以保證請求不被餓死。這就是整個cfq的調度流程,當然其中還有很多細枝末節沒有交代,比如合並處理以及順序處理等等。1.2cfq的參數調整理解整個調度流程有助於我們決策如何調整cfq的相關參數。所有cfq的可調參數都可以在/sys/class/block/sda/queue/iosched/目錄下找到,當然,在你的系統上,請將sda替換為相應的磁碟名稱。我們來看一下都有什麼:這些參數部分是跟機械硬碟磁頭尋道方式有關的,如果其說明你看不懂,請先補充相關知識:back_seek_max:磁頭可以向後定址的最大范圍,默認值為16M。back_seek_penalty:向後定址的懲罰系數。這個值是跟向前定址進行比較的。以上兩個是為了防止磁頭尋道發生抖動而導致定址過慢而設置的。基本思路是這樣,一個io請求到來的時候,cfq會根據其定址位置預估一下其磁頭尋道成本。設置一個最大值back_seek_max,對於請求所訪問的扇區號在磁頭後方的請求,只要定址范圍沒有超過這個值,cfq會像向前定址的請求一樣處理它。再設置一個評估成本的系數back_seek_penalty,相對於磁頭向前定址,向後定址的距離為1/2(1/back_seek_penalty)時,cfq認為這兩個請求定址的代價是相同。這兩個參數實際上是cfq判斷請求合並處理的條件限制,凡事復合這個條件的請求,都會盡量在本次請求處理的時候一起合並處理。fifo_expire_async:設置非同步請求的超時時間。同步請求和非同步請求是區分不同隊列處理的,cfq在調度的時候一般情況都會優先處理同步請求,之後再處理非同步請求,除非非同步請求符合上述合並處理的條件限制范圍內。當本進程的隊列被調度時,cfq會優先檢查是否有非同步請求超時,就是超過fifo_expire_async參數的限制。如果有,則優先發送一個超時的請求,其餘請求仍然按照優先順序以及扇區編號大小來處理。fifo_expire_sync:這個參數跟上面的類似,區別是用來設置同步請求的超時時間。slice_idle:參數設置了一個等待時間。這讓cfq在切換cfq_queue或servicetree的時候等待一段時間,目的是提高機械硬碟的吞吐量。一般情況下,來自同一個cfq_queue或者servicetree的IO請求的定址局部性更好,所以這樣可以減少磁碟的定址次數。這個值在機械硬碟上默認為非零。當然在固態硬碟或者硬RAID設備上設置這個值為非零會降低存儲的效率,因為固態硬碟沒有磁頭定址這個概念,所以在這樣的設備上應該設置為0,關閉此功能。group_idle:這個參數也跟上一個參數類似,區別是當cfq要切換cfq_group的時候會等待一段時間。在cgroup的場景下,如果我們沿用slice_idle的方式,那麼空轉等待可能會在cgroup組內每個進程的cfq_queue切換時發生。這樣會如果這個進程一直有請求要處理的話,那麼直到這個cgroup的配額被耗盡,同組中的其它進程也可能無法被調度到。這樣會導致同組中的其它進程餓死而產生IO性能瓶頸。在這種情況下,我們可以將slice_idle=0而group_idle=8。這樣空轉等待就是以cgroup為單位進行的,而不是以cfq_queue的進程為單位進行,以防止上述問題產生。low_latency:這個是用來開啟或關閉cfq的低延時(lowlatency)模式的開關。當這個開關打開時,cfq將會根據target_latency的參數設置來對每一個進程的分片時間(slicetime)進行重新計算。這將有利於對吞吐量的公平(默認是對時間片分配的公平)。關閉這個參數(設置為0)將忽略target_latency的值。這將使系統中的進程完全按照時間片方式進行IO資源分配。這個開關默認是打開的。我們已經知道cfq設計上有「空轉」(idling)這個概念,目的是為了可以讓連續的讀寫操作盡可能多的合並處理,減少磁頭的定址操作以便增大吞吐量。如果有進程總是很快的進行順序讀寫,那麼它將因為cfq的空轉等待命中率很高而導致其它需要處理IO的進程響應速度下降,如果另一個需要調度的進程不會發出大量順序IO行為的話,系統中不同進程IO吞吐量的表現就會很不均衡。就比如,系統內存的cache中有很多臟頁要寫回時,桌面又要打開一個瀏覽器進行操作,這時臟頁寫回的後台行為就很可能會大量命中空轉時間,而導致瀏覽器的小量IO一直等待,讓用戶感覺瀏覽器運行響應速度變慢。這個low_latency主要是對這種情況進行優化的選項,當其打開時,系統會根據target_latency的配置對因為命中空轉而大量佔用IO吞吐量的進程進行限制,以達到不同進程IO佔用的吞吐量的相對均衡。這個開關比較合適在類似桌面應用的場景下打開。target_latency:當low_latency的值為開啟狀態時,cfq將根據這個值重新計算每個進程分配的IO時間片長度。quantum:這個參數用來設置每次從cfq_queue中處理多少個IO請求。在一個隊列處理事件周期中,超過這個數字的IO請求將不會被處理。這個參數只對同步的請求有效。slice_sync:當一個cfq_queue隊列被調度處理時,它可以被分配的處理總時間是通過這個值來作為一個計算參數指定的。公式為:time_slice=slice_sync+(slice_sync/5*(4-prio))。這個參數對同步請求有效。slice_async:這個值跟上一個類似,區別是對非同步請求有效。slice_async_rq:這個參數用來限制在一個slice的時間范圍內,一個隊列最多可以處理的非同步請求個數。請求被處理的最大個數還跟相關進程被設置的io優先順序有關。1.3cfq的IOPS模式我們已經知道,默認情況下cfq是以時間片方式支持的帶優先順序的調度來保證IO資源佔用的公平。高優先順序的進程將得到的時間片長度,而低優先順序的進程時間片相對較小。當我們的存儲是一個高速並且支持NCQ(原生指令隊列)的設備的時候,我們最好可以讓其可以從多個cfq隊列中處理多路的請求,以便提升NCQ的利用率。此時使用時間片的分配方式分配資源就顯得不合時宜了,因為基於時間片的分配,同一時刻最多能處理的請求隊列只有一個。這時,我們需要切換cfq的模式為IOPS模式。切換方式很簡單,就是將slice_idle=0即可。內核會自動檢測你的存儲設備是否支持NCQ,如果支持的話cfq會自動切換為IOPS模式。另外,在默認的基於優先順序的時間片方式下,我們可以使用ionice命令來調整進程的IO優先順序。進程默認分配的IO優先順序是根據進程的nice值計算而來的,計算方法可以在manionice中看到,這里不再廢話。2、deadline:最終期限調度deadline調度演算法相對cfq要簡單很多。其設計目標是:在保證請求按照設備扇區的順序進行訪問的同時,兼顧其它請求不被餓死,要在一個最終期限前被調度到。我們知道磁頭對磁碟的尋道是可以進行順序訪問和隨機訪問的,因為尋道延時時間的關系,順序訪問時IO的吞吐量更大,隨機訪問的吞吐量小。如果我們想為一個機械硬碟進行吞吐量優化的話,那麼就可以讓調度器按照盡量復合順序訪問的IO請求進行排序,之後請求以這樣的順序發送給硬碟,就可以使IO的吞吐量更大。但是這樣做也有另一個問題,就是如果此時出現了一個請求,它要訪問的磁軌離目前磁頭所在磁軌很遠,應用的請求又大量集中在目前磁軌附近。導致大量請求一直會被合並和插隊處理,而那個要訪問比較遠磁軌的請求將因為一直不能被調度而餓死。deadline就是這樣一種調度器,能在保證IO最大吞吐量的情況下,盡量使遠端請求在一個期限內被調度而不被餓死的調度器。
❸ 關於linux面試
哎喲 根據我被面試了N次的經驗.基本上都是.
1.你先做個自我介紹吧.
2.知道是應屆生或是歷屆生 問是否有工作經驗
以前在什麼單位工作過,或有什麼工作或實習經歷.
中間擔任什麼職位,負責的是什麼.
3.然後問你對這個職位是怎麼理解的,再問一些技術方面的問題.或者出個問題讓他(她)實際操作一邊.
4.問 對我們公司了解多少.
5.然後向他(她)介紹我們公司的一些基本情況
6.然後問他(她)待遇什麼有要求.
7.再告訴他(她)我們的待遇分配.
8.最主要的一個問題:你覺得你的優勢在哪.基本上所有面試官都會問.
這個問題在他介紹完自己之後問.
大致就這樣啦.結束之後讓他回去等通知.
PS:技術方面么,LINUX 企業接觸最多的是 伺服器(web.ftp.mail.dns.nis等等) 資料庫咯, 問他(她)這些方面了解多少 掌握的多少.
❹ 關於linux的面試通知,請教各位
現在Linux內核中很大一部分是驅動,如果全部編譯進內核,或者編譯成模塊,那麼整個系統是特別龐大的,這有可能影響到某些方面的性能如速度,吞吐量等,那麼就要對內核進行裁剪,把不需要的東西去掉。內核驅動中有專門用於LVM,RAID等的驅動,編譯內核的時候可以看到相關選項。
關於做哪些准備我也不大清楚,畢竟不做這一塊,給的建議是:
命令行肯定要熟悉,編譯內核步驟,怎麼使用你自己編譯的Linux內核,怎麼使用Linux備份數據,RAID級別,怎麼寫測試腳本等等。
❺ linux運維面試常見問題
linux運維面試常見問題
這里給大家整理了一些Linux系統運維相關的面試題,有些問題沒有標准答案,如下是我給大家整理的linux運維面試常見問題,希望對大家有所作用。
一、Linux操作系統知識
1.常見的Linux發行版本都有什麼?你最擅長哪一個?它的官網網站是什麼?說明你擅長哪一塊?
2.Linux開機啟動流程詳細步驟是什麼?系統安裝完,忘記密碼如何破解?
3.企業中Linux伺服器系統分區標準是什麼?(以硬碟為300G,內存16G為例)
4.某一天突然發現Linux系統文件只讀,該怎麼辦呢?完整操作步驟。
5.安裝一台系統使用DVD光碟安裝,如何安裝50台Linux系統如何安裝呢?思考一下。
6.用虛擬機安裝了一台Linux系統,突然想克隆一台伺服器,克隆後發現無法上網,如何解決?
7.Linux網卡配置文件路徑是什麼?要使伺服器上外網,必須滿足的條件有哪些?需要配置什麼?
8.一般可以使用什麼軟體遠程linux伺服器?通過什麼上傳文件和下載文件?
9./mnt目錄主要用於什麼?/root目錄跟root用戶有什麼關系?/根目錄與/boot目錄有什麼聯系?
10.某一天誤操作,執行了rm -rf * ,會有哪些情況發生?請舉例。
二、Linux命令及文件操作
1.在/tmp/目錄下創建test.txt文件,內容為: Hello,World! ,用一個命令寫出來。
2.給test.txt文件除所有者之外增加執行許可權,最終以數字寫出文件的許可權。
3.用vi命令編輯test.txt,如何跳轉到末行,首行,行首、行末,如何在游標行下一行插入,如何復制5行,刪除10行,查找jingfeng的字元、把jingfeng替換為jfe.net
4.查找linux系統下以txt結尾,30天沒有修改的文件大小大於20K同時具有執行許可權的文件並備份到/data/backup/目錄下。
5.當前test.txt所屬的用戶為root,組為abc,請將test.txt使擁有者為abc,組為root,寫出命令。
6.如何修改Linux啟動級別為字元模式並永久生效,如何臨時、永久關閉selinux及防火牆,請分別寫出操作方法。
7.每次開機在/tmp目錄下創建一個當天的日期文件夾(提示:當前日期表示的方法為:`date +%Y%m%d`)
8.如何查看文件內容,命令有哪些?查看文件第1行到3行,查看文件最後一行。
9.查看linux伺服器IP的命令,同時只顯示包含ip所在的行列印出來。
10.將普通用戶test加入root組的命令是?
三、Linux磁碟及軟體管理操作
1.如何添加一塊新的50G硬碟到linux伺服器系統作為單獨的分區,並正在使用?需要哪些操作步驟?
2.有個金士頓U盤,需要往伺服器/var/www/html/目錄下上傳一個index.html文件,如何操作並完成。
3.有一塊移動硬碟,上面有300G數據,如何快速cp到linux伺服器?
4.光碟裡面有一個httpd-2.2.15.xx.rpm包,如何掛載並安裝呢?
5.使用rpm命令安裝、卸載、刪除、更新ntp-0.7.12.x86_64.rpm這個軟包。
6./var/www/html/是網站的發布目錄,如何每天凌晨0點30對其進行自動備份,寫出操作步驟?
7.使用tar命令打包並壓縮/root目錄,然後移動到/tmp下,將其許可權設置其他人只讀。
8.Yum命令與rpm命令的區別?如何使用rpm安裝一個有依賴的包?
9.在這個月內,每天的早上 6 點到 12 點中,每隔 2 小時創建一個test.txt文件,內容為ok,如何實現?
10.將/usr/local/test目錄下大於100K 的文件轉移到/tmp 目錄下。
11.簡述 raid0 raid1 raid5三種工作模式的工作原理及特點。
12.如何查看佔用埠 8080 的進程。
四、Linux服務配置及管理
1.請寫出 apache2.X 版本的兩種工作模式,以及各自工作原理。如何查看apache 當前所支持的'模塊,並且查看是工作在哪種模式下?
2.Linux下nfs在客戶端無法掛載,請寫出排查步驟?
3.Linux下已經部署了dhcp伺服器,客戶端無法獲取的IP,如何解決?
4.常見的FTP軟體有哪些?Linux最常用的是?如何共享一個資源讓他人使用用戶名和密碼訪問?
5.如何禁止FTP使用匿名用戶登錄?命令行如何訪問ftp伺服器?
6.ApacheWEB伺服器的發布目錄在哪裡?
7.ApacheWEB伺服器有幾種工作模式,每種模式的簡單區別?
8.MySQL伺服器的用途是?Apache和mysql可以安裝在一台機器嗎?如何查看apache和mysql埠和進程?
9.如何在虛擬機上面部署4個網站,訪問的域名分別為www.a1.com test.a1.com www.a2.com test.a2.com?
10.假設 Apache 產生的日誌文件名為access_log,在 apache 正在運行時,執行命令 mv access_log access_log.bak,執行完後,請問新的 apache的日誌會列印到哪裡,為什麼?
11.我們都知道 FTP 協議有兩種工作模式,說說它們的大概的一個工作流程?
12.Linux內核引導時,從哪個文件中讀取要載入的文件系統。
13.寫出下面服務的常用埠ftp http dns snmp pop3、dhcp、nfs、mysql、samba等服務。
14.Mysql創建資料庫的命令,創建表的命令,插入語句的命令?
15.Mysql備份命令?Mysql如何給root用戶對jfe授權訪問,密碼為jfe.net,請寫出命令?
16.Mysql忘記密碼該如何操作呢?
17.Linux運維工程師都需要具備哪些技能和職業品質?
;❻ Linux運維工程師會面試哪些
知識上面的答主說的很精準了,我來說說技巧。我本身是一名HR,負責新盟教育的Linux講師招聘,所以我需要懂Linux基礎知識,方便對面試者提問。
首先,我會就應聘者簡歷上填寫的內容進行,提問,一般會包括拿到的證書,有無經驗,熟悉的技能,然後我的同事會提問專業內容。比如你寫了擅長MySQL ,Jquery,bootstrap,那麼我們就會提問這些內容,當然都不會特別困難,只需要證明你確實知道,不是在吹噓就行。
其次我們會就崗位需求進行提問,我會問到加班,出差,經驗等問題,我的同事會問會不會某些特定要求的內容,比如zabbix、nagios、elk等……
如果不會,請千萬不要吹牛,我們會問到說明我們肯定知道這玩意,如果吹牛肯定一眼就看出來,然後三兩句話把你送走這樣。
如果你一面過了,要准備二面,那麼請你至少,在二面之前,把我們提到的崗位要求的內容了解一下,避免我們再次提到的時候還是不知道,這樣很影響面試結果。
❼ linux的支持文件系統有哪些 面試
1、Linux操作系統安裝過程中的文件系統的選擇;
1)ext2 文件系統; ext2文件系統應該說是Linux正宗的文件系統,早期的Linux都是用ext2,但隨著技術的發展,大多Linux的發行版本目前並不用這個文件系統了;比如Redhat和Fedora大多都建議用ext3 ,ext3文件系統是由ext2發展而來的。對於Linux新手,我們還是建議您不要用ext2文件系統;ext2支持undelete(反刪除),如果您誤刪除文件,有時是可以恢復的,但操作上比較麻煩; ext2支持大文件; ext2文件系統的官方主頁是: http://e2fsprogs.sourceforge.net/ext2.html 2)ext3 文件系統:是由ext2文件系統發展而來; ext3 is a Journalizing file system for Linux(ext3是一個用於Linux的日誌文件系統),ext3支持大文件;但不支持反刪除(undelete)操作; Redhat和Fedora都力挺ext3;至於ext3文件系統的更多特性,請訪問《Linux文件系統(filesystem)資源索引》 ;
3)reiserfs 文件系統; reiserfs文件系統是一款優秀的文件系統,支持大文件,支持反刪除(undelete);在我的測試ext2、reiserfs反刪除文件功能的過程中,我發現reiserfs文件系統表現的最為優秀,幾乎能恢復90%以上的數據,有時能恢復到100%;操作反刪除比較容易;reiserfs支持大文件;
4)、Linux 支持的文件系統; Linux目前幾乎支持所有的Unix類的文件系統,除了我們在安裝Linux操作系統時所要選擇的ext3、reiserfs和ext2外,還支持蘋果MACOS的HFS,也支持其它Unix操作系統的文件系統,比如XFS、JFS、Minix fs及UFS等,您可以在kernel的源碼中查看;如果您想要讓系統支持哪些的文件系統得需要把該文件系統編譯成模塊或置入內核; 當然Linux也支持Windows文件系統NTFST和fat,但不支持NTFS文件系統的寫入;支持fat文件系統的讀寫 Linux也支持網路文件系統,比如NFS等;
❽ Linux運維工程師面試題庫及答案
Linux運維工程師面試題庫及答案
為幫助大家順利通過Linux面試,我為大家分享的是Linux面試各部分知識題庫,希望對大家復習有所幫助!
Linux操作系統知識
1.常見的Linux發行版本都有什麼?你最擅長哪一個?它的網站網站是什麼?說明你擅長哪一塊?
2.Linux開機啟動流程詳細步驟是什麼?系統安裝完,忘記密碼如何破解?
3.企業中Linux伺服器系統分區標準是什麼?(硬碟為300G,內存16G)
4.某一天突然發現Linux系統文件只讀,該怎麼辦呢?完整操作步驟。
5.安裝一台系統使用DVD光碟安裝,如何安裝50台Linux系統如何安裝呢?思考一下。
6.用虛擬機安裝了一台Linux系統,突然想克隆一台伺服器,克隆後發現無法上網,如何解決?
7.Linux網卡配置文件路徑是什麼?要使伺服器上外網,必須滿足的條件有哪些?需要配置什麼?
8.一般可以使用什麼軟體遠程linux伺服器?通過什麼上傳文件和下載文件?
9./mnt目錄主要用於什麼?/root目錄跟root用戶有什麼關系?/根目錄與/boot目錄有什麼聯系?
10.某一天誤操作,執行了rm -rf * ,會有哪些情況發生?請舉例。
Linux命令及文件操作
1.在/tmp/目錄下創建test.txt文件,內容為: Hello,World! ,用一個命令寫出來。
2.給test.txt文件除所有者之外增加執行許可權,最終以數字寫出文件的許可權。
3.用vi命令編輯test.txt,如何跳轉到末行,首行,行首、行末,如何在游標行下一行插入,如何復制5行,刪除10行,查找jingfeng的字元、把jingfeng替換為jfe.net
4.查找linux系統下以txt結尾,30天沒有修改的文件大小大於20K同時具有執行許可權的文件並備份到/data/backup/目錄下。
5.當前test.txt所屬的用戶為root,組為abc,請將test.txt使擁有者為abc,組為root,寫出命令。
6.如何修改Linux啟動級別為字元模式並永久生效,如何臨時、永久關閉selinux及防火牆,請分別寫出操作方法。
7.每次開機在/tmp目錄下創建一個當天的日期文件夾(提示:當前日期表示的方法為:`date +%Y%m%d`)
8.如何查看文件內容,命令有哪些?查看文件第1行到3行,查看文件最後一行。
9.查看linux伺服器IP的命令,同時只顯示包含ip所在的行列印出來。
10.將普通用戶test加入root組的命令是?
Linux磁碟及軟體管理操作
1.如何添加一塊新的50G硬碟到linux伺服器系統作為單獨的'分區,並正在使用?需要哪些操作步驟?
2.有個金士頓U盤,需要往伺服器/var/www/html/目錄下上傳一個index.html文件,如何操作並完成。
3.有一塊移動硬碟,上面有300G數據,如何快速cp到linux伺服器?
4.光碟裡面有一個httpd-2.2.15.xx.rpm包,如何掛載並安裝呢?
5.使用rpm命令安裝、卸載、刪除、更新ntp-0.7.12.x86_64.rpm這個軟包。
6./var/www/html/是網站的發布目錄,如何每天凌晨0點30對其進行自動備份,寫出操作步驟?
7.使用tar命令打包並壓縮/root目錄,然後移動到/tmp下,將其許可權設置其他人只讀。
8.Yum命令與rpm命令的區別?如何使用rpm安裝一個有依賴的包?
9.在這個月內,每天的早上 6 點到 12 點中,每隔 2 小時創建一個test.txt文件,內容為ok,如何實現?
10.將/usr/local/test目錄下大於100K 的文件轉移到/tmp 目錄下。
11.簡述 raid0 raid1 raid5三種工作模式的工作原理及特點。
12.如何查看佔用埠 8080 的進程。
Linux服務配置及管理
1.請寫出 apache2.X 版本的兩種工作模式,以及各自工作原理。如何查看apache 當前所支持的模塊,並且查看是工作在哪種模式下?
2.Linux下nfs在客戶端無法掛載,請寫出排查步驟?
3.Linux下已經部署了dhcp伺服器,客戶端無法獲取的IP,如何解決?
4.常見的FTP軟體有哪些?Linux最常用的是?如何共享一個資源讓他人使用用戶名和密碼訪問?
5.如何禁止FTP使用匿名用戶登錄?命令行如何訪問ftp伺服器?
6.ApacheWEB伺服器的發布目錄在哪裡?
7.ApacheWEB伺服器有幾種工作模式,每種模式的簡單區別?
8.MySQL伺服器的用途是?Apache和mysql可以安裝在一台機器嗎?如何查看apache和mysql埠和進程?
9.如何在虛擬機上面部署4個網站,訪問的域名分別為www.a1.com test.a1.com www.a2.com test.a2.com?
10.假設 Apache 產生的日誌文件名為access_log,在 apache 正在運行時,執行命令 mv access_log access_log.bak,執行完後,請問新的 apache的日誌會列印到哪裡,為什麼?
11.我們都知道 FTP 協議有兩種工作模式,說說它們的大概的一個工作流程?
12.Linux內核引導時,從哪個文件中讀取要載入的文件系統。
13.寫出下面服務的常用埠ftp http dns snmp pop3、dhcp、nfs、mysql、samba等服務。
14.Mysql創建資料庫的命令,創建表的命令,插入語句的命令?
15.Mysql備份命令?Mysql如何給root用戶對jfe授權訪問,密碼為jfe.net,請寫出命令?
16.Mysql忘記密碼該如何操作呢?
17.Linux運維工程師都需要具備哪些技能和職業品質?
;❾ 運維必須掌握的Linux面試題
1、解釋下什麼是GPL,GNU,自由軟體?
GPL:(通用公共許可證):一種授權,任何人有權取得、修改、重新發布自由軟體的權力。
GNU:(革奴計劃):目標是創建一套完全自由、開放的的操作系統。
自由軟體:是一種可以不受限制地自由使用、復制、研究、修改和分發的軟體。主要許可證有GPL和BSD許可證兩種。
2、linux系統里,buffer和cache如何區分?
buffer和cache都是內存中的一塊區域,
當CPU需要寫數據到磁碟時,由於磁碟速度比較慢,所以CPU先把數據存進buffer,
然後CPU去執行其他任務,buffer中的數據會定期寫入磁碟;
當CPU需要從磁碟讀入數據時,由於磁碟速度比較慢,
可以把即將用到的數據提前存入cache,CPU直接從Cache中拿數據要快的多。
3、描述Linux運行級別0-6的各自含義
0:關機模式
1:單用戶模式<==破解root密碼
2:無網路支持的多用戶模式
3:有網路支持的多用戶模式(文本模式,工作中最常用的模式)
4:保留,未使用
5:有網路支持的X-windows支持多用戶模式(桌面)
6: 重新引導系統,即重啟
4、描述Linux系統從開機到登陸界面的啟動過程
⑴開機BIOS自檢,載入硬碟。
⑵讀取MBR,MBR引導。
⑶grub引導菜單(Boot Loader)。
⑷載入內核kernel。
⑸啟動init進程,依據inittab文件設定運行級別
⑹init進程,執行rc.sysinit文件。
⑺啟動內核模塊,執行不同級別的腳本程序。
⑻執行/etc/rc.d/rc.local
⑼啟動mingetty,進入系統登陸界面。
5、描述Linux下軟鏈接和硬鏈接的區別
在Linux系統中,鏈接分為兩種,一種是硬鏈接(Hard link),另一種稱為符號鏈接或軟鏈接(Symbolic Link)。
①默認不帶參數的情況下,ln創建的是硬鏈接,帶-s參數的ln命令創建的是軟鏈接。
②硬鏈接文件與源文件的inode節點號相同,而軟鏈接文件的inode節點號,與源文件不同,
③ln命令不能對目錄創建硬鏈接,但可以創建軟鏈接。對目錄的軟鏈接會經常使用到。
④刪除軟鏈接文件,對源文件和硬鏈接文件無任何影響。
⑤刪除文件的硬鏈接文件,對源文件及軟鏈接文件無任何影響。
⑥刪除鏈接文件的源文件,對硬鏈接文件無影響,會導致其軟鏈接失效(紅底白字閃爍狀)。
⑦同時刪除源文件及其硬鏈接文件,整個文件才會被真正的刪除。
⑧很多硬體設備的快照功能,使用的就是類似硬鏈接的原理。
⑨軟鏈接可以跨文件系統,硬鏈接不可以跨文件系統。
6、shell腳本中「$?」標記的用途是什麼?
在寫一個shell腳本時,如果你想要檢查前一命令是否執行成功,在if條件中使用「 ?
0
如果結束狀態是0,說明前一個命令執行成功。
root@localhost:~# ls /usr/bin/share
ls: cannot access /usr/bin/share: No such file or directory
root@localhost:~# echo $?
2
如果結束狀態不是0,說明命令執行失敗。
7、如何讓history命令顯示具體時間?
$ HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S"
$ export HISTTIMEFORMAT
重新開機後會還原,可以寫/etc/profile
8、用shell統計ip訪問情況,要求分析nginx訪問日誌,找出訪問頁面數量在前10位的IP數。以下是nginx的訪問日誌節選
202.101.129.218- - [26/Mar/2006:23:59:55 +0800] "GET /online/stat_inst.php?pid=d065HTTP/1.1" 302 20-"-" "-" "Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1)"
1}' access.log |sort|uniq -c |head -n 10
31 202.101.129.218
21 123.93.29.11
11 13.92.19.31
9、將本地的80埠的請求轉發到8080埠,本機地址10.0.0.254,寫出命令
$ iptables -t nat -A PREROUTING -d 10.0.0.254 -p tcp --dprot 80 -j DNAT --to-destination 10.0.0.254:8080
10、Load過高的可能性有哪些?
排查思路:
其他經驗:
cpu load的飆升,一方面可能和full gc的次數增大有關,一方面可能和死循環有關
11、描述/etc/fstab 文件中每個欄位的含義?
(1)第一列:將被載入的文件系統名;
(2)第二列:該文件系統的安裝點;
(3)第三列:文件系統的類型;
(4)第四列:設置參數;
(5)第五列:供備份程序確定上次備份距現在的天數;
(6)第六列:在系統引導時檢測文件系統的順序。
12、 如何在打包時排除指定目錄?
$ tar --exclude=/home/dmtsai --exclude= .tar -zcvf myfile.tar.gz /home/ /etc
mysql> update user set password=password(�') where user='root'
❿ Linux系統工程師面試題附答案(2)
Linux系統工程師面試題(附答案)
prefork的特點是:(預派生)
1.這種模式可以不必在請求到來時再產生新的進程,從而減小了系統開銷
2.可以防止意外的內存泄漏
3.在伺服器負載下降的時候會自動減少子進程數
worker的特點是:支持混合的多線程多進程的多路處理模塊
如果對於一個高流量的HTTP服務 器,worker MPM是一個比較好的選擇,因為worker MPM佔用的內存要比prefork要小。
15.名詞解釋 HDLC,VTP,OSPF,RIP,DDOS,system V,GNU,netscreen,ssh,smartd,apache,WAIT_TIME 等等。
16.編寫shell腳本獲取本機的網路地址。比如:本機的ip地址是:192.168.100.2/255.255.255.0,那麼它的網路地址是
192.168.100.1/255.255.255.0
方法一:
#!/bin/bash
#This script print ip and network
file=”/etc/sysconfig/network-scripts/ifcfg-eth0″
if [ -f $file ] ;then
IP=`grep “IPADDR” $file|awk -F”=” ‘{ print $2 }’`
MASK=`grep “NETMASK” $file|awk -F”=” ‘{ print $2 }’`
echo “$IP/$MASK”
exit 1
fi
方法二:
#!/bin/bash
#This programm will printf ip/network
#
IP=`ifconfig eth0 |grep ‘inet ‘ |sed ‘s/^.*addr://g’|sed ‘s/ Bcast.*$//g’`
NETMASK=`ifconfig eth0 |grep ‘inet ‘|sed ‘s/^.*Mask://g’`
echo “$IP/$NETMASK”
exit
17.在命令行下發一郵件,發件人:123@abc.com, 收信人:abc@xyz.com
二、簡述題:
1.linux下如何改IP,主機名,DNS
2.linux下如何添加路由
3.簡述linux下編譯內核的意義與步驟
4.簡述Linux啟動過程
5.簡述DDOS攻擊的原理
6.簡述Tcp三次握手的過程
7.簡述VPN,常見有哪幾種?
三、設計題:
1.系統設計
請考慮以下系統的設計. 您可以翻閱資料,查詢任何您有幫助的資料、指南等。
您有的資源:
8台安裝Linux (2.6內核) 的雙網卡PC伺服器以及相關開源軟體,交換機
Apache 2.2.x
Tomcat 5.5.X
資料庫系統
最多8個Internet IP地址,請您設計一個系統:
1、使用雙apache web server前端;
2、採用AJP連接後段的3台Tomcat應用伺服器,這些tomcat被配置成cluster, 因此需要考慮apache對後端的分配,分配採用完全平衡的方法;配置使用cookie來實現session stickness;
3、1台資料庫伺服器只有tomcat才需要連接,也不需要對Internet提供服務。
4、考慮系統的安全性和維護方便性;
5、通過rewrite規則配置把下屬URL規則改寫成友好的URL
http://server/webapp/getinfo?id=XXXX&name=YYYY –> http://server/getinfo/YYYY/XXXX
您需要提交
1、伺服器規劃,包括:
*網路結構圖
*每台機器的IP地址分配
*每台機器上運行的關鍵軟體
*您從安全性和維護性方面的考慮
2、Apache的以下配置文件給我們:
*extra/http-proxy-ajp.conf
*extra/http-rewrite.conf
2.你可以採取任何設備和不同操 作系統伺服器設計對兩台WWW伺服器和兩台FTP伺服器做負載均衡,用網路拓撲圖表示並加以說明!(方法越多越好)
第一種方法: DNS輪巡
www1 IN A 192.168.1.1
www2 IN A 192.168.1.2
www3 IN A 192.168.1.3
ftp1 IN A 192.1.1.4
ftp2 IN A 192.1.1.5
ftp3 IN A 192.1.1.6
www IN CNAME www1
www IN CNAME www2
www IN CNAME www3
ftp IN CNAME ftp1
ftp IN CNAME ftp2
ftp IN CNAME ftp3
;