網上IBM很早放出的一本免費電子書,
十來年了,參考意義還是很大。
國内有翻譯成中文線上閱讀的版本。
見如下兩個URL
<Linux性能調優指南>
https://www.gitbook.com/book/lihz1990/transoflptg/details
=========================================
伺服器優化思路
管理變更和性能優化并不直接相關,但可能是成功性能調優最重要的因素。如下可能是第二位考慮的,但是作為提醒,我們強調一下:
在調優之前,實施合理的管理流程變更
永遠不要在生産系統上調優
在調優過程中,每次隻修改一個變量
反複測試提升性能的參數,有時候,統計來的結果更加可靠
把成功的參數調整整理成文檔,和社群分享,即使你覺得它們微不足道。生産環境中獲得的任何結果對Linux性能都有很大用處。
CPU性能優化選項
第一步是要確定,系統性能問題是由CPU引起的,而不是其它子系統。如果處理器是伺服器瓶頸,可以采取如下的辦法來增強性能:
使用ps -ef來確定沒有不必要的程序程式在背景運作,如果找到了這樣的程式,關掉它,或者使用cron讓它在非高峰的時候運作。
通過top找到非關鍵的、CPU密集型程序,然後用renice修改它的優先級。
在基于SMP的機器上,嘗試使用taskset指令綁定程序到CPU上,避免程序在多個處理器之間切換,引起cache重新整理。
基于運作的應用,确認你的應用是否能高效的利用多處理器。來決定是否應該使用更強勁的CPU而不是更多的CPU。例如,單線程應用,會從更快的CPU中受益,增加值CPU個數也沒用。
還有其它辦法,比如,確定你使用的是最新的驅動和固件,這能影響到他們在系統上的負載。
記憶體性能調優選項
如果确定是記憶體瓶頸,可以執行下面的操作:
使用bigpages、hugetlb和共享記憶體調優swap空間。
增加或者減少頁大小。
改善活動和非活動的記憶體處理
調整page-out率
限制伺服器上每個使用者可使用的資源
關掉用不到的服務
增加記憶體
在确定磁盤子系統瓶頸之後,有如下可能的解決方法:
如果負載是順序的,壓力在控制器帶寬上,辦法就是添加更快的磁盤控制器。然而,如果負載是随機的,瓶頸可能在磁盤上,增加更多多的磁盤可以幫助增加性能。
在RAID中添加更多的磁盤,把資料分散到多塊實體磁盤,可以同時增強讀和寫的性能。增加磁盤會提升每秒的讀寫I/O數。另外,請使用硬體RAID而不是Linux提供的RAID軟體。如果是硬體RAID,RAID級别對作業系統是不可見的。
考慮使用Linux邏輯卷分區,而不是沒有分區的單塊大磁盤或者邏輯卷。
把處理負載轉移到網絡中的其它系統(使用者,應用程式或者服務)。
添加RAM。添加記憶體會提升系統磁盤緩沖,增強磁盤響應速度。
網絡性能調優
當網絡瓶頸出現時,你應該試試如下的辦法:
確定網卡配置和路由器交換機配置相比對。
修改子網的組織方式
使用更快的網卡
适當調整IPv4的TCP核心參數。有些安全相關的參數調整會提升性能,詳見下一章。
如果可能的話,更換網卡,然後重新檢測性能。
如果可能的話,增加網卡,綁定成一個網卡組。