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應用服務器壓力。