Linux服務器的性能調優理論篇

1、網站架構相關前端

(1)評估網站性能涉及的專業名詞術語web

  1.PV(Page View)redis

  PV即訪問量,中文翻譯爲頁面瀏覽,表明頁面瀏覽量,用戶每刷新一次就會計算一次。PV的具體計算方法是:從瀏覽器發出一個對網絡服務器的請求(Request),網絡服務器接到這個請求後,會將該請求對應的一個頁面(Page)發送給瀏覽器,從而產生一個PV。數據庫

  2.UV(Unique Visto)瀏覽器

  UV即獨立訪問,訪問網站的一臺電腦客戶端爲一個訪客,若是按天計算,程序統計會從0:00至24:00這段時間內的電腦客戶端,且相同的客戶端只被計算一次。緩存

  3.併發鏈接數(Concurrent TCP Connections)安全

  當一個網頁被瀏覽,服務器就會和瀏覽器創建鏈接,每一個鏈接表示一個併發。若是當前網頁頁面包含不少圖片,圖片並非一個個顯示的,服務器會產生多個鏈接同時發送文字和圖片以提升瀏覽速度。服務器

  4.QPS(Query Per Second)網絡

  QPS即每秒查詢率,是衡量一個特定查詢服務器在規定時間內所處理流量多少的標準,在因特網上,做爲域名系統服務器的機器性能一般用每秒查詢率來衡量。對於系統而言,QPS數值是一個很是重要的參數,它是綜合反映系統最大吞吐能力的衡量標註。架構

  5.機房的網絡質量評估

    1)穩定性:響應延遲,丟包率

    2)帶寬質量:測試TCP的下載速度及最大TCP的下載速率

    3)接入位置:接入路由器設備離骨幹網的位置,接入條數越少越好

(2)CDN業務的選項

  若是本身的業務網站中含有大量的圖片和視頻類文件,爲了加快客戶端的訪問速度,同時緩解核心機房的服務壓力並提高用戶體驗,建議你們在網站或系統的前端採用CDN緩存加速方案。

  CDN的全稱是Content Delivery Network,即內容分發網絡。其目的是經過現有的Internet中增長一層新的網絡架構,講網站的內容發佈到最近用戶的網絡「邊緣」,使用戶可就近取得須要的內容,提升用戶訪問網站的響應速度,從而提高用戶體驗。

  租賃CDN:中小型網站直接買服務,如今CDN已經進入按需付費的雲計算模式,能夠準確計算性價比。

  自建CDN:這種方案的成本比較高,爲了保證好的緩存效果,必須在全國機房布點,而且須要自建智能Bind系統。通常專業的視頻網站或圖片網站會考慮採用此方案。

(3)IDC機房的選擇

  單電信IDC機房:這種業務模式比較固定,訪問量也不是很大,適合新聞類或政務類網站。

  雙線IDC機房:由於國內兩大網絡(電信和網通)之間存在互聯互通的問題,因此電信用戶訪問網通網站或網通用戶訪問電信網站很慢,也所以產生了雙線機房、雙線服務器、雙線服務器託管和雙線服務器租用服務。

  BGP機房:BGP(邊界網關協議)是用來鏈接Internet的對立系統的路由選擇協議。對於用戶來講,選擇BGP機房能夠實現網站在運營商的用戶訪問網站都很快,也更加穩定,不用擔憂全國各地因線路帶來訪問速度快慢不一的問題,這也是傳統雙IP雙線機房沒法比擬的優點。

  雲計算服務:目前首推亞馬遜雲(AWS)和阿里雲這兩種雲計算平臺

  雲計算服務提供的產品能讓咱們的研發團隊專一於產品研發自己,而不是購買硬件、配置和維護硬件等繁雜的工做,還能夠減小初始資金投入。

  雲計算特別適合在某些日期或某些時段流量會激增的網站。

2、如何根據服務器應用來選購服務器

