linux伺服器效能調優技巧,linux伺服器調優

來源:互聯網
上載者:User

linux伺服器效能調優技巧,linux伺服器調優
20個Linux伺服器效能調優技巧

導讀 Linux是一種開源作業系統,它支援各種硬體平台,Linux伺服器全球知名,它和Windows之間最主要的差異在於,Linux伺服器預設情況下一般不提供GUI(圖形化使用者介面),而是命令列介面,它的主要目的是高效處理非互動式進程,回應時間並不是那麼重要,相反,能夠長時間處理高負載才是最關鍵的。

Linux高可用伺服器叢集解決方案讓IT系統管理員可以從容應對許多常見的硬體和軟體故障,允許多台電腦一起工作,為關鍵服務正常運行提供保障,系統管理員可以不中斷服務執行維護和升級。Linux伺服器有各種用途,如Web伺服器或分公司內部伺服器,CMS或CRS伺服器,檔案伺服器(為Windows和/或Linux使用者服務),VoIP電話語音器,郵件或網域名稱伺服器,資料庫伺服器,雲端運算配置中的基礎設施節點等。 Linux功能豐富、強大、靈活,你可以用它完成各種任務,在這篇文章中,我們將討論一些提高Linux伺服器效能的技巧。

1、為磁碟I/O調整Linux核心電梯演算法

在選擇檔案系統後,有一些核心和掛載選項可能會影響到它的效能表現,其中一個核心設定是電梯演算法,通過調整電梯演算法,系統可以平衡低延遲需求,收集足夠的資料,以有效地組織對磁碟的讀和寫請求。

2、禁用不必要的守護進程,節省記憶體和CPU資源

每台伺服器上都運行著許多守護進程或服務,而具有諷刺意味的是,有很多通常不是必需的,這些服務沒有發揮作用,但卻消耗了寶貴的記憶體和CPU時間。此外,它們可能將伺服器置於危險境地,多運行一個服務就等於多向駭客開啟一扇長驅直入的門,因此,你應該將它們從伺服器移除,禁用它們最大的好處是可以加快啟動時間,釋放記憶體。另外,你可以減少CPU需要處理的進程數,禁用它們的另一個好處是增強伺服器的安全性,因為越少的守護進程意味著可被攻擊和利用的漏洞越少。 下面是一些應該被禁用的Linux守護進程,預設情況下,它們都是自動啟動並執行:

序號 守護進程 描述
1 Apmd 進階電源管理守護進程
2 Nfslock 用於NFS檔案鎖定
3 Isdn ISDN Moderm支援
4 Autofs 在後台自動掛載檔案系統(如自動掛載CD-ROM)
5 Sendmail 郵件傳輸代理程式
6 Xfs X Window的字型伺服器
3、關掉GUI

一般說來,Linux伺服器是不需要GUI的,所有管理工作都可以在命令列下完成,因此最好關掉GUI,重新導向X顯示或通過一個Web瀏覽器介面顯示。為了禁用GUI,“init level(啟動層級)”應該被設定為3(命令列登入),而不是5(圖形登入),如果需要GUI,可以隨時運行startx進入圖形化使用者介面。

4、清理不需要的模組或功能

在伺服器軟體包中有太多被啟動的功能或模組實際上是不需要的(如Apache中的許多功能模組),仔細查看Apache設定檔,確定FrontPage支援或其它額外的模組是否真的要用到,如果不需要,應該毫不猶豫地從伺服器禁用掉,這樣有助於提高系統記憶體可用量,騰出更多資源給那些真正需要的軟體,讓它們運行得更快。

5、禁用控制台

在Linux中,有許多流行的控制台,如Cpanel,Plesk,Webmin和phpMyAdmin等,相信每個Linux初級使用者都很喜歡這些控制台,但是,禁用掉這些軟體包可以釋放出大約120MB記憶體,因此,我強烈建議禁用掉這些控制台,除非它們真的需要用到,它們可以通過PHP指令碼(儘管有些不安全),或命令列命令啟用,這樣做後,記憶體使用量量大約可以下降30-40%。

6、改善Linux Exim伺服器效能

