WEB服務器調優

jopen 10年前發布 | 14K 次閱讀 調優 Web服務器

1.操作系統參數優化:(1)硬件配置盡可能高配;(2)OS選型:Linux/Windows,32位/64位;若使用Linux,注意修改OPEN_FILES為65535,解決應用服務器too many open files 錯誤。

PS:帶寬 等這些都是輔助性的也要考慮。

2.JVM參數優化

-Xmx:初始化堆容量

-Xms:最大堆容量(講Xmx與Xms值設置相同,可以避免每次gc回收完成后jvm重新分配內存)

-MaxPermSize:(最大方法區容量)

-Xmn:年輕代大小-sun推薦配置為整個堆的3/8)

-Xss:128k,,每個線程的棧大小--每個線程分配的棧容量越大,可以建立的線程數就越少。jdk5.0以后,每個線程棧大小為1M,之前為256k。應當根據實際應用的線程所需大小進行調整。

回收器選擇:串行收集器(只適用于小數據量的情況,默認);并行收集器(吞吐量優先);并發收集器(響應時間優先)

JV迷么堆內存的分代:年輕代(Young Generation),年老代(Old Generation)和持久代(Permanent Generation).其中持久代主要存放的是Java類的類信息,與GC收集的Java對象的關系不大。只要年輕代和年老代才對GC有較大影響。

年輕代:新生的對象首先放在年輕代,目標就是盡可能快速的收集掉生命周期短的對象。

年老代:在年輕代中經歷了N次(可配置)GC后仍然活著,就會放到年老代中,年老代存放的都是生命周期長的對象。

持久代:存放靜態數據,如:Java Class,Method等。

3.Tomcat服務器性能優化:

maxThreads:最大線程數

minSpareThreads:保證最少的工作線程,相當于初始化;

maxSparethreads:最大工作線程,額可以將空線程殺掉從而保持這個線程數

acceptCount:允許排隊隊列的線程數

4.Nginx反向代理

Nginx是一個輕量級的HTTP服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,特點是占用內存少、并發能力強。借助于Nginx 對靜態資源高并發的處理能力來緩解部分Tomcat并發線程的處理,靜態資源被分組到Nginx服務器進行處理,不占用Tomcat處理線程池。

5.數據庫

6.緩存

7.分布式部署





調優的基本步驟如下: 

1)設置的是Web Server的最大并發用戶: 
這個設置是在conf/httpd.conf這個文件里面配置的。在Unix系統中,對應的屬性是MaxClient。 
2)設置Web Container的最大、最小并發用戶: 
在管理控制臺中點擊應用程序服務器 > server1 > 線程池 >WebContainer,根據測試性能情況和應用情況輸入合適的最小、最大進程數。 
3)對象請求代理(ORB)的線程池大小: 
在管理控制臺中點擊應用程序服務器 > server1 > ORB 服務 > 線程池,根據測試性能情況和應用情況輸入合適的最小、最大進程數。 
4)設置 數據庫的連接池 屬性: 
JDBC 提供者 >數據庫JDBC驅動名稱 > 數據源 > 數據源名稱> 連接池 ,根據測試性能情況和應用情況輸入合適的最小、最大連接數。 
5)JVM堆棧參數設置的性能調優: 
根據硬件物理內存和應用情況輸入合適的初始堆大小、最大堆大小。
(XX系統)K值調整針對WAS內存碎片問題IBM建議值:-Xk30000 -Xk24000,2400k (core dump拋出建議值)
6)ORB參數調用方式的性能調優: 
7) 關閉動態加載開關 : 

這個調優的步驟只是涉及了利用WAS服務器參數的調整來優化應用程序的性能,實際上性能的好壞很大部分是取決于應用的設計。系統上線前進行的性能測試也是重要的工作之一。 

Nginx反向代理減輕web應用服務器壓力。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!