使用 Virtualize 服务器时,为获得最佳性能,我们建议采用以下配置:
您可以通过在 Tomcat 等 web 服务器中部署 soavirt.war 或使用 virtualizecli 可执行文件启动 Virtualize 应用程序来实现这一目的。
示例:
virtualizecli.sh -startServer -data <WORKSPACE_LOCATION> |
应始终在负载测试开始前停止监控虚拟资产(包括服务器和所有工作站上的虚拟资产)。
您可以按照以下方式彻底禁用监控:
也可在持续测试平台服务器页面执行相应操作来进行无头部署。
为使 Virtualize 达到最佳性能,需设置以下系统属性并对 Tomcat 的 server.xml 完成少许修改。
在启动时设置 JVM 属性,以增加堆内存(至少 4GB)并更改垃圾回收器。
Virtualizecli:
virtualizecli.sh -startServer -data <WORKSPACE_LOCATION> -J-Xms2048m -J-Xmx4096m -J-server -J-XX:+UseConcMarkSweepGC -J-XX:+DisableExplicitGC -J-XX:+UseCompressedOops -J-XX:NewRatio=1 |
WAR 部署(配置在 <TOMCAT_HOME>/bin/setenv 文件中):
JAVA_OPTS=-Xms2048m -Xmx4096m -XX:+UseConcMarkSweepGC -XX:+DisableExplicitGC -XX:+UseCompressedOops -XX:NewRatio=1 |
配置 server.xml
<TOMCAT_HOME>/conf
文件夹下的 server.xml 文件中找到 HTTP Connector 元素。virtualizecli 的默认连接器端口是 9080,部署在 Tomcat 中的 WAR 默认连接器端口是 8080。acceptorThreadCount、enableLookups 和 maxThreads
属性,如下所示:示例:
<Connector URIEncoding="UTF-8" acceptorThreadCount="2" connectionTimeout="20000" enableLookups="false" maxThreads="750" name="default" port="9080" protocol="HTTP/1.1" redirectPort="9443" server="Parasoft Server"/> |
这会告诉 Tomcat 保持一个 750 个线程的处理线程池。它还会将接收器线程数设置为 2,并禁用 DNS 查找。
在文件底部找到 Valve 元素。
注释掉 Valve 元素,如下所示:
示例:
<!--<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false" /> --> |
这能够防止 Tomcat 在服务器每次被访问时都在日志位置记录大量日志信息。
如果使用的是 Windows 系统,您可以在注册表中调整一些参数:
找到以下注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters |
这将增加 Windows 中允许的 TCP 并发连接数(MaxUserPort),并减少未使用的 TCP 端口在重新使用前的保留时间(TcpTimedWaitDelay)。
可能有必要调整 Linux 服务器以获得高吞吐量。以下是一些可能有用的系统设置。这些设置适用于 Virtualize 和负载生成工具。
ulimit -u 4096 |
设置单个用户可使用的最大进程数。这一设置十分重要,因为 java 线程是进程,进程数过低可能导致无法生成新线程。
sysctl -w net.ipv4.tcp_tw_reuse=1 sysctl -w net.ipv4.tcp_tw_recycle=1 |
以上设置使操作系统能够快速重复使用和回收网络套接字。这一设置在高负载情况下十分重要,因为套接字可能会被频繁使用和丢弃。
sysctl.conf |
您可能需要调整 tcp 缓冲区。可以根据网络配置修改多个 sysctl 参数。更多信息,请参阅 Linux Tuning 文档。
建议尽可能减少 Virtualize 服务器和数据资源库服务器之间的网络延迟。进程之间的网络延迟会对负载情况下 Virtualize 服务器的性能产生负面影响,用户最常用的方法是将它们安装在同一台机器上,或尽可能安装在同一地点的两台机器上(例如,同一数据中心区域)。数据资源库服务器可能会消耗大量内存,因此将其安装在与 Virtualize 服务器相同的机器上时,建议该机器至少有 32GB RAM(请参阅 部署建议)。