有許多種方法改善伺服器的Exim效能,其中一個辦法是使用DNS緩衝守護進程,它可以降低解析DNS記錄需要的頻寬和CPU時間,DNS緩衝通過消除每次都從根節點開始尋找DNS記錄的需求,從而改善網路效能,Djbdns是一個非常強大的DNS伺服器,它具有DNS緩衝功能,Djbdns比BIND DNS伺服器更安全,效能更好,可以直接通過http://cr.yp.to/下載,或通過Red Hat提供的軟體包獲得。

7、使用AES256增強gpg檔案加密安全

為了提高備份檔案或敏感資訊的安全,許多Linux系統管理員都會使用gpg進行加密,在使用gpg時,最好指定gpg使用AES256密碼編譯演算法,AES256使用256位密鑰,它是一個開放的密碼編譯演算法,美國國家安全域(NSA)都使用它保護絕密資訊,沒有什麼比它更安全的了。

8、遠程備份服務安全

安全是選擇遠程備份服務最重要的因素,大多數系統管理員都害怕兩件事:(駭客)可以刪除備份檔案,不能從備份恢複系統。 為了保證備份檔案100%的安全,備份服務公司提供遠程備份伺服器,使用scp指令碼或RSYNC通過SSH傳輸資料,這樣,沒有人可以直接進入和訪問遠程系統,因此,也沒有人可以從備份服務刪除資料。在選擇遠程備份服務提供者時,最好從多個方面瞭解其服務強壯性,如果可以,可以親自測試一下。

9、更新預設核心參數設定

為了順利和成功運行公司專屬應用程式程式,如資料庫伺服器,可能需要更新一些預設的核心參數設定,例如,2.4.x系列核心訊息佇列參數msgmni有一個預設值(例如,共用記憶體,或shmmax在Red Hat系統上預設只有33554432位元組),它只允許有限的資料庫並發串連,下面為資料庫伺服器更好地運行提供了一些建議值(來自IBM DB2支援網站): kernel.shmmax=268435456 (32位) kernel.shmmax=1073741824 (64位) kernel.msgmni=1024 fs.file-max=8192 kernel.sem=”250 32000 32 1024″

10、最佳化TCP

最佳化TCP協議有助於提高網路輸送量,跨廣域網路的通訊使用的頻寬越大,延遲時間越長時,建議使用越大的TCP Linux大小,以提高資料轉送速率,TCP Linux大小決定了發送主機在沒有收到資料轉送確認時,可以向接收主機發送多少資料。

11、選擇正確的檔案系統

使用ext4檔案系統取代ext3 ● Ext4是ext3檔案系統的增強版,擴充了儲存限制 ●它具有日誌功能,保證高水平的資料完整性(在非正常關閉事件中) ●在非正常關閉和重啟時,它不需要檢查磁碟(這是一個非常耗時的動作) ●更快的寫入速度,ext4日誌最佳化了硬碟磁頭動作

12、使用noatime檔案系統掛載選項

在檔案系統啟動設定檔fstab中使用noatime選項,如果使用了外部儲存,這個掛載選項可以有效改善效能。

13、調整Linux檔案描述符限制

Linux限制了任何進程可以開啟的檔案描述符數量,預設限制是每進程1024,這些限制可能會阻礙基準測試用戶端(如httperf和apachebench)和Web伺服器本身獲得最佳效能,Apache每個串連使用一個進程,因此不會受到影響,但單進程Web伺服器,如Zeus是每串連使用一個檔案描述符,因此很容易受預設限制的影響。 開啟檔案限制是一個可以用ulimit命令調整的限制,ulimit -aS命令顯示當前的限制,ulimit -aH命令顯示硬限制(在未調整/proc中的核心參數前,你不能增加限制)。 Linux第三方應用程式效能技巧 對於運行在Linux上的第三方應用程式,一樣有許多效能最佳化技巧,這些技巧可以協助你提高Linux伺服器的效能,降低運行成本。

14、正確配置MySQL

為了給MySQL分配更多的記憶體,可設定MySQL緩衝大小,要是MySQL伺服器執行個體使用了更多記憶體,就減少緩衝大小,如果MySQL在請求增多時停滯不動,就增加MySQL緩衝。

