內容簡介
在當前復雜的大規模係統場景下,好的應用程序性能比以往任何時候都更重要,但是獲得這樣的性能也更加睏難。Linux由於其開源特性,已經具有一係列優化工具,隻是這些工具散布在互聯網上,工具的相關文檔也很少,隻有少數專傢知道如何綜閤使用這些工具來解決實際問題。基於此,菲利普G.伊佐特著賀蓮、龔奕利譯的《Linux性能優化/LinuxUnix技術叢書》介紹瞭當前常用的Linux優化工具,展示瞭它們是如何行之有效地提升整體應用程序性能的。通過真實案例,嚮開發人員演示瞭怎樣定位影響性能的源代碼行,使係統管理人員和應用程序開發人員能夠迅速深入係統瓶頸,實施解決方案。
通過閱讀《Linux/Unix技術叢書:Linux性能優化》,你能夠:
在不熟悉底層係統的情況下,快速識彆係統瓶頸。
針對具體問題,找到並選擇正確的性能工具。
深入理解係統性能及優化問題。
掌握優化係統CPU、用戶CPU、內存、網絡I/O和磁盤I/O的方法,並瞭解它們之間的關係。
掌握修復計算密集型(CPU-bound)、延遲敏感和I/O密集型(I/O—bound)的應用程序的方法,跟隨案例輕鬆地配置自己的環境。
安裝並使用Linux係統的高級全係統分析器——oprofile。
無論讀者的技術背景如何,性能優化的新手都能通過學習《Linux/Unix技術叢書:Linux性能優化》,掌握一係列清晰實用的優化原則和策略,並獲得豐富的Linux知識,解決Linux係統和應用程序的優化問題,增加商業價值並提高用戶滿意度。
作者簡介
菲利普G.伊佐特,業內知名的Linux性能優化專傢,擁有20多年Linux和Unix係統性能優化經驗。他曾經用6年時間為Compaq公司的Alpha性能團隊設計Linux性能優化工具。此外,他協助Compaq公司製定瞭SPECCPU2000及後繼版本的CPU性能度量標準。他還長期從事開發人員和係統管理者的Linux性能優化培訓工作。
內頁插圖
目錄
譯者序
前言
緻謝
第1章 性能追蹤建議
1.1 常用建議
1.1.1 記大量的筆記(記錄所有的事情)
1.1.2 自動執行重復任務
1.1.3 盡可能選擇低開銷工具
1.1.4 使用多個工具來搞清楚問題
1.1.5 相信你的工具
1.1.6 利用其他人的經驗(慎重)
1.2 性能調查概要
1.2.1 找到指標、基綫和目標
1.2.2 追蹤近似問題
1.2.3 查看問題是否早已解決
1.2.4 項目開始(啓動調查)
1.2.5 記錄,記錄,記錄
1.3 本章小結
第2章 性能工具:係統CPU
2.1 CPU性能統計信息
2.1.1 運行隊列統計
2.1.2 上下文切換
2.1.3 中斷
2.1.4 CPU使用率
2.2 Linux性能工具:CPU
2.2.1 vmstat(虛擬內存統計)
2.2.2 top(2.0.x版本)
2.2.3 top(3.x.x版本)
2.2.4 procinfo(從/proc文件係統顯示信息)
2.2.5 gnome-system-monitor
2.2.6 mpstat(多處理器統計)
2.2.7 sar(係統活動報告)
2.2.8 oprofile
2.3 本章小結
第3章 性能工具:係統內存
3.1 內存性能統計信息
3.1.1 內存子係統和性能
3.1.2 內存子係統(虛擬存儲器)
3.2 Linux性能工具:CPU與內存
3.2.1 vmstat (II)
……
第4章 性能工具:特定進程CPU
第5章 性能工具:特定進程內存
第6章 性能工具:磁盤I/O
第7章 性能工具:網絡
第8章 實用工具:性能工具助手
第9章 使用性能工具發現問題
第10章 性能追蹤1:受CPU限製的應用程序(GIMP)
第11章 性能追蹤2:延遲敏感的應用程序(nautilus)
第12章 性能追蹤3:係統級遲緩(prelink)
第13章 性能工具:下一步是什麼
附錄A 性能工具的位置
附錄B 安裝oprofile
前言/序言
為什麼性能很重要?
如果你曾經坐等計算機完成工作(同時還伴隨著敲打桌麵、詛咒和好奇:“啥事兒要花這麼長的時間?”),你就會知道有個速度快且性能優化良好的計算機係統是多麼重要。盡管不是所有的性能問題都能輕易得到解決,但是,瞭解係統工作緩慢的原因,就意味著有可能采用不同的解決方法:修復軟件問題,升級慢速硬件,或者乾脆直接把計算機扔齣窗外。幸運的是,大多數操作係統,尤其是Linux,都提供瞭工具用於檢測機器運行緩慢的原因。使用一些基礎工具,就可以確定係統中哪裏速度慢,並修復那些運行效率低的部分。
雖然終端用戶非常討厭速度慢的係統,但對於應用程序開發者而言,他們有著更重要的理由對其程序進行性能調優:程序能夠在多個係統上高效運行。如果你編寫的程序運行緩慢,又需要快速的計算機,那麼你就會排除掉那些擁有慢速計算機的用戶。畢竟,並非所有人都具備最新的硬件。性能良好的應用程序能被更多的用戶使用,從而帶來更大的潛在用戶群。另外,如果潛在用戶必須在兩個具有相似功能的不同應用程序中進行選擇,他們通常會選擇運行更快或效率更高的那一個。最後,長期使用的應用程序很可能會經過幾輪優化,以便適應不同的用戶需求,因此,關鍵是瞭解如何追蹤性能問題。
如果你是係統管理員,那麼對係統用戶來說,你就有責任使係統在運行時保持適當的性能水平。若係統運行緩慢,用戶就會抱怨。如果你能迅速找到並解決問題,他們就會停止抱怨。還有讓人高興的是,如果你能通過調整應用程序或操作係統來解決問題(從而使他們不用購買新的硬件),那麼公司的會計就會很開心。知道如何有效使用性能工具就意味著,在性能問題上需要花費的時間是有區彆的:幾天,還是幾個小時。
Linux:優勢和劣勢
如果你使用Linux,維護它並用其進行開發,你就會處於一種奇特但良好的處境中。你能訪問和接觸的源代碼、開發者和郵件列錶是前所未有的,通常,這些郵件列錶中會記錄著多年前的設計決策。Linux是發現和修復性能問題的優良環境。與之形成鮮明對比的是專有環境,在這種環境下,很難直接接觸到軟件開發者,同時也很難找到大多數設計決策討論的書麵記錄,而訪問源代碼則幾乎是不可能的。除瞭是一個高效環境外,Linux還具備強大的性能工具,使你能發現並修復性能問題。這些工具可以與那些專門的工具相媲美。
即使有著這些令人印象深刻的優勢,Linux生態環境還是需要徵服一些挑戰。Linux性能工具分散性很強。不同的小組根據不同的目標開發工具,其結果就是,這些工具不一定集中在一個地方。有些工具已經包含在標準的Linux發行版中,如RedHat、SUSE和Debian;而有些工具則分散在整個互聯網上。如果你嘗試解決一個性能問題,首先要做的是瞭解你需要的工具是否存在,然後再設法找到它們。由於沒有哪一個Linux性能工具能夠獨立解決所有類型的性能問題,因此,還必須瞭解如何使用多個工具來確定問題齣在哪兒。這可能需要點技巧,但是經驗會讓它變得容易些。雖然大多數常見的方法會有文檔記錄,但是Linux沒有任何指南來告訴你如何整閤性能工具以實際解決問題。很多工具或子係統都有調整特定子係統的信息,但是卻沒有說明如何將它們與其他工具一起使用。許多性能問題涉及係統的多個部分,如果不知道如何同時使用多個工具,就無法解決這些問題。
Linux/Unix技術叢書:Linux性能優化 下載 mobi epub pdf txt 電子書