Tomcat NIO Configuration

Posted on Thu 10 January 2013 in it • Tagged with Tomcat, 性能测试

Netty HTTP Server相比Tomcat更加轻量之外,性能也会好得多,因为Tomcat默认是用的阻塞式IO。 到时候做性能比较测试时再增加一组打开非阻塞的Tomcat做对比,应该很有意思。

标准参数

protocol的取值: org.apache.coyote.http11.Http11Protocol - blocking Java connector org.apache.coyote.http11.Http11NioProtocol - non blocking Java connector org.apache.coyote.http11.Http11AprProtocol - the APR/native connector.

Samples: <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443" /> minProcessors ...


Continue reading

Apache2.2 with OpenSSL的性能调研

Posted on Wed 16 September 2009 in 我用(IT) • Tagged with https, PKI, 性能测试

终于找到耗尽CPU的原因了:openssl genrsa -des3 -out server.key 4096。长达4096bit的RSA密钥,八核的xeon顶多支持每秒60个请求。

降低到1024bit:openssl genrsa -out server.key 1024。单客户端测试,性能提升依然有限,但能明显看到CPU负载的降低。

猜想是客户端能达到的并发性能也比较有限,于是采用多客户端nx100来进行。今天试出2x100并发,此时消耗服务器CPU30%的结果,得到40+60的吞吐量,基本松了一口气。

在安全和性能间取舍,明天测测128bit密钥的性能。


Continue reading

无视Https证书是否正确的Java Http Client

Posted on Thu 10 September 2009 in 我用(IT) • Tagged with https, PKI, 性能测试, 通讯协议

需要保证通讯的端到端安全,大家一致认为Https方式最适合,但需要评估性能代价。

采取ajp connector貌似无法直接使用httpd2进行load balance了,而且proxy模式的性能实在是让人心寒;jk connector如果tomcat不配ssl,据说需要forward一下,还没有搞定。

为了测试性能,写了个可以无视Https证书是否正确都能连接的Java Http Client。以为很简单的一段代码,绕是迈过了两个小门槛,才搞定的。code可以拿出来晒一晒了。

运行环境jdk1.6,不需要其它类库。

package test;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;

import javax.net.ssl ...

Continue reading

JMeter小收获

Posted on Sat 05 September 2009 in it • Tagged with JMeter, 性能测试

应测试部之邀,准备一次JMeter JavaSample开发培训。
离上次看文档相隔了一年半,发现收获不小,窃喜并记录。
1. 用JMeter通过Tomcat5.x监控Server性能
http://jakarta.apache.org/jmeter/usermanual/build-monitor-test-plan.html
2. 通过跑Sleep Test来了解JMeter的支持能力
发现有一些Listener在大并发下太影响性能了,最好别添加。
3. 通过Ant调JMeter
http://www.programmerplanet.org/pages/projects/jmeter-ant-task.php
http://www.infoq.com/news/2008/04/JMeter-Ant-CI
4. 要说说JMeter的优点了
1)从08年初到现在,版本从2.3.1升到2.3.4。说明发展得已经比较稳定了 ...


Continue reading

【性能测试】写了一个监控服务器性能的小工具

Posted on Mon 04 February 2008 in 我用(IT) • Tagged with Python, 性能曲线, 性能测试

- 功能
1. 在后台启动Linux自身的监控命令并生成日志
2. 分析生成日志并转换成csv格式

- 使用方法
1. 拷贝service.py和os_log_parser.py到本地
2. service.py start启动监控
本地会生成[pid]子目录,生成相关监控日志
3. service.py stop停止监控
4. service.py parse 日志转成svn

- 用Excel生成性能曲线
1. 用Excel打开CVS文件,选定要生成图表的数据区域
2. 单击“常用”工具栏上的“图表向导”按钮。或者选择菜单“插入→图表”命令。打开“图表向导”对话框
3. 在打开的图表向导中点击折线图,然后点选下一步,直到“图表向导-4 步操之3 ...


Continue reading

【性能测试】【JMeter】编写JavaSamplerClient

Posted on Thu 17 January 2008 in 我用(IT) • Tagged with JMeter, 性能测试

- 目的
定制用户行为,例如实现客户端加密协议等。

- 步骤
1. 继承AbstractJavaSamplerClient
这是一个实现了JavaSamplerClient接口的抽象类。这个类提供了此接口默认的大部分方法,通过对它的继承,可以简化开发的JavaSamplerClient的实现。

2. 主要接口说明
2.1 getDefaultParameters
public Arguments getDefaultParameters()
提供测试支持的参数列表。用于把测试的一些默认数据在程序运行前显示到JMeter客户端,这个可以和runTest配合使用,实现数据的呈现和配置。
 public Arguments getDefaultParameters() {
  Arguments params = new Arguments();
  // define argument show in JMeter console
  params.addArgument("url", "http://URL");
  return params;
}
 
2.2 runTest
public SampleResult runTest(JavaSamplerContext context ...


Continue reading