因還沒(méi)能大概摸透tsung,對(duì)openfire的緊急性能測(cè)試只能寫(xiě)代碼使用smack來(lái)測(cè)了,期間出現(xiàn)了一些問(wèn)題。
1、因smack連接openfire中阻塞的,原本想象的多線程同時(shí)創(chuàng)建連接失敗了。
2、在PC上模擬,壓到800多一點(diǎn)就連不上了,查看openfire gc信息發(fā)現(xiàn)full GC頻繁,永久區(qū)滿了,于是把openfire啟動(dòng)腳本中的INSTALL4J_ADD_VM_PARAMS=注釋去掉,并改為INSTALL4J_ADD_VM_PARAMS=-Xms24g -Xmx24g -Xmn8g -XX:MaxPermSize=1g -XX:PermSize=1g 做個(gè)簡(jiǎn)單的配置,改了配置后gc少了,但到800多還是出問(wèn)題,后來(lái)想了想,是linux默認(rèn)打開(kāi)文件數(shù)的問(wèn)題(跟蹤打開(kāi)文件數(shù)也確定了問(wèn)題),ulimit -a看了下還是默認(rèn)的1024,使用ulimit -n 800000改后就好了。
3、在pc上模擬,java內(nèi)存配置得也算不小了,但是壓到1000多就出現(xiàn)了內(nèi)存溢出,于是決定到另一臺(tái)強(qiáng)力服務(wù)器(32g ram)上運(yùn)行。
4、打成jar在服務(wù)器上運(yùn)行發(fā)現(xiàn)加classpath還是無(wú)法找到依賴(lài)包,解決見(jiàn):http://lydawen.iteye.com/blog/1073321
在服務(wù)器上運(yùn)行時(shí),出現(xiàn)異常:
javax.net.ssl.SSLKeyException: RSA premaster secret error
at com.sun.net.ssl.internal.ssl.RSAClientKeyExchange.<init>(Unknown Source)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverHelloDone(Unknown Source)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown Source)
at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown Source)
at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at org.jivesoftware.smack.XMPPConnection.proceedTLSReceived(XMPPConnection.java:806)
at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:267)
at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:43)
at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:70)
Caused by: java.security.NoSuchAlgorithmException: SunTlsRsaPremasterSecret KeyGenerator not available
at javax.crypto.KeyGenerator.<init>(DashoA13*..)
at javax.crypto.KeyGenerator.getInstance(DashoA13*..)
at com.sun.net.ssl.internal.ssl.JsseJce.getKeyGenerator(Unknown Source)
... 13 more
經(jīng)查發(fā)現(xiàn)在pc機(jī)上運(yùn)行是使用eclipse來(lái)跑的,它自動(dòng)把一些安全相關(guān)的jar放到classpath,于是把這一堆jar也復(fù)制到依賴(lài)包目錄就好了。這些安全相關(guān)的包是:java_home\jre\lib\ext 下的包。
使用服務(wù)器也只連到9000多,測(cè)試機(jī)還是內(nèi)存溢出,估計(jì)對(duì)jvm參數(shù)再做調(diào)整也不會(huì)有太大改觀,且需要再優(yōu)化測(cè)試程序,還是趕緊熟悉tsung為妙。
聯(lián)系客服