在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

影響Linux性能的因素與優化方法

dyquk4xk2p3d ? 來源:良許Linux ? 2023-04-12 09:18 ? 次閱讀

Linux操作系統是一個開源產品,也是一個開源軟件的實踐和應用平臺,在這個平臺下有無數的開源軟件支撐,我們常見的apache、tomcat、mysql、php等等,開源軟件的最大理念是自由、開放,那么linux作為一個開源平臺,最終要實現的是通過這些開源軟件的支持,以最低廉的成本,達到應用最優的性能。因此,談到性能問題,主要實現的是linux操作系統和應用程序的最佳結合。

一、性能問題綜述

系統的性能是指操作系統完成任務的有效性、穩定性和響應速度。Linux系統管理員可能經常會遇到系統不穩定、響應速度慢等問題,例如在linux上搭建了一個web服務,經常出現網頁無法打開、打開速度慢等現象,而遇到這些問題,就有人會抱怨linux系統不好,其實這些都是表面現象。操作系統完成一個任務時,與系統自身設置、網絡拓樸結構、路由設備、路由策略、接入設備、物理線路等多個方面都密切相關,任何一個環節出現問題,都會影響整個系統的性能。因此當linux應用出現問題時,應當從應用程序、操作系統、服務器硬件、網絡環境等方面綜合排查,定位問題出現在哪個部分,然后集中解決。

在應用程序、操作系統、服務器硬件、網絡環境等方面,影響性能最大的是應用程序和操作系統兩個方面,因為這兩個方面出現的問題不易察覺,隱蔽性很強。而硬件、網絡方面只要出現問題,一般都能馬上定位。下面主要講解操作系統方面的性能調優思路,應用程序方面需要具體問題具體對待。

以下從影響Linux性能的因素、分析性能涉及的人員、系統性能優化工具、系統性能評價標準四個方面介紹優化Linux的一般思路和方法。

二、影響Linux性能的因素

2.1系統硬件資源

1.CPU

CPU是操作系統穩定運行的根本,CPU的速度與性能在很大程度上決定了系統整體的性能,因此,CPU數量越多、主頻越高,服務器性能也就相對越好。但事實并非完全如此。

目前大部分CPU在同一時間內只能運行一個線程,超線程的處理器可以在同一時間運行多個線程,因此,可以利用處理器的超線程特性提高系統性能。在Linux系統下,只有運行SMP內核才能支持超線程,但是,安裝的CPU數量越多,從超線程獲得的性能方面的提高就越少。另外,Linux內核會把多核的處理器當作多個單獨的CPU來識別,例如兩個4核的CPU,在Lnux系統下會被當作8個單核CPU。但是從性能角度來講,兩個4核的CPU和8個單核的CPU并不完全等價,根據權威部門得出的測試結論,前者的整體性能要比后者低25%~30%。

可能出現CPU瓶頸的應用有db服務器、動態Web服務器等,對于這類應用,要把CPU的配置和性能放在主要位置。

2.內存

內存的大小也是影響Linux性能的一個重要的因素,內存太小,系統進程將被阻塞,應用也將變得緩慢,甚至失去響應;內存太大,導致資源浪費。Linux系統采用了物理內存和虛擬內存兩種方式,虛擬內存雖然可以緩解物理內存的不足,但是占用過多的虛擬內存,應用程序的性能將明顯下降,要保證應用程序的高性能運行,物理內存一定要足夠大;但是過大的物理內存,會造成內存資源浪費,例如,在一個32位處理器的Linux操作系統上,超過8GB的物理內存都將被浪費。因此,要使用更大的內存,建議安裝64位的操作系統,同時開啟Linux的大內存內核支持。

由于處理器尋址范圍的限制,在32位Linux操作系統上,應用程序單個進程最大只能使用4GB的內存,這樣以來,即使系統有更大的內存,應用程序也無法“享”用,解決的辦法就是使用64位處理器,安裝64位操作系統。在64位操作系統下,可以滿足所有應用程序對內存的使用需求 ,幾乎沒有限制。

可能出現內存性能瓶頸的應用有NOSQL服務器、數據庫服務器、緩存服務器等,對于這類應用要把內存大小放在主要位置。

