程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 服務集成平台性能測試與優化(應用與環境)

服務集成平台性能測試與優化(應用與環境)

編輯:關於JAVA

目標:

根據四方面的配置調整,觀察SIP5.5在高並發下的性能情況。

由於SIP接收的請求都是服務型處理請求,因此認為Apache+Jboss只會帶來多 余的轉發損耗,所以正好這次也作一個驗證,看看Apache+JBoss是否不適合於這 種純動態服務請求的情況。 

四方面環境比較:

1.JBoss APR模式與Http1.1模式性能差異。(確切來說應該是JBoss內置 Tomcat采用APR的情況)。

2.是否采用Apache+JBoss和Apache不同的轉發模塊帶來的性能差異。

3.Memcached Client版本優化後對性能影響。

4.ISP有不同延時對於SIP的性能影響。

前置條件:

SIP版本5.5,並發用戶600,ISP默認耗時20ms,Apache配置和JBoss WebContainer配置,一些優化配置參見附加信息。

最終結果:

SIP采用Apache(Mod_jk)+JBoss(APR)+Cache2.4.2,具體配置參見附加信息。

測試結果表格:

詳細的測試報告可以參看:http://spreadsheets.google.com/pub? key=pcsQ9Wm01cIEjjQcistPNDg

JBoss配置差異測試比較:

Apache(2.0.52)配置 JBoss(4.2.1)配置 Cache Client Version TPS TPS區間 無 APR 2.4.2 1705 1600-1900 無 HTTP1.1 2.4.2 1615 1550-1700 Mod_jk(1.2.27) HTTP1.1 2.4.2 2090 1800-2800 Mod_jk(1.2.27) APR 2.4.2 3223 3200-3400

補充:

配置成為Http1.1模式的兩種情況下,測試結果TPS波動頻率很高,在Mod_jk 模式下波動幅度也很大。

1.可以證實在非APR模式和高並發的情況下Web容器處理請求能力不穩定,同 時也直接影響到了SIP的性能。

2.在測試中發現不采用APR模式的情況下,Web容器會消耗大量的socket連接 通道。

Apache模塊差異測試比較:

Apache(2.0.52)配置 JBoss(4.2.1)配置 Cache Client Version TPS TPS區間 無 APR 2.4.2 1705 1600-1900 Mod_jk(1.2.27) APR 2.4.2 3223 3200-3400 Weblogic.so APR 2.4.2 1033 350-1400

補充:

Weblogic.so模塊是以前系統遺留的http請求轉發模塊。在測試過程中 Weblogic模塊的測試中波動頻率和幅度都很大。根據測試結果可以看出:

1.在APR模式下,Apache+JBoss對於SIP這種無靜態資源訪問,純API性質的服 務來說依舊會有比較好的優化效果,特別是在接受請求環節。(不論是TPS還是 TPS波動區間和頻率都有很好的表現)

2.Weblogic.so這個模塊性能絕對不行,穩定性極差。

Cache客戶端版本差異測試比較:

Apache(2.0.52)配置 JBoss(4.2.1)配置 Cache Client Version TPS TPS區間 無 APR 2.4.2 1705 1600-1900 無 APR 2.4 1615 1550-1700 Mod_jk(1.2.27) APR 2.4.2 3223 3200-3400 Mod_jk(1.2.27) APR 2.4 2485 2650-2800

補充:

2.4.2和2.4版本在單獨測試的環境下:500並發用戶,每個並發用戶1000次 get和set,性能相差40%左右。

上面測試結果可以看出:

1.在無apache時,性能有所提升,但不明顯,而在有apache時,性能大幅提 升,證明在無apache的情況下,memcache客戶端已經不是性能瓶頸,因此替換版 本效果不大,在http請求處理性能大幅提升的情況下,memcache客戶端性能優化 的優勢就得到了體現。

2.在測試中也發現Apache + JBoss波動頻率和區間都小於其他幾個測試情況 ,圖形十分平穩,證明處理請求不是系統瓶頸。