(1)服務器運行什麼應用

  負載均衡端:除了網卡性能之外,它在其餘方面對服務器的要求都比較低。

  緩存服務器:主要是Varnish和redis,對CPU及其餘方面的性能要求通常,但在內存方面的要求較多。

  應用服務器:承擔計算和功能實現的重任,因此須要基於Web架構的應用程序服務器選擇足夠快的服務器。

  特殊應用:除了用於web應用外,還有流媒體視頻編碼、服務器虛擬化、媒體服務器,或者遊戲服務器,那一樣會對CPU和內存有必定要求,至少四核以上。

  公共服務:指的是郵件服務器、文件服務器、DNS服務器、域控服務器等。無需對於可靠性過於苛刻。

  數據庫服務器:數據庫對服務器的要求是最高的,也是最重要的。須要足夠快的CPU和足夠大的內存、足夠穩定可靠的硬件。建議固態硬盤作RAID10,由於數據庫對硬盤IO要求是最高的。

  Hadoop和Spark分佈式計算:建議選擇密集式存儲。

  RabbitMQ集羣:基於Erlang語言開發,對於內存的要求很高。

(2)服務器須要支持多少用戶訪問

  通常項目實施以前,客戶會針對這些問題做出一個大體的結果,但咱們要儘可能設計的充分具體。

(3)須要多大空間來存儲數據

(4)業務有多重要

  1.選擇什麼CPU

  2.須要多大的內存

  至關多的正在運行的服務器,CPU的利用率通常10-30%,但咱們發現內存的不夠致使運行緩慢的比比皆是,若是服務器不能分配足夠的內存,應用程序就須要硬盤接口交換讀取數據,這將致使網站慢得使人沒法忍受。

  對於Tomcat、Resin、WebLogic的應用服務器,8GB內存是基準配置。

  數據庫服務器的內存因爲數據庫實例的數量、表大小、索引、用戶數等,通常建議配置16GB以上,通常公司許多項目使用了24GB-48GB的內存。

  特殊的服務器,須要配置儘量高的內存容量,好比配置有Redis和Memcached的緩存服務器。

  文件服務器,1GB內存就足夠了。

  3.須要怎樣的硬盤存儲系統

  緩存服務器,能夠考慮RAID 0

  跑Nginx+FastCGI,能夠考慮RAID 1

  內網開發服務器或存放重要代碼的服務器,能夠考慮RAID 5

  數據庫服務器,能夠考慮固態硬盤或RAID 5 RAID 10

(5)網卡性能方面的考慮

  建議服務器配置兩塊網卡,一個對外提供服務,一個用於內部數據交換。

  Keepalived只用公網地址的Linux集羣架構,對網卡速率要求高,建議選用萬兆網卡。

(6)服務器安全方面的考慮

  國內的DDoS攻擊廣泛,建議配置硬件防火牆,好比Juniper、Cisco等。

(7)根據機架數合理安排服務器的數量

(8)成本考慮:服務器的價格問題

3、硬件對Linux性能的影響

(1)CPU 

  CPU是操做系統穩定運行的根本,CPU的速度與性能在很大程度上決定了總體的性能,所以,CPU數量越多也好、主頻也高越好。

(2)內存

  內存的大小直接影響Linux的性能重要因素,內存過小,系統進程被阻塞,應用也將變慢,甚至失去響應。

(3)磁盤IO性能

  磁盤IO性能直接影響應用程序的性能,在一個有頻繁讀寫的應用中,若是磁盤IO性能得不到知足,就會致使應用停滯。

  RAIO 0:成本最低,要求至少兩塊磁盤,可是沒有容錯和數據修復,於是用在對數據安全要求不高的環境中。

  RAIO 1:磁盤利用率只有50%,於是成本最高,多用在保存重要數據的場合。

  RAIO 5:讀取效率很高,寫入效率通常,至少三塊磁盤,容許一塊磁盤故障,而不影響數據的可用性。

  RAIO 10:至少須要4塊磁盤,每一個盤都是其鏡像盤,提供冗餘能力,同時容許一個磁盤故障,而不影響數據可用性,並具備快速讀/寫能力。

(4)網絡帶寬

  Linux系統下的各類應用通常都是基於網絡的,所以帶寬也是影響性能的一個重要因素,低速不穩定的網絡將致使應用的訪問阻塞,而穩定、高速的網絡帶寬能夠保證應用在網絡上暢通無阻運行。

相關文章
相關標籤/搜索