3.磁盤I/O性能

磁盤的I/O性能直接影響應用程序的性能,在一個有頻繁讀寫的應用中,如果磁盤I/O性能得不到滿足,就會導致應用停滯。好在現今的磁盤都采用了很多方法來提高I/O性能,比如常見的磁盤RAID技術。 通過RAID技術組成的磁盤組,就相當于一個大硬盤,用戶可以對它進行分區格式化、建立文件系統等操作,跟單個物理硬盤一模一樣,唯一不同的是RAID磁盤組的I/O性能比單個硬盤要高很多,同時在數據的安全性也有很大提升。

根據磁盤組合方式的不同,RAID可以分為RAID0,RAID1、RAID2、RAID3、RAID4、RAID5、RAID6、RAID7、RAID0+1、RAID10等級別,常用的RAID級別有RAID0、RAID1、RAID5、RAID0+1,這里進行簡單介紹。

RAID 0:通過把多塊硬盤粘合成一個容量更大的硬盤組,提高了磁盤的性能和吞吐量。這種方式成本低,要求至少兩個磁盤,但是沒有容錯和數據修復功能,因而只能用在對數據安全性要求不高的環境中。 RAID 1:也就是磁盤鏡像,通過把一個磁盤的數據鏡像到另一個磁盤上,最大限度地保證磁盤數據的可靠性和可修復性,具有很高的數據冗余能力,但磁盤利用率只有50%,因而,成本最高,多用在保存重要數據的場合。 RAID5:采用了磁盤分段加奇偶校驗技術,從而提高了系統可靠性,RAID5讀出效率很高,寫入效率一般,至少需要3塊盤。允許一塊磁盤故障,而不影響數據的可用性。 RAID0+1:把RAID0和RAID1技術結合起來就成了RAID0+1,至少需要4個硬盤。此種方式的數據除分布在多個盤上外,每個盤都有其鏡像盤,提供全冗余能力,同時允許一個磁盤故障,而不影響數據可用性,并具有快速讀/寫能力。

通過了解各個RAID級別的性能,可以根據應用的不同特性,選擇適合自身的RAID級別,從而保證應用程序在磁盤方面達到最優性能。

4.網絡寬帶

Linux下的各種應用,一般都是基于網絡的,因此網絡帶寬也是影響性能的一個重要因素,低速的、不穩定的網絡將導致網絡應用程序的訪問阻塞,而穩定、高速的網絡帶寬,可以保證應用程序在網絡上暢通無阻地運行。幸運的是,現在的網絡一般都是千兆帶寬或光纖網絡,帶寬問題對應用程序性能造成的影響也在逐步降低。

2.2 操作系統相關資源

基于操作系統的性能優化也是多方面的,可以從系統安裝、系統內核參數、網絡參數、文件系統等幾個方面進行衡量,下面依次進行簡單介紹。

1.系統安裝優化

系統優化可以從安裝操作系統開始,當安裝Linux系統時,磁盤的劃分,SWAP內存的分配都直接影響以后系統的運行性能。例如,磁盤分配可以遵循應用的需求:

對于對寫操作頻繁而對數據安全性要求不高的應用,可以把磁盤做成RAID 0;

而對于對數據安全性較高,對讀寫沒有特別要求的應用,可以把磁盤做成RAID 1;

對于對讀操作要求較高,而對寫操作無特殊要求,并要保證數據安全性的應用,可以選擇RAID 5;

對于對讀寫要求都很高,并且對數據安全性要求也很高的應用,可以選擇RAID10/01。

這樣通過不同的應用需求設置不同的RAID級別,在磁盤底層對系統進行優化操作。

隨著內存價格的降低和內存容量的日益增大,對虛擬內存SWAP的設定,現在已經沒有了所謂虛擬內存是物理內存兩倍的要求,但是SWAP的設定還是不能忽略,根據經驗:

如果內存較小(物理內存小于4GB),一般設置SWAP交換分區大小為內存的2倍;

如果物理內存大于8GB小于16GB,可以設置SWAP大小等于或略小于物理內存即可;

如果內存大小在16GB以上,原則上可以設置SWAP為0,但并不建議這么做,因為設置一定大小的SWAP還是有一定作用的。

