linux效能優化一直都是老生常談的話題,相信大家對於優化的措施多多少少都有一定的了解。但是如何進行linux效能調優,又從哪些方面入手,這背後的深層原理是什麼,為什麼要這麼操作,卻很少有人講得清楚。下面本文詳細為大家分析一下影響linux效能的三大因素系統硬體、作業系統和作業系統,大家可以從這些思路上得到優化的具體方案。
一、系統硬體
1、cpu
眾所周知,作業系統執行的根本就是乙個穩定的cpu,它的效能從根本上決定了系統整體的效能,因此linux效能優化可以首先從cpu入手。一般來講cpu數量越多、主頻越高,伺服器效能也就相對越好。不過也有例外的情況,超執行緒的處理器可以在同一時間執行多個執行緒,在linux系統下,只有執行smp核心才能支援超執行緒,但是安裝的cpu數量越多,從超執行緒獲得的效能方面的提高就越少。可能出現cpu瓶頸的應用有db伺服器、動態web伺服器等,對於這類應用,要把cpu的配置和效能放在主要位置。
2、記憶體
除了cpu之外,記憶體的大小也是影響linux效能的乙個重要的方面。如果記憶體太小,系統程序將被阻塞,應用也將變得緩慢,甚至失去響應;記憶體太大,導致資源浪費。因此,要使用更大的記憶體,建議安裝64位的作業系統,同時開啟linux的大記憶體核心支援。由於處理器定址範圍的限制,在32位linux作業系統上,應用程式單個程序最大只能使用4gb的記憶體,這樣以來,即使系統有更大的記憶體,應用程式也無法「享」用,解決的辦法就是使用64位處理器,安裝64位作業系統。在64位作業系統下,可以滿足所有應用程式對記憶體的使用需求 ,幾乎沒有限制。linux系統採用了物理記憶體和虛擬記憶體兩種方式,虛擬記憶體雖然可以緩解物理記憶體的不足,但是占用過多的虛擬記憶體,應用程式的效能將明顯下降,要保證應用程式的高效能執行,物理記憶體一定要足夠大;但是過大的物理記憶體,會造成記憶體資源浪費。
3、磁碟i/o效能
磁碟的i/o效能直接影響應用程式的效能,在乙個有頻繁讀寫的應用中,如果磁碟i/o效能得不到滿足,就會導致應用停滯。好在現今的磁碟都採用了很多方法來提高i/o效能,比如常見的磁碟raid技術。通過raid技術組成的磁碟組,就相當於乙個大硬碟,使用者可以對它進行分割槽格式化、建立檔案系統等操作,跟單個物理硬碟一模一樣,唯一不同的是raid磁碟組的i/o效能比單個硬碟要高很多,同時在資料的安全性也有很大提公升。
4、網路寬頻
linux下的各種應用,一般都是基於網路的,因此網路頻寬也是影響效能的乙個重要方面,低速的、不穩定的網路將導致網路應用程式的訪問阻塞,而穩定、高速的網路頻寬,可以保證應用程式在網路上暢通無阻地執行。幸運的是,現在的網路一般都是千兆頻寬或光纖網路,頻寬問題對應用程式效能造成的影響也在逐步降低。
二、作業系統
1、安裝系統
系統優化可以從安裝作業系統開始,當安裝linux系統時,磁碟的劃分,swap記憶體的分配都直接影響以後系統的執行效能。例如,磁碟分配可以遵循應用的需求。隨著記憶體**的降低和記憶體容量的日益增大,對虛擬記憶體swap的設定,現在已經沒有了所謂虛擬記憶體是物理記憶體兩倍的要求,但是swap的設定還是不能忽略,根據經驗,如果記憶體較小,一般設定swap交換分割槽大小為記憶體的2倍;如果物理記憶體大於8gb小於16gb,可以設定swap大小等於或略小於物理記憶體即可;如果記憶體大小在16gb以上,原則上可以設定swap為0,但並不建議這麼做,因為設定一定大小的swap還是有一定作用的。
2、核心引數
系統安裝完成後,優化工作並沒有結束,接下來還可以對系統核心引數進行優化,不過核心引數的優化要和系統中部署的應用結合起來整體考慮。例如,如果系統部署的是oracle資料庫應用,那麼就需要對系統共享記憶體段、系統訊號量、檔案控制代碼等引數進行優化設定;如果部署的是web應用,那麼就需要根據web應用特性進行網路引數的優化,例如修改net.ipv4.ip_local_port_range、net.ipv4.tcp_tw_reuse、net.core.somaxconn等網路核心引數。
3、檔案系統
檔案系統的優化也是系統資源優化的乙個重點,在linux下可選的檔案系統有ext2、ext3、reiserfs、ext4、xfs,根據不同的應用,選擇不同的檔案系統。linux標準檔案系統是從vfs開始的,然後是ext,接著就是ext2,應該說,ext2是linux上標準的檔案系統,ext3是在ext2基礎上增加日誌形成的,從vfs到ext4,其設計思想沒有太大變化,都是早期unix家族基於超級塊和inode的設計理念。xfs檔案系統是乙個高階日誌檔案系統,xfs通過分布處理磁碟請求、定位資料、保持cache 的一致性來提供對檔案系統資料的低延遲、高頻寬的訪問,因此,xfs極具伸縮性,非常健壯,具有優秀的日誌記錄功能、可擴充套件性強、快速寫入效能等優點。目前伺服器端ext4和xfs是主流檔案系統,如何選擇合適的檔案系統,需要根據檔案系統的特點加上業務的需求綜合來定。
三、應用程式軟體
1、運維
在思考linux效能優化的過程中,linux運維方面承擔著很重要的任務。首先,linux運維人員要了解和掌握作業系統的當前執行狀態,這些資訊是檢測和判斷系統效能的基礎和依據;其次,linux運維人員還有掌握系統的硬體資訊,然後根據這些資訊綜合評估系統資源的使用情況。作為一名linux運維人員,還要掌握應用程式對系統資源的使用情況,更深入的一點就是要了解應用程式的執行效率,通過對系統資源的監控,就能發現應用程式是否存在異常,如果確實是應用程式存在問題,需要把問題立刻反映給程式開發人員,進而改進或公升級程式。效能優化本身就是乙個複雜和繁瑣的過程,linux運維人員只有了解了系統硬體資訊、網路資訊、作業系統配置資訊和應用程式資訊才能有針對性地的展開對伺服器效能優化,這就要求linux運維人員有充足的理論知識、豐富的實戰經驗以及縝密分析問題的頭腦。
2、系統架構設計
系統效能優化涉及的第二類人員就是應用程式的架構設計人員。如果在linux運維環節經過綜合判斷後,發現影響效能的是應用程式的執行效率,那麼程式架構設計人員就要及時介入,深入了解程式執行狀態。首先,系統架構設計人員要跟蹤了解程式的執行效率,如果執行效率存在問題,要找出**出現了問題;其次,如果真的是架構設計出現了問題,那麼就要馬上優化或改進系統架構,設計更好的應用系統架構。
3、軟體開發
系統效能優化最後乙個環節涉及的是程式開發人員,在linux運維人員或架構設計人員找到程式或結構瓶頸後,程式開發人員要馬上介入進行相應的程式修改。修改程式要以程式的執行效率為基準,改進程式的邏輯,有針對性地進行**優化。系統效能優化一般遵循的流程是:首先linux運維人員檢視系統的整體狀況,如果發現是系統硬體、網路裝置或者作業系統配置問題,linux運維人員可以根據情況自主解決;如果發現是程式結構問題,就需要提交給程式架構設計人員;如果發現是程式**執行問題,就交給開發人員進行**優化。這樣就完成了乙個系統效能優化的過程。
綜上所述,linux效能優化可以主要從系統硬體、作業系統和應用程式軟體入手。一般來講,只要通過這樣一步步的仔細檢測和排查,找出linux效能需要優化的地方並馬上解決問題,只是乙個順理成章的過程。現在還在為linux效能優化發愁的朋友,不妨馬上動手試一試。
MySQL查詢優化可以從哪些地方入手
1 查出瓶頸,哪一部分耗時最多 2 從選擇儲存引擎入手 3 減少正規表示式,在sql語句中的使用 4 合理利用快取技術,能提高網頁訪問速度 select query cache type 查詢快取是否開啟 5 對耗時較多冗餘的sql語句進行優化 6 合理選擇資料型別來幫助提高查詢執行速度 1 可以使...
entity framework 效能優化方案
1 在dbcontext的繼承類下新增sql指令碼輸出debug,即可在控制台上看到ef生成的sql語句 if debug this.database.log s debug.print s database.setinitializer null endif2 對於資料庫為char這種型別的,ef...
MySQL效能優化有哪些
1.當只要一行資料時使用limit 1 2.選擇正確的資料庫引擎 mysql中有兩個引擎myisam和innodb,每個引擎有利有弊。myisam適用於一些大量查詢的應用,但對於有大量寫功能的應用不是很好。甚至你只需要update乙個字段整個表都會被鎖起來。而別的程序就算是讀操作也不行要等到當前up...