对于AWS PaaS私有安装客户,安装介质默认是未经参数优化的。获得稳定可靠的服务,必须根据实际硬件环境和访问量进行适当的调优。
当部署的生产环境出现性能问题时,请首先对以下常规配置项进行检查:
重点检查项 | 说明 |
---|---|
每Web实例最大并发数 | 瞬间能处理的用户端页面/API请求。 Web总最大处理数 = Web实例数 * 每Web实例最大并发数 参数: %AWS-HOME%/webserver/webapps/portal/WEB-INF/classes/aws-server.xml#maxConnector 建议:800-1200(修改需重启Web服务) |
Connector参数 | 80端口Connector 配置参数 %AWS-HOME%/webserver/conf/server.xml#Connector port="80或默认8088" 建议: maxPostSize ="-1";maxThreads 不低于aws-server.xml#maxConnector ;connectionTimeout 不低于2秒;启用compression 相关参数启用SSL后的433端口 Connector 配置参数 %AWS-HOME%/webserver/conf/server.xml#Connector port="443" 建议: 增加 maxPostSize ="-1";maxThreads 不低于aws-server.xml#maxConnector ;connectionTimeout 不低于2秒;启用compression 相关参数 |
JVM参数 | 启动Web服务的JVM参数。分配内存后,应确保操作系统剩余可用内存不低于2g 参数: %AWS-HOME%/webserver/bin/catalina.sh(catalina.bat)#JAVA_OPTS 建议: -Xms1.5g -Xmx1.5g 或者 -Xms2g -Xmx2g |
重点检查项 | 说明 |
---|---|
每App实例最大并发数 | 瞬间能处理的Web端请求。 总最大处理数 = App实例数 * 每App实例最大并发数 参数: %AWS-HOME%/bin/conf/server.xml#connector#maxClient 建议:800-1200。公式:Web总最大处理数/App实例数 |
数据库连接池初始化数 | 启动AWS时,默认与DB准备好的可用连接资源。 参数: %AWS-HOME%/bin/conf/server.xml#database#initialSize 建议:不低于50,但不能高于maxActive |
数据库最大连接数 | 同时连接数据库的最大连接数。参数:%AWS-HOME%/bin/conf/server.xml#database#maxActive 建议:每App实例最大并发数*(0.5~1) |
数据库sql debug开关 | 生产环境禁止长期开启sql debug开关。 参数: %AWS-HOME%/bin/conf/aws-log4j.xml # <Logger name="com.actionsoft.sql" additivity="false" level="OFF"> 建议:level="OFF" 原因:sql输出,影响性能 |
数据库sql Connection占用明细开关 | 生产环境禁止长期开启sql debug开关。 参数: %AWS-HOME%/bin/conf/server.xml#debug#sql 原因:track跟踪,影响性能 |
CONSOLE控制台命令行模式 | 如App服务由后台进程启动(无终端窗口),必须关闭命令行支持。 参数: %AWS-HOME%/bin/conf/server.xml#connector#shell 建议:false |
JVM参数 | 启动App服务的JVM参数。分配内存后,应确保操作系统剩余可用内存不低于2g 参数: %AWS-HOME%/bin/aws_startup.sh(startup.bat)#JAVA_OPTS 建议: -Xms2g -Xmx2g (2g-4g) |
需要针对数据库类型进行调优,常规调优以DBA建议为主。
重点检查项 | 说明 |
---|---|
数据库最大游标数 | 同时连接数据库的最大连接数,建议不低于总最大处理数 。总最大处理数 = App实例数 * 每App实例同时连接数据库的最大连接数 |
如果是Oracle数据库,建议将AWS表创建在非
users
的独立表空间,并设置该表空间自增长
对上述Web、App和数据库服务器的操作系统最大文件句柄数进行调优,建议调整为65535
1. 查看当前系统最大文件句柄数
在终端执行ulimit -a
命令,查看open files
值
2. 设置和生效配置
编辑 /etc/security/limits.conf文件,增加如下行:
* soft nofile 65535
* hard nofile 65535
重启操作系统
对上述Web、App和数据库服务器的Socket动态端口范围值进行调优。如果范围值过低,可能会导致高并发下临时端口不够用。
1. 查看当前系统动态端口范围值
//在cmd窗口执行以下命令
netsh int ipv4 show dynamicport tcp
netsh int ipv4 show dynamicport udp
netsh int ipv6 show dynamicport tcp
netsh int ipv6 show dynamicport udp
2. 设置和生效配置
以下start
=2000,num
=63000仅参考
//在cmd窗口执行以下命令
netsh int ipv4 set dynamicport tcp start=2000 num=63000
netsh int ipv4 set dynamicport udp start=2000 num=63000
netsh int ipv6 set dynamicport tcp start=2000 num=63000
netsh int ipv6 set dynamicport udp start=2000 num=63000
重启操作系统