2.內核參數優化

系統安裝完成后,優化工作并沒有結束,接下來還可以對系統內核參數進行優化,不過內核參數的優化要和系統中部署的應用結合起來整體考慮。

例如,如果系統部署的是Oracle數據庫應用,那么就需要對系統共享內存段(kernel.shmmax、kernel.shmmni、kernel.shmall)、系統信號量(kernel.sem)、文件句柄(fs.file-max)等參數進行優化設置;如果部署的是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是主流文件系統,如何選擇合適的文件系統,需要根據文件系統的特點加上業務的需求綜合來定。

2.3 、應用程序軟件資源

應用程序的優化其實是整個優化工程的核心,如果一個應用程序存在BUG,那么即使所有其他方面都達到了最優狀態,整個應用系統還是性能低下,所以,對應用程序的優化是性能優化過程的重中之重,這就對程序架構設計人員和程序開發人員提出了更高的要求。

三、 分析系統性能涉及的人員

3.1、Linux運維人員

在做性能優化過程中,Linux運維人員承擔著很重要的任務。

首先,Linux運維人員要了解和掌握操作系統的當前運行狀態,例如系統負載、內存狀態、進程狀態、CPU負荷等信息,這些信息是檢測和判斷系統性能的基礎和依據;

其次,Linux運維人員還有掌握系統的硬件信息,例如磁盤I/O、CPU型號、內存大小、網卡帶寬等參數信息,然后根據這些信息綜合評估系統資源的使用情況;

第三,作為一名Linux運維人員,還要掌握應用程序對系統資源的使用情況,更深入的一點就是要了解應用程序的運行效率,例如是否有程序BUG、內存溢出等問題,通過對系統資源的監控,就能發現應用程序是否存在異常,如果確實是應用程序存在問題,需要把問題立刻反映給程序開發人員,進而改進或升級程序。

性能優化本身就是一個復雜和繁瑣的過程,Linux運維人員只有了解了系統硬件信息、網絡信息、操作系統配置信息和應用程序信息才能有針對性地的展開對服務器性能優化,這就要求Linux運維人員有充足的理論知識、豐富的實戰經驗以及縝密分析問題的頭腦。

3.2、系統架構設計人員

系統性能優化涉及的第二類人員就是應用程序的架構設計人員。如果Linux運維人員在經過綜合判斷后,發現影響性能的是應用程序的執行效率,那么程序架構設計人員就要及時介入,深入了解程序運行狀態。

首先,系統架構設計人員要跟蹤了解程序的執行效率,如果執行效率存在問題,要找出哪里出現了問題;

其次,如果真的是架構設計出現了問題,那么就要馬上優化或改進系統架構,設計更好的應用系統架構。

3.3、軟件開發人員

系統性能優化最后一個環節涉及的是程序開發人員,在Linux運維人員或架構設計人員找到程序或結構瓶頸后,程序開發人員要馬上介入進行相應的程序修改。修改程序要以程序的執行效率為基準,改進程序的邏輯,有針對性地進行代碼優化。例如,Linux運維人員在系統中發現有條SQL語句耗費大量的系統資源,抓取這條執行的SQL語句,發現此SQL語句的執行效率太差,是開發人員編寫的代碼執行效率低造成的,這就需要把這個信息反饋給開發人員,開發人員在收到這個問題后,可以有針對性的進行SQL優化,進而實現程序代碼的優化。

從上面這個過程可以看出,系統性能優化一般遵循的流程是:

首先Linux運維人員查看系統的整體狀況,主要從系統硬件、網絡設備、操作系統配置、應用程序架構和程序代碼五個方面進行綜合判斷,如果發現是系統硬件、網絡設備或者操作系統配置問題,Linux運維人員可以根據情況自主解決;

如果發現是程序結構問題,就需要提交給程序架構設計人員;

如果發現是程序代碼執行問題,就交給開發人員進行代碼優化。

這樣就完成了一個系統性能優化的過程。

四、調優總結

系統性能優化是個涉及面廣、繁瑣、長久的工作,尋找出現性能問題的根源往往是最難的部分,一旦找到出現問題的原因,性能問題也就迎刃而解。因此,解決問題的思路變得非常重要。

