java相关参数

java相关参数

官方文档:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html

选项分类

  • -选项名称: 标准选项,所有HotSpot都支持
  • -X选项名称: 非标准选项,稳定的
  • -XX:选项名称: 非标准选项,不稳定的,下个版本可能会取消

查看java选项帮助:

java -h 		#查看标准选项
java -X 		#查看稳定非标准选项
java -XX:+PrintFlagsFinal 2>/dev/null	#不稳定选项
java -XX:+PrintCommandLineFlags 2>/dev/null	#当前运行的选项

常用选项:

-Xms4g		初始化的Heap内存(年轻代+老年代)
-Xmx4g		jvm最大内存(新+老+永久),不建议超过32G,因为内存管理效率下降。一般建议初始化与最大设成一样,避免内存碎片、浪费申请时间
-XX:NewSize=128m		年轻代初始大小
-XX:MaxNewSize=256m		年轻代最大大小
-Xmn1g				年轻代的初始和最大固定1g
-XX:NewRatio=1/2		比例方式设置年轻代与老年代大小,如:2或1/2(新分1,老分2)
-XX:SurvivorRation=6/1		比例设置eden和幸存区大小
-XSS256k			设置每个线程私有的栈空间大小,依据具体线程大小和数量
-XX:+PrintGCDetails		打印代码运行信息
-XX:+HeapDumpOnOutOfMemoryError 	把heap的oom错误打印到文本

tomcat性能优化常用配置:

内存空间优化:

JAVA_OPTS="-server -Xms4g -Xmx4g -XX:NewSize= -XX:MaxNewSize= "
说明:
  -server:服务器模式
  -Xms:堆内存初始化大小
  -Xmx:堆内存空间上限
  -XX:NewSize=:新生代空间初始化大小 
  -XX:MaxNewSize=:新生代空间最大值
生产案例:

一台tomcat服务器并发连接数不高,可能2000就扛不住,生产建议分配物理内存通常4G到8G较多,如果需要更多连接,一般会利用虚拟化技术实现多台tomcat

vim catalina.sh 
JAVA_OPTS="-server -Xms4g -Xmx4g -Xss512k -Xmn1g -XX:CMSInitiatingOccupancyFraction=65 -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:+DisableExplicitGC -XX:MaxTenuringThreshold=10 -XX:NewRatio=2 -XX:PermSize=128m -XX:MaxPermSize=512m -XX:CMSFullGCsBeforeCompaction=5 -XX:+ExplicitGCInvokesConcurrent -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods"

tomcat线程池(并发)调整:

常用属性:

connectionTimeout	连接超时时长,单位ms
maxThreads		最大线程数,默认200
minSpareThreads		最小空闲线程数
maxSpareThreads		最大空闲线程数
acceptCount		当启动线程满了之后,等待队列的最大长度,默认100
URIEncoding		URI地址编码格式,建议使用 UTF-8
enableLookups		是否启用客户端主机名的DNS反向解析,缺省禁用,建议禁用,就使用客户端IP就行
compression		是否启用传输压缩机制,建议"on",CPU和流量的平衡
	compressionMinSize	启用压缩传输的数据流最小值,单位是字节
	compressableMimeType	定义启用压缩功能的MIME类型text/html, text/xml, text/css,text/javascript

修改连接器的参数

vim server.xml
<service>
	...
	<Connector port="8080" protocol="HTTP/1.1"  connectionTimeout="20000" redirectPort="8443" />
</service>
posted @ 2022-02-22 15:35  suyanhj  阅读(71)  评论(0)    收藏  举报