15、正確配置Apache

檢查Apache使用了多少記憶體,再調整StartServers和MinSpareServers參數,以釋放更多的記憶體,將有助於你節省30-40%的記憶體。 提高監控/故障排除能力的技巧 下面是一些提高Linux伺服器監控和故障排除的技巧:

16、分析Linux伺服器效能

提高系統效率最好的辦法是找出導致整體速度下降的瓶頸並解決掉,下面是找出系統關鍵瓶頸的一些基本技巧: ● 當大型應用程式,如OpenOffice和Firefox同時運行時,電腦可能會開始變慢,記憶體不足的出現幾率更高。 ● 如果啟動時真的很慢,可能是應用程式初次啟動需要較長的載入時間,一旦啟動好後運行就正常了,否則很可能是硬碟太慢了。 ●CPU負載持續很高,記憶體也夠用,但CPU利用率很低,可以使用CPU負載分析工具監控負載時間。

17、學習5個Linux效能命令

使用幾個命令就可以管理Linux系統的效能了,下面列出了5個最常用的Linux效能命令,包括top、vmstat、iostat、free和sar,它們有助於系統管理員快速解決效能問題。 (1)top

Top命令不僅顯示了當前核心服務的任務,還顯示了許多關於主機狀態的統計資料,預設情況下,它每隔5秒自動更新一次顯示的資料(這個時間間隔是可以配置的),通過top命令,我們可以得知幾個結果,如:當前正常已耗用時間,系統負載,進程數量和記憶體使用量率,此外,這個命令也顯示了那些使用最多CPU時間的進程(包括每個進程的各種資訊,如運行使用者,執行的命令等)。

(2)vmstat

Vmstat命令提供當前CPU、IO、進程和記憶體使用量率的快照,它和top命令類似,自動更新資料,如:$ vmstat 10

(3)iostat

Iostat命令(在Ubuntu,Red Hat/Fedora上包含在sysstat軟體包中)提供三個報告:CPU利用率、裝置利用率和網路檔案系統利用率,不加任何參數運行時,iostat將顯示這三個報告,使用-c,-d和-h參數可以分別獨立顯示這三個報告。

(4)free

Free命令顯示主記憶體和交換空間的記憶體統計資料,指定-t參數可以顯示總記憶體數量,指定-b參數可以按位元組為單位進行顯示,使用-m則以兆為單位顯示,預設情況下是以KB為單位的。Free命令也可以使用-s參數加一個延遲時間(單位:秒)連續運行,如:$ free -s 5

(5)sar

Sar命令收集,查看和記錄效能資料,這個命令比前面幾個命令曆史更悠久,它可以收集和顯示較長周期的資料。
18、將記錄檔轉移到記憶體中

當一台機器處於運行中時,最好是將系統日誌放在記憶體中,當系統關閉時再將其複製到硬碟,當你運行一台開啟了syslog功能的膝上型電腦或行動裝置時,ramlog可以協助你提高系統電池或行動裝置快閃記憶體磁碟機的壽命,使用ramlog的一個好處是,不用再擔心某個守護進程每隔30秒向syslog發送一條訊息,放在以前,硬碟必須隨時保持運轉,這樣對硬碟和電池都不好。

19、先打包,後寫入

在記憶體中劃分出固定大小的空間儲存記錄檔,這意味著膝上型電腦硬碟不用一直保持運轉,只有當某個守護進程需要寫入日誌時才運轉,注意ramlog使用的記憶體空間大小是固定的,否則系統記憶體會很快被用光,如果筆記本使用固態硬碟,可以分配50-80MB記憶體給ramlog使用,ramlog可以減少許多寫入周期,極大地提高固態硬碟的使用壽命。

20、一般調優技巧 儘可能使用靜態內容替代動態內容,如果你在產生天氣預告,或其它每隔1小時就必須更新的資料,最好是寫一個程式,每隔1小時產生一個靜態檔案,而不是讓使用者運行一個CGI動態地產生報告。 為Live App程式選擇最快最合適的API,CGI可能最容易編程,但它會為每個請求產生一個進程。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.