例如,linux系統下的一個網站系統,用戶反映,網站訪問速度很慢,有時無法訪問。

針對這個問題:

第一步要做的是檢測網絡,可以通過ping命令檢查網站的域名解析是否正常,同時,ping服務器地址的延時是否過大等等,通過這種方式,首先排除網絡可能出現的問題;如果網絡沒有問題

接著進入第二步,對linux系統的內存使用狀況進行檢查,因為網站響應速度慢,一般跟內存關聯比較大,通過free、vmstat等命令判斷內存資源是否緊缺,如果內存資源不存在問題

進入第三步,檢查系統CPU的負載狀況,可以通過sar、vmstat、top等命令的輸出綜合判斷CPU是否存在過載問題,如果CPU沒有問題

繼續進入第四步,檢查系統的磁盤I/O是否存在瓶頸,可以通過iostat、vmstat等命令檢查磁盤的讀寫性能,如果磁盤讀寫也沒有問題,linux系統自身的性能問題基本排除,最后要做的是檢查程序本身是否存在問題。通過這樣的思路,層層檢測,步步排查,性能問題就“無處藏身”,查找出現性能問題的環節也就變得非常簡單。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    11003

    瀏覽量

    215044
  • Linux
    +關注

    關注

    87

    文章

    11414

    瀏覽量

    212258
  • 操作系統
    +關注

    關注

    37

    文章

    7019

    瀏覽量

    124668
  • 開源
    +關注

    關注

    3

    文章

    3528

    瀏覽量

    43264
  • 性能
    +關注

    關注

    0

    文章

    276

    瀏覽量

    19235

原文標題:Linux性能調優~

