处事集成平台机能测试与优化(应用与情况)
副标题#e#
方针:
按照四方面的设置调解,调查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 |
#p#副标题#e#
增补:
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%阁下。
上面测试功效可以看出:
#p#分页标题#e#
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的设置:
#p#分页标题#e#
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即可。