Linux系統中的衝突問題及其應對策略(轉)
Linux系統中的衝突問題及其應對策略(轉)[@more@] Linux系統的穩定性記錄成為很多評論家們反對沖突不斷的Windows系統的一個很好的武器。然而,Linux系統的衝突問題雖然比較少,但是一旦在意想不到的情況下出現,也很容易使人們陷入困境。學習一些常用手段來預防這些這些衝突問題的發生是十分重要的,它可以幫助Linux的系統管理員們避免那些困境情況的出現。
在本站的採訪中,Mark Wilding和Dan Behman對於Linux系統衝突問題的預防及修復提供了一種比較簡捷明瞭的方法。他們兩人共同出版了一本新書——《Self-Service Linux: Mastering the Art of Problem Determination》。
一般認為,Linux伺服器系統是不存在衝突的,然而些許時候該系統的衝突、停滯問題的確存在。對於應用軟體層面的衝突或者停滯問題,與核心層面有何不同呢?
Mark Wilding: 應用軟體層面的衝突或者停滯問題只是限制於一個特定的執行緒或者程式。這種衝突或者停滯問題不會導致在該相同系統上執行的其他執行緒或者程式的衝突或者停滯。然而,如果是在核心層面上發生,那麼它將影響到該系統中執行的所有程式。
系統的衝突和停滯,這二者有什麼區別呢?
Dan Behman: 在任何一個層面,衝突和停滯這二者的屬性基本上是相同的。停滯發生在程式或執行緒受阻的時候,此時是由於某種鎖定或者某些硬體資源的繁忙,從而該程式或執行緒不得不等待。等待某些鎖定或資源的情況是經常發生的,但是隻有當這種鎖定或者資源最終無法實現的時候,才會引起系統停滯。
還有很重要的一點需要注意的是,停滯問題有時候可以提早的診斷出來。我的意思是,例如,某種資源的某個特定的時刻非常的繁忙,這是需要這種資源的程式或執行緒就需要等待非常長的一段時間,直至該資源空閒下來。使用者經常不瞭解資源的這種繁忙狀況,而只看到該程式在等待,所以他就認為系統發生了停滯,但實際上此時系統仍然在按照既定的工作流程進行,只是速度比較慢。
而系統的衝突問題與上述的停滯是不同的,它主要是由於某種不可知的硬體或軟體錯誤而導致的。當這種錯誤發生時,特殊的錯誤處理程式將很可能會呼叫那些診斷資訊及報告,從而有希望能夠追蹤到這種錯誤的原因。
衝突問題可以看作是某種致命的問題,它需要完結後才能夠進行分析。而停滯問題可以看作是實時的問題,它可以即時的進行分析、解決。
我知道Linux有一個最大的優勢就是在於它的原始碼的開放性;除此之外,還有別的原因致使Linux比其他作業系統的衝突問題容易解決嗎?
Behman: 伴隨著這種原始碼的開放性,在Linux系統的每一個層面都有著相當多的參閱檔案。同時,既然原始碼是開放的,那麼它的開發團隊也同樣是開放的。這樣以來,你就可以把所遇到的問題向Linux核心的開發者求助,當然包括最初的那些開發人員,甚至Linus Torvalds本人,而這所有的求助程式也僅僅是傳送一封電子郵件就可以了。而據我所知,Linux的這種能力是那些不開放原始碼的作業系統所缺少的。
處理停滯問題有那些困難和挑戰呢?
Wilding: 一個應用軟體的停滯問題是有著多種原因的,也包括那些可能由於核心空間的問題所引起的停滯。這意味著有時候這些問題不是開發者所能夠控制的。但是這正是Linux的優勢所在。所有的原始碼都是開放的,所以如果你遇到了某種程式的核心阻滯狀況,那麼就可以聯絡其原始碼,從而檢視該程式在核心中是如何作用的。然而,在大部分情況下,是沒有必要進行這麼深層次研究的。為了探究程式停滯的原因到底何在?應用軟體的開發者需要認真的研究這些軟體層面的狀況及證據(例如,堆疊的路徑等)。
在本站的採訪中,Mark Wilding和Dan Behman對於Linux系統衝突問題的預防及修復提供了一種比較簡捷明瞭的方法。他們兩人共同出版了一本新書——《Self-Service Linux: Mastering the Art of Problem Determination》。
一般認為,Linux伺服器系統是不存在衝突的,然而些許時候該系統的衝突、停滯問題的確存在。對於應用軟體層面的衝突或者停滯問題,與核心層面有何不同呢?
Mark Wilding: 應用軟體層面的衝突或者停滯問題只是限制於一個特定的執行緒或者程式。這種衝突或者停滯問題不會導致在該相同系統上執行的其他執行緒或者程式的衝突或者停滯。然而,如果是在核心層面上發生,那麼它將影響到該系統中執行的所有程式。
系統的衝突和停滯,這二者有什麼區別呢?
Dan Behman: 在任何一個層面,衝突和停滯這二者的屬性基本上是相同的。停滯發生在程式或執行緒受阻的時候,此時是由於某種鎖定或者某些硬體資源的繁忙,從而該程式或執行緒不得不等待。等待某些鎖定或資源的情況是經常發生的,但是隻有當這種鎖定或者資源最終無法實現的時候,才會引起系統停滯。
還有很重要的一點需要注意的是,停滯問題有時候可以提早的診斷出來。我的意思是,例如,某種資源的某個特定的時刻非常的繁忙,這是需要這種資源的程式或執行緒就需要等待非常長的一段時間,直至該資源空閒下來。使用者經常不瞭解資源的這種繁忙狀況,而只看到該程式在等待,所以他就認為系統發生了停滯,但實際上此時系統仍然在按照既定的工作流程進行,只是速度比較慢。
而系統的衝突問題與上述的停滯是不同的,它主要是由於某種不可知的硬體或軟體錯誤而導致的。當這種錯誤發生時,特殊的錯誤處理程式將很可能會呼叫那些診斷資訊及報告,從而有希望能夠追蹤到這種錯誤的原因。
衝突問題可以看作是某種致命的問題,它需要完結後才能夠進行分析。而停滯問題可以看作是實時的問題,它可以即時的進行分析、解決。
我知道Linux有一個最大的優勢就是在於它的原始碼的開放性;除此之外,還有別的原因致使Linux比其他作業系統的衝突問題容易解決嗎?
Behman: 伴隨著這種原始碼的開放性,在Linux系統的每一個層面都有著相當多的參閱檔案。同時,既然原始碼是開放的,那麼它的開發團隊也同樣是開放的。這樣以來,你就可以把所遇到的問題向Linux核心的開發者求助,當然包括最初的那些開發人員,甚至Linus Torvalds本人,而這所有的求助程式也僅僅是傳送一封電子郵件就可以了。而據我所知,Linux的這種能力是那些不開放原始碼的作業系統所缺少的。
處理停滯問題有那些困難和挑戰呢?
Wilding: 一個應用軟體的停滯問題是有著多種原因的,也包括那些可能由於核心空間的問題所引起的停滯。這意味著有時候這些問題不是開發者所能夠控制的。但是這正是Linux的優勢所在。所有的原始碼都是開放的,所以如果你遇到了某種程式的核心阻滯狀況,那麼就可以聯絡其原始碼,從而檢視該程式在核心中是如何作用的。然而,在大部分情況下,是沒有必要進行這麼深層次研究的。為了探究程式停滯的原因到底何在?應用軟體的開發者需要認真的研究這些軟體層面的狀況及證據(例如,堆疊的路徑等)。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-959903/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux中的衝突問題及其應對策略(轉)Linux
- Maven中解決依賴衝突的問題Maven
- 團隊間衝突管理策略(轉載)
- 程式衝突及其解決
- JAR衝突問題的解決JAR
- 杜布林衝突的系統分析模型(轉載)模型
- less中解決CSS3的calc衝突問題CSSS3
- git 解決版本衝突問題Git
- wsl docker 和 ubuntu 衝突問題DockerUbuntu
- 你還應該知道的雜湊衝突解決策略
- 對等複製中的衝突檢測
- 解決app中多語音出現的衝突問題APP
- ivew表格中render函式與tooltip:true衝突問題函式
- anaconda中python環境路徑衝突問題Python
- GO 問題之多版本衝突解決Go
- HTML中兩個tabs導航衝突問題的解決方法HTML
- 一個網路IP地址衝突的問題
- oracle客戶端同sap衝突的問題Oracle客戶端
- jQuey與json.jar的衝突問題JSONJAR
- mapstruct結合lombok使用的衝突問題StructLombok
- 韌性系統: 應對突發衝擊,兼顧未來發展(附下載)
- 安裝MySQL 5.6.10包衝突問題MySql
- android NestedScrollView和ListView衝突問題AndroidView
- PtrClassicFrameLayout與viewpager橫向滑動衝突的問題Viewpager
- 如何解決jQuery的美元$符號衝突問題jQuery符號
- jquery如何解決版本之間衝突的問題jQuery
- 如解決jquery與原生js衝突的問題jQueryJS
- 關於click事件與touch事件衝突的問題事件
- oracle 序列值導致的主鍵衝突問題Oracle
- 淺談雜湊法及其解決衝突的方法
- 如何避免javascript中的衝突JavaScript
- MySQL RR隔離級別的更新衝突策略MySql
- 聊天室原始碼開發中應對雜湊衝突的解決方案原始碼
- ERP系統中的物料管理問題(轉)
- SSIS 資料庫排序規則衝突問題資料庫排序
- ERP系統應用問題分析(轉)
- Git Worktree:解決分支依賴衝突的問題Git
- 衝突處理的方法(轉載)