Application Server配置技巧汇总
合理配置JVM内存是提升应用性能的核心基础,需根据服务器资源与应用负载调整参数:
-Xms(初始堆大小)和-Xmx(最大堆大小)限制堆内存范围,建议设置为服务器物理内存的70%-80%(如8G内存可设为-Xms6000m -Xmx6000m),避免频繁堆扩展导致性能下降。-XX:NewRatio调整新生代(Young Generation)与老年代(Old Generation)的比例(如-XX:NewRatio=2表示新生代占堆的1/3),适应不同应用的对象生命周期特点(如短生命周期对象多的应用可适当增大新生代)。-XX:+UseParallelGC(并行收集器),低延迟应用用-XX:+UseG1GC(G1收集器),避免使用已废弃的-XX:+AggressiveHeap(易导致内存溢出)。-Xss调整线程栈大小(如-Xss128k),减少每个线程的内存占用(默认值通常为512k-1m),适用于高并发线程场景。线程池是处理并发请求的关键,需平衡并发能力与资源消耗:
server.xml中通过<Executor>元素定义线程池(推荐),设置maxThreads(最大线程数,如200-500,根据并发量调整)、minSpareThreads(最小空闲线程数,如10-50,保持备用线程)、maxQueueSize(队列大小,如100-200,避免无限制排队)。standalone.xml的<subsystem xmlns="urn:jboss:domain:threads:1.2">中配置<thread-factory>的max-threads属性(如200),控制最大线程数,防止线程过多导致CPU竞争或内存溢出。maxThreads应比预期最大并发量多25%(如预期并发100,则设为125),acceptCount(等待队列长度)设为maxThreads的1.5-2倍(如maxThreads=200,acceptCount=300),避免请求被直接拒绝。数据库连接是应用性能的瓶颈之一,需合理配置连接池参数:
min-pool-size(最小连接数,如10-20,保持数据库连接的预热)和max-pool-size(最大连接数,如100-500,根据数据库承受能力调整),避免频繁创建/销毁连接。idle-timeout-minutes(空闲连接超时时间,如30分钟)自动回收空闲连接,释放数据库资源。test-on-borrow(借用时检查连接有效性)或test-while-idle(空闲时检查),避免使用失效连接(如validationQuery="SELECT 1")。standalone.xml的<datasource>中添加<pool>子元素,如<min-pool-size>10</min-pool-size> <max-pool-size>200</max-pool-size> <idle-timeout-minutes>30</idle-timeout-minutes>。连接器负责处理HTTP请求,需根据协议与应用场景优化:
org.apache.coyote.http11.Http11NioProtocol)或NIO2(org.apache.coyote.http11.Http11Nio2Protocol),替代传统的BIO(阻塞式I/O),提高并发处理能力(如Tomcat的<Connector protocol="org.apache.coyote.http11.Http11NioProtocol">)。compression="on"),设置compressionMinSize(最小压缩大小,如2048字节)、compressableMimeType(可压缩的MIME类型,如text/html,text/css,application/javascript),减少网络传输量(如Tomcat的<Connector compression="on" compressionMinSize="2048" compressableMimeType="text/html,text/css,application/javascript">)。connectionTimeout(连接超时时间,如20000毫秒=20秒)、disableUploadTimeout(禁用上传超时,true),避免长时间等待导致资源占用。缓存可显著减少重复计算与数据库访问,提升响应速度:
<cache>标签配置页面缓存(如Tomcat的<Context cachingAllowed="true" cacheObjectMaxSize="102400">),缓存静态页面或动态页面的片段。TTL=3600秒)。@Cacheable(value = "userCache", key = "#userId")),减少数据库查询次数。合理的日志与监控可快速定位性能问题,保障系统稳定:
logging.properties中将org.apache.catalina设为WARN,JBoss的jboss-log4j.xml中将org.jboss设为INFO),避免日志文件过大占用磁盘空间。maxDays="7"保留7天日志,JBoss的MaxFileSize="10240KB"、MaxBackupIndex="10"限制单个日志文件大小与备份数量),便于归档与分析。安全是应用服务器的基础,需防范常见攻击与风险:
server.xml中<Connector server="Apache">,JBoss的standalone.xml中<server name="default">),减少针对性攻击的风险。/manager)、JBoss的不必要子系统(如邮件服务、AOP服务),减少攻击面。<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" keystoreFile="conf/keystore.jks" keystorePass="changeit">,JBoss的standalone.xml中<subsystem xmlns="urn:jboss:domain:undertow:12.0">的ssl配置),保护数据传输安全。tomcat-users.xml)设置严格的访问控制,限制对敏感目录(如/WEB-INF)的访问。免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。