10 伺服器調優

2021-09-02 10:03:31 字數 2812 閱讀 8989

前章講到tomcat+apache伺服器的整合,提高伺服器的訪問效率,tomcat負責jsp的訪問,apache負責對靜態檔案、、html、其他資源的訪問。

1、apache+jk+tomcat整合

2、負載均衡

3、容量計畫

1.1、apache整合tomcat

apache和tomcat的整合有三種方式,分別是jk、http_proxy和ajp_proxy.其中jk方式是最常見的方式,jk本身有兩個版本分別是1和2,目前1最新版本是1.2.8,而版本2早已經廢棄了。http_proxy是利用apache自帶的mod_proxy模組使用**技術來連線tomcat。ajp_proxy連線方式其實跟http_proxy方式一樣,都是由mod_proxy所提供的功能。只需要把配置中的http://換成ajp://,同時連線的是tomcat的ajp connector所在的埠。

相對於jk的連線方式,後兩種在配置上比較簡單的,靈活性方面也一點都不遜色。但就穩定性而言不像jk這樣久經考驗,所以建議採用jk的連線方式。

apache+jk+tomcat配置:

使用到的兩個配置檔案分別是:httpd.conf和mod_jk.conf。其中httpd.conf是apache伺服器的配置檔案,用來載入jk模組以及指定jk配置檔案資訊。mod_jk.conf是到tomcat伺服器的連線定義檔案。

【部署步驟】

1.安裝apache伺服器

2.部署tomcat

3.將mod_jk.so拷貝到modules目錄下面

4.修改httpd.conf和mod_jk.conf

【適用場景】 大量使用靜態頁面的應用系統。

1.2、apache和tomcat集群

對於併發要求很高的系統,我們需要採取負載均衡的方式來分擔tomcat伺服器的壓力。負載均衡實現大概有四種:第一是通過dns,但只能簡單的實現輪流分配,不能處理故障;第二是基於ms iis,windows 2003 server本身就帶了負載均衡服務;第三是硬體方式,通過交換機功能或專門的負載均衡裝置來實現;第四種是軟體的方式,通過一台負載均衡伺服器進行,上面安裝軟體。使用apache httpd server做負載均衡器,tomcat集群節點使用tomcat就可以做到上述第四種方式,這種方式比較靈活,成本相對比較低,另外乙個很大的優點就是可以根據應用情況和伺服器的情況做一些靈活的配置。所以推薦使用apache+tomcat集群來實現負載均衡。

採用tomcat集群可以最大程度的發揮伺服器的效能,可以在配置較高的伺服器上部署多個tomcat,也可以在多台伺服器上分別部署tomcat,apache和tomcat整合的方式還是jk方式。經過驗證,系統對大使用者量使用的響應方面,apache+3tomccat集群》 apache+2tomcat集群 > apache整合tomcat > 單個tomcat。並且採用apache+多tomcat集群的部署方式時,如果乙個tomcat出現宕機,系統可以繼續使用,所以在硬體系統效能足夠優越的情況下,需要盡量發揮軟體的效能,可以採用增加tomcat集群的方式。

apache+tomcat集群的方式使用到得配置檔案有httpd.conf、mod_jk.conf、workers.properties。其中mod_jk.conf是對jk資訊的配置,包括jk的路徑等,workers.properties配置檔案是對tomcat伺服器的連線定義檔案。

apache需要調整執行引數,這樣才能構建乙個適合相應網路環境的web服務。其中可進行的優化配置如下:

1.設定mpm(multi processing modules多道處理模組)。threadperchild,這個引數用於設定每個程序的執行緒數,在windows環境下預設值是64,最大值是1920,建議設定為100-500之間,伺服器效能高的話值大一些,反之小一些。maxrequestperchild表示每個子程序能夠處理的最大請求數。這個引數的值更大程度上取決於伺服器的記憶體,如果記憶體比較大的話可以設定為很大的引數,否則設定乙個較小的值,建議值是3000.

2.關閉dns和名字解析 hostnamelookups off

3.開啟usecanonicalname模組 usecanonicalname on

4.關閉多餘模組 一般來說,不需要載入的模組有,mod_include.so、mod_autoindex.so、mod_access.so、mod_auth.so.

5.開啟keepalive支援

keepalive on, keepalivetimeout 15 maxkeepaliverequests 1000

根據實際經驗,通過apache和tomcat集群的方式提高系統效能的效果十分明顯,這種方式可以最大化的利用硬體資源,通過多個tomcat的處理來分擔單tomcat時的壓力。

【部署步驟】

1.安裝apache伺服器

2.部署tomcat集群,即多個相同的tomcat。

3.將mod_jk.so拷貝到modules目錄下面

4.修改httpd.conf、mod_jk.conf和workers.properties

搜尋:apache tomcat 配置

1.3、容量計畫

與硬體、網路、作業系統相關的評估

採用什麼樣的硬體體系?需要多少臺計算機?使用乙個大型的,還是使用多台小型機?每個計算機上使用幾個cpu?使用多少記憶體?使用什麼樣的儲存裝置,i/o的處理速度有什麼要求?怎樣維護這些計算機?不同的jvm在這些硬體上執行的效果如何(比如ibm aix系統只能在其設計的硬體系統上執行)?

頻寬的使用極限是多少?web應用程式如何處理過多的請求?

採用哪種作業系統作為站點伺服器最好?在確定的作業系統上使用哪個jvm最好?例如,jvm在這種系統上是否支援本地多執行緒,對稱多處理?哪種系統可使web伺服器更快、更穩定,並且更便宜。是否支援多cpu?

nginx伺服器調優

為了滿足併發要求,本次對某個介面進行壓測,目標是併發1200 實際可以達到1600 rt 1s以內 nginx tomcat集群 1 剛開始啟動200執行緒,30秒,沒有任何問題,響應時間也正常 2 將持續時間調整到300秒後,執行到一定時間就會報錯,並且後續請求都是錯誤 3 通過檢視error日誌...

伺服器調優原理

動態優先順序 核心自動檢測占用cpu時間的程序,自動調整程序的優先順序 手動優先順序調整 調整nice值,但是核心也會再動態調整這些手動調整優先順序高的程序 cpu排程佇列 0 139個優先順序佇列 核心從優先順序由高到低挨個掃瞄佇列,排程策略 先到先得,輪流,完全公平 cfs 核心排程實時程序 先...

Nginx Nginx伺服器配置調優

1 nginx伺服器配置調優 5 設定nginx全域性引數 vi usr local nginx conf nginx.conf 編輯 worker processes 2 工作程序數,為cpu的核心數或者兩倍 events 以下 在http 部分增加與修改 server names hash bu...