ISP響應時間差異測試比較:

Apache(2.0.52)配置 JBoss(4.2.1)配置 Cache Client Version ISP響應時間(ms) TPS TPS區間 Mod_jk(1.2.27) APR 2.4.2 20 3223 3200-3400 Mod_jk(1.2.27) APR 2.4.2 110     Mod_jk(1.2.27) APR 2.4.2 900    

測試優化總結:

1.不要認為內存使用無關性能。現在很對開發者認為內存申請分配是由gvm 來管理,但是內存是否合理使用很可能會影響互聯網應用的高並發下性能。GC帶 來的系統短暫停滯會在高並發下影響性能。

2.使用java的方法需要有足夠的“理由”和“度”。 Java在1.5以後對concurrent方面做了很不錯的支持,但是這些並發處理畢竟會 消耗資源,因此在能夠避免頻繁使用的情況下盡量優化流程。在一些簡單的場景 下,是否有必要使用一些比較耗時的方法,例如split,用起來很方便,但是在 設計底層通信操作的時候還是分秒必爭(JProfiler看看消耗的時間占用的比例 以及調用的次數),用一些自己簡單的方式替換。

3.眼見未必為實,測試才得真知。在SIP5.5中考慮連接後端ISP方式由 HttpURLConnection替換成為HttpClient,感覺HttpClient的開發模式更加容易 認為是共享傳輸通道(Get,Post都單獨作為包來交由HttpClient單個實例),雖 然看到HttpURLConnection說明中提到會共享通道。結果一壓,HttpClient根本 上不去,原因是構建這些Get,Post本身也很耗時,同時HttpURLConnection底層 共享優化的也很不錯。HttpClient的優勢還是在於去構建簡單的客戶端,能夠處 理附加cookies等額外需求。

4.鏈式處理的情況下,上下文中共享信息減少數據頻繁訪問緩存。

5.操作系統配置以及Web容器的配置會直接影響應用的性能,特別是一些 Socket交互比較頻繁,會有很大並發的應用。具體的配置可以參見最後的說明。

6.APR模式對於服務器處理能力有很大的影響,Epoll和Unix socket都會來 帶很大的性能提高(降低資源消耗)。

7.在過去談過異步Servlet的方式(Servlet3.0的特性之一),但是JBoss5 測試下來看,穩定性並不好,並且可能會有一些並發問題。

8.先列出性能瓶頸可能點,然後分別對已經優化的模塊進行單獨測試,最後 整合並且通過多場景測試來驗證優化結果。

附加信息:

JBoss Web Container配置:

<Connector port="8128" address="${jboss.bind.address}"

         maxThreads="1024" maxHttpHeaderSize="8192"

         emptySessionPath="true" protocol="HTTP/1.1"

         enableLookups="false" redirectPort="8443" acceptCount="1024"

         connectionTimeout="20000" disableUploadTimeout="true" useBodyEncodingForURI="true"/>

Apache work的配置:

Keep alive off

<IfModule worker.c>

ServerLimit          80

ThreadLimit          128

StartServers         10

MaxClients           8000

MinSpareThreads      64

MaxSpareThreads      800

ThreadsPerChild      100

MaxRequestsPerChild 10000

</IfModule>

Linux配置信息:

執行:vi /etc/sysctl.conf

添加一行:net.ipv4.ip_local_port_range = 1024 65535

再執行:sysctl -p

更改ulimit –n屬性,可用端口數,還有ip_conntrack_max

APR:

Tomcat優化了IO(sendfile,epoll,OpenSSL)。操作系統的一些函數(隨機數的 產生,系統狀態的獲取等),本地進程優化(共享內存,NT的管道,Unix的 Socket)。Tomcat有配置監聽器直接會檢測APR模塊是否存在,在bin目錄下建立 native目錄,並且放置對應的so或則dll即可。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved