O2OA(翱途)服务器配置与管理-如何修改服务器内存占用率?

news2024/9/20 13:14:11

o2server 启动后一般占用大约4G~6G内存空间,在启动脚本中默认设置 -Xms2g 限定heap(堆)的大小最小2G,可以通过设置-Xmx来设置堆的上限.

Xms

-Xms2g:设置JVM初始堆内存为2g.此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存.

Xmx

-Xmx5g:设置JVM最大堆内存为5g.如果不设置默认情况下为物理内存的1/4.

内存占用

下面我们看一下o2server实际内存占用.通过 top 命令可以看到运行中o2server的pid号为:15167

top内存.png

实际占用内存4.014g.但是这4g内存中有很大一部分处于空闲状态.

通过命令:

/data/o2server/jvm/linux_java11/bin/jhsdb jmap --heap --pid 15167

我们可以查看到内存占用情况如图:

jhsdb.png

实际堆占用内存2458M,使用1486M,空闲971M

实际占用内存至少有40%是处于free状态预留的.

MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70

其中MinHeapFreeRatio = 40表示如果free的内存比上现在占用的内存,也就是空闲比例小于40,那么jvm将向系统申请一些内存以至少达到40%的比例---扩容.

其中MaxHeapFreeRatio = 70表示如果free的内存比上现在占用的内存,也就是空闲比例大于70,那么jvm将减少占用的内存,并将减少占用的内存释放操作系统--缩容.

设置
-XX:MaxHeapFreeRatio,-XX:MinHeapFreeRatio

如果内存比较紧张,比如在docker环境中,我们可以通过设置-XX:MaxHeapFreeRatio和-XX:MinHeapFreeRatio,减少jvm预留的空间:

````shell
-XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=25
````

当空闲内存大于25%时进行缩容,当空闲内存小于10时进行扩容.减少预留的free空间.

设置GC

再次运行jhsdb查看

jhsdb_2g.png

虽然设置已经生效但是实际内存并没有释放回操作系统,还是占用在预留空间中,java11默认使用G1GC,jvm并不一定会立即归还系统内存.我们将GC改为serialGC(-XX:+UseSerialGC).

jhsdb_serialGC.png

可以看到jvm立即归还了内存,在不同的GC下表现并不一致,G1GC也会逐渐归还内存给操作系统.

在Java12中可以使用ShenandoahGC(-XX:+UseShenandoahGC),可以更快的将可释放的内存归还给操作系统.

总结

各种常用的GC中只有ParallelGC不具备内存伸缩能力.而其他的GC.例如:Serial.CMS,G1,ShenandoahGC都具备内存伸缩能力.需要说明的是,具备伸缩能力的前提是Xms小于Xmx,其伸缩能力上限由Xmx限制,伸缩能力下限由Xms限制.伸缩的比例由MaxHeapFreeRatio和MinHeapFreeRatio控制,其中Serial和CMS的效果一般,G1需要借助FGC才能将不再使用的内存归还给操作系统.至于JDK12带来的ShenandoahGC,效果非常好,而且不需要依赖FGC,异步就能完成完成内存伸缩.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2058137.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LLM 压缩之二: ShortGPT

0. 资源链接 论文: https://arxiv.org/pdf/2403.03853 项目代码: 待开源 1. 背景动机 现有的大语言模型 LLM 推理存在以下问题: LLM 模型因为 scale law 极大的提高模型的预测能力,但是同样带来较大的推理延时;对于 LLM 应用部署带来较大…

软件设计师全套备考系列文章6 -- 线性表、栈和队列、串、数组、矩阵、广义表

软考-- 软件设计师(6)-- 线性表、栈和队列、串、数组、矩阵、广义表 文章目录 软考-- 软件设计师(6)-- 线性表、栈和队列、串、数组、矩阵、广义表前言一、线性表二、栈和队列三、串、数组、矩阵、广义表 前言 考试时间&#xff…

反向代理:定义与核心作用

反向代理:定义与核心作用 一、反向代理的定义二、反向代理的核心作用 💖The Begin💖点点关注,收藏不迷路💖 反向代理,作为网络架构中的重要组件,扮演着关键角色。本文将简洁介绍反向代理的定义及…

出现 2003 - Can’t connect to MySQL server on ‘xxx‘(10060) 解决方法

目录 1. 问题所示2. 原理分析3. 解决方法1. 问题所示 sql链接远程服务器的时候,出现如下问题: 2003 - Can’t connect to MySQL server on xxx(10060)截图如下所示: 2. 原理分析 错误代码 10060 表示“连接超时”,说明客户端在尝试连接到服务器时,服务器没有响应或者响…

qtsql连接达梦数据库

odbc window和linux都有odbc的中间件,可以通过odbc中间件配合qtsql连接数据库 windows下配置odbc linux配置odbc apt install unixodbc unixodbc-dev /etc/odbcinst.ini配置 [DM8 ODBC DRIVER] DescriptionDM8 ODBC Driver DRIVER/opt/dmdbms/bin/libdodbc.so/et…

LevelDB源码分析(一)安装编译和简单Demo

初识LevelDB 认识LevelDB & 源码下载编译Mac源码下载和编译运行 认识LevelDB & 源码下载编译 LevelDB是 Google 编写的key-value存储库,提供从Key到Value的有序映射。 LevelDB的代码量相比其他开源项目较少,除了测试之外大约有不到两万行代码。 …

LabVIEW软件定制开发公司的前景如何?

LabVIEW软件定制开发公司的前景在当前的技术发展环境下展现出一定的潜力与挑战。这一领域的市场前景主要受到工业自动化、物联网、智能制造等技术趋势的推动,同时也受到行业竞争、技术更新以及人才市场的制约。 ​ 市场需求与增长潜力 随着工业4.0、物联网和智能制…

halcon的HObject被释放

经过简述 某项目由我统一管理HObject(区域和图像)的释放。发现某区域被系统外部所释放。可能有两种情况:a,区域交给我后,释放了。b,获取我的区域后释放了。 最终证明是第二种情况,证明如下: a,…

百度地图SDK Android版开发 7 覆盖物示例1

百度地图SDK Android版开发 7 覆盖物示例1 前言界面布局MapMarker类常量成员变量初始值Marker点击事件Marker拖拽事件创建覆盖物移除覆盖物设置属性 MapMarkerActivity类控件响应事件 运行效果图 前言 文本介绍Marker的常用属性、交互和碰撞示例。 示例功能如下: …

设计模式六大原则(一)–单一职责原则(C#)

文章目录 1. 什么是单一职责原则?2. 单一职责原则的定义3. 单一职责原则的重要性4. 单一职责原则的示例(C#)5.如何判断是否违反单一职责原则6. 单一职责原则的应用场景7. 总结 在软件开发领域,设计模式是解决常见问题的经典解决方…

【实现100个unity特效之24】使用ShaderGraph将图片转变为像素艺术

ShaderGraph连线图 效果 参考 https://www.youtube.com/watch?vBmhj7RgVDzc 完结 赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章…

@DateTimeFormat和@JsonFormat

DateTimeFormat 用于接收前端传入的参数,变成自己想要的格式 JsonFormat用于格式化后端返回给前端的参数 DateTimeFormat(pattern "yyyy-MM-dd HH:mm:ss") JsonFormat(pattern "yyyy-MM-dd HH:mm:ss", timezone "GMT8") private …

深入理解Faiss:高效向量检索的利器

近年来,随着人工智能和机器学习技术的飞速发展,向量检索技术变得越来越重要。无论是在推荐系统、图像搜索还是自然语言处理等领域,向量检索都扮演着至关重要的角色。而在众多向量检索库中,Faiss(Facebook AI Similarit…

-Wl,-rpath= 编译器链接器指定动态库路径 与 LD_LIBRARY_PATH

实例先行, 1,情景 三互相依赖的小项目: (1)libbottom.so,无特别依赖,除系统文件 (2)libtop.so,依赖libbottom.so (3)app 可执行程…

【Deep Live Cam】只需一张图片,就可实现视频的人脸替换。

Deep Live Cam 运用尖端AI技术,将实时换脸和视频深伪推向新的境界。只需一张图片,即可实现高质量的人脸替换。 用户在X上对Deep Live Cam的评价。 如何安装它? 1、环境 python (推荐 3.10 ) pip git ffmpeg https://www.youtube.com…

EmguCV学习笔记 C# 5.3 透视变换

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…

WPF如何获取DataGrid的选中行

在DataGrid中加入这一行 <MouseBindingCommand"{Binding OpenWindowCommand}"CommandParameter"{Binding ElementNameNewPlanDataGrid, PathSelectedItem}"Gesture"LeftDoubleClick" /> </DataGrid.InputBindings> 然后ViewModel中…

OpenAI 重回巅峰:ChatGPT-4O 最新模型超越谷歌 Gemini 1.5,多项测试夺冠!

谷歌上周发布的Gemini 1.5 Pro模型&#xff0c;在LMSYS办的聊天机器人竞技场Chatbot Arena中获得第一名。但是&#xff0c;OpenAI迅速反应&#xff0c;推出了最新的chatgpt-4o-latest模型&#xff0c;重新夺回了冠军头衔。 chatgpt-4o-latest模型简介 OpenAI最近推出了名为gpt-…

有哪些适合中小企业的六西格玛培训课程?

在探讨适合中小企业的六西格玛培训课程时&#xff0c;我们首先需要明确六西格玛作为一种管理方法&#xff0c;其核心在于通过减少变异和浪费&#xff0c;提升企业的流程效率和质量水平。对于中小企业而言&#xff0c;选择恰当的六西格玛培训课程&#xff0c;不仅能够提升企业的…

ADB使用报错的问题FileNotfoundError:[WinError 3]系统找不到指定的路径

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…