网站首页 > 精选教程 正文
今天上线上系统,把了一个线上已经运行很久的服务的JVM参数配置。平时服务都没有出现过JVM问题,所以对这些配置都没怎么关注。
心血来潮地扒了下,才发现竟然配置了这么多。
线上配置
-Djava.awt.headless=true
-Djava.net.preferIPv4Stack=true
-server
-Xmx6g
-Xms6g
-Xmn2560m
-XX:PermSize=512m
-XX:MaxPermSize=512m
-Xss256k
-XX:+DisableExplicitGC
-XX:+UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnabled
-XX:+UseCMSCompactAtFullCollection
-XX:LargePageSizeInBytes=128m
-XX:+UseFastAccessorMethods
详解
- -Djava.awt.headless=true
Headless 模式是系统的一种配置模式。在该模式下,系统缺少了显示设备、键盘或鼠标。
因为所有的系统都是运行在Centos的服务器上,这些服务器本身是没有这些设备的。所以开启这个可以告诉系统不要指望硬件帮忙了,只能依靠系统的计算能力来模拟这些特性。
- java.net.preferIPv4Stack=true
设置只支持IPV4。比如影响机器名的获取。
这个确保服务注册时,使用统一规则机器名进行注册,避免一些异常问题的产生。
- -server
JVM有两种模式:server模式和client模式。
server模式启动速度不如client模式,但启动后的性能会有很大的提升。服务本身就是更关注运行中的性能,启动的过程稍微慢点是可以 接收的。
- -Xms6g 分配的初始堆内存6g
- -Xmx6g 分配的最大堆内存6g
- -Xmn2560m 新生代大小
- -XX:PermSize=512m 永久代最初始内存
- -XX:MaxPermSize=512m 永久代最大内存
- -Xss256k 设置每个线程可使用的内存大小,即栈的大小
- -XX:+DisableExplicitGC 禁用代码中的手动 System.gc()
- -XX:+UseConcMarkSweepGC CMS垃圾回收器
- -XX:+CMSParallelRemarkEnabled 开启并行remark,加快remark的速度
- -XX:+UseCMSCompactAtFullCollection 启用压缩
- -XX:LargePageSizeInBytes=128m 指定 Java heap的分页页面大小
- -XX:+UseFastAccessorMethods get,set 方法转成本地代码(对于jvm来说是冗余代码,jvm将进行优化)
总结
线上的CMS垃圾收集器来降低STW时间,保证响应速度。
配置初始堆内存和最大堆内存来避免动态扩容、缩容带来的性能抖动。
猜你喜欢
- 2025-03-14 使用Android手机运行.NET(net开发安卓)
- 2025-03-14 迅速了解-Java网络编程(java的网络编程重要吗)
- 2025-03-14 什么是.NET开发?做一个.NET开发程序员
- 2025-03-14 用哪种语言写的应用漏洞最严重?六大主流语言代码漏洞分析出炉
- 2025-03-14 小话.NET(小话唠)
- 2025-03-14 .NET Framework 与 .NET Core:完整的快速比较
- 2025-03-14 .NET 与Java 常见技术名词与抽象概念对照表
- 2025-03-14 .NET与Java开发:一场从框架到应用实例的深度对决
你 发表评论:
欢迎- 04-11Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- 04-11Java中你知道几种从字符串中找指定的字符的数量
- 04-11探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- 04-11Python字符串详解与示例(python字符串的常见操作)
- 04-11java正则-取出指定字符串之间的内容
- 04-11String s1 = new String("abc");这句话创建了几个字符串对象?
- 04-11java判断字符串中是否包含某个字符
- 04-11关于java开发中正确的发牌逻辑编写规范
- 最近发表
-
- Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- Java中你知道几种从字符串中找指定的字符的数量
- 探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- Python字符串详解与示例(python字符串的常见操作)
- java正则-取出指定字符串之间的内容
- String s1 = new String("abc");这句话创建了几个字符串对象?
- java判断字符串中是否包含某个字符
- 关于java开发中正确的发牌逻辑编写规范
- windows、linux如何后台运行jar(并且显示进程名)
- 腾讯大佬私人收藏,GitHub上最受欢迎的100个JAVA库,值得学习
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)