文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    HBase性能優化方法總結

    對于寫密集型提高性能需盡量減少刷寫、合并和拆分的次數,以減少IO壓力,提高系統性能。除了以上方法可以提高HBase性能之外,還可以采用以下方法
    發表于 04-20 17:16

    Linux系統的性能優化策略

    近年來,世界上許多大軟件公司紛紛推出各種Linux服務器系統及Linux下的應用軟件。目前,Linux 已可以與各種傳統的商業操作系統分庭抗禮,在服務器市場,占據了相當大的份額。本文分別從磁盤調優,文件系統,內存管理以及編譯
    發表于 07-16 06:23

    linux網絡發包性能優化方法

    對于網絡的行為,可以簡單劃分為 3 條路徑:1) 發送路徑,2) 轉發路徑,3) 接收路徑,而網絡性能優化則可基于這 3 條路徑來考慮。
    發表于 07-16 06:05

    Linux和Android系統故障和優化性能方法和流程探討

    作為一名Linux 或 Android 平臺的系統工程師,在開發系統新功能外,主要工作就是優化系統性能,使系統上以最優的狀態運行,但是由于硬件問題、軟件問題、網絡環境等的復雜性和多變性,導致對系統
    發表于 07-22 06:48

    差動放大器的性能優化方法

    的使用。下面就來分享構建差動放大器及其性能優化方法!儀表放大器可能不具備用戶要求的帶寬、直流精度或功耗。因而,在這種情況下,用戶可通過一個單放大器和外部電阻自行構建差分放大器,以替代儀表放大器。不過,除非
    發表于 07-24 06:36

    基于Linux的Socket網絡編程的性能優化

    基于Linux的Socket網絡編程的性能優化 隨著Intenet的日益發展和普及,網絡在嵌入式系統中應用非常廣泛,越來越多的嵌入式設備采用Linux操作系統。
    發表于 10-22 20:48 ?1134次閱讀
    基于<b class='flag-5'>Linux</b>的Socket網絡編程的<b class='flag-5'>性能</b><b class='flag-5'>優化</b>

    Linux CPU的性能應該如何優化

    Linux系統中,由于成本的限制,往往會存在資源上的不足,例如 CPU、內存、網絡、IO 性能。本文,就對 Linux 進程和 CPU 的原理進行分析,總結出 CPU 性能
    的頭像 發表于 01-18 08:52 ?3541次閱讀

    嵌入式Linux實時性能優化

    1 引言  分析了Linux的實時性,針對其在實時應用中的技術障礙,在參考了與此相關研究基礎上,從三方面提出了改善Linux實時性能的改進措施。為提高嵌入式應用響應時間精度,提出兩種細化Lin
    發表于 11-01 16:33 ?6次下載
    嵌入式<b class='flag-5'>Linux</b>實時<b class='flag-5'>性能</b><b class='flag-5'>優化</b>

    影響Linux性能因素有哪些

    系統的性能是指操作系統完成任務的有效性、穩定性和響應速度。Linux系統管理員可能經常會遇到系統不穩定、響應速度慢等問題,例如在linux上搭建了一個web服務,經常出現網頁無法打開、打開速度慢等現象,而遇到這些問題,就有人會抱
    發表于 04-08 09:36 ?447次閱讀

    優化Linux的設計思路和方法介紹

    系統性能優化最后一個環節涉及的是程序開發人員,在Linux運維人員或架構設計人員找到程序或結構瓶頸后,程序開發人員要馬上介入進行相應的程序修改。
    發表于 04-17 11:03 ?336次閱讀

    Linux內核slab性能優化的核心思想

    今天分享一篇內存性能優化的文章,文章用了大量精美的圖深入淺出地分析了Linux內核slab性能優化的核心思想,slab是
    的頭像 發表于 11-13 11:45 ?805次閱讀
    <b class='flag-5'>Linux</b>內核slab<b class='flag-5'>性能</b><b class='flag-5'>優化</b>的核心思想

    限制阻抗控制性能優化因素是什么

    阻抗控制存在哪些科學問題?限制阻抗控制性能優化因素是什么? 環境建模問題:阻抗控制需要對環境進行建模,而實際環境往往非常復雜,涉及到不同的物體形狀、材料、摩擦力等因素,這使得環境建模
    的頭像 發表于 11-14 15:14 ?579次閱讀

    MySQL性能優化方法

    MySQL 性能優化是一項關鍵的任務,可以提高數據庫的運行速度和效率。以下是一些優化方法,包括具體代碼和詳細優化方案。
    的頭像 發表于 11-22 09:59 ?802次閱讀

    Linux服務器性能查看方法

    Linux服務器性能查看是系統管理員和開發人員在日常工作中經常需要進行的任務,以確保系統穩定運行并優化資源使用。以下將詳細介紹多種Linux服務器
    的頭像 發表于 09-02 11:15 ?1538次閱讀

    如何優化Linux服務器的性能

    優化Linux服務器的性能是一個綜合性的任務,涉及硬件、軟件、配置、監控等多個方面。以下是一個詳細的指南,旨在幫助系統管理員和運維人員提升Linux服務器的
    的頭像 發表于 09-29 16:50 ?553次閱讀
    主站蜘蛛池模板: 国产无套粉嫩白浆 | 国产精品五月天 | 欧美成人精品 | 在线观看免费国产 | 一级特级毛片免费 | 国产色视频网站免费观看 | 成人影院免费观看 | caoporn97人人做人人爱最新 | www.天天干| 色色免费 | 91av视频网站| 欧美成人三级伦在线观看 | 亚洲香蕉网久久综合影院3p | 在线看欧美成人中文字幕视频 | 日本韩国三级在线 | 欧美一级黄色片 | 国产人成午夜免视频网站 | 97影院理论午夜论不卡 | 免费观看成年欧美1314www色 | 可以免费观看的黄色网址 | 狠狠狠色丁香婷婷综合久久五月 | 亚洲αv久久久噜噜噜噜噜 亚洲аv电影天堂网 | 超级狂色而且免费又超好看 | 成人黄色三级 | 五月激情综合网 | 日本亚洲精品色婷婷在线影院 | 欧洲一卡二卡乱码新区 | 亚洲高清国产拍精品影院 | 日日插夜夜爽 | 视频免费观看视频 | 网站在线播放 | 成人久久伊人精品伊人 | 丁香婷婷开心激情深爱五月 | 中文字幕在线播放不卡 | 国产午夜免费一区二区三区 | 综合亚洲一区二区三区 | 加勒比日本在线 | 久久青草精品一区二区三区 | 五月婷婷综合激情网 | 黄色片日本网站 | 91在线免费视频 |