rt 当我在使用fawe进行大型操作时
coreprotect记录fawe操作会占用约7-12g内存
最终导致内存不够,oom
请问该如何解决内存占用过大的问题
注:我服是建筑创造服 co记录we we等都是不可缺少的
请勿回答例如关闭co记录we操作,关闭co fawe等无脑问题,如果回答这类我会顺手举报
coreprotect记录fawe操作会占用约7-12g内存
最终导致内存不够,oom
请问该如何解决内存占用过大的问题
注:我服是建筑创造服 co记录we we等都是不可缺少的
请勿回答例如关闭co记录we操作,关闭co fawe等无脑问题,如果回答这类我会顺手举报
coreprotect没看过源码,但是对于大型操作内存上的缓存是必要的(不可能每次操作都立即同步到数据库),无可避免,你又想记录大型操作,没有直接的办法,除非你修改coreprotect的代码。
最好的办法是限制操作规模。
coreprotect的配置没有关于内存的优化,但是we的 queue.pool 选项可以关了,内存占用会减少,但是性能会下降。history 功能也可以关了,反正你使用co的记录了
最好的办法是限制操作规模。
coreprotect的配置没有关于内存的优化,但是we的 queue.pool 选项可以关了,内存占用会减少,但是性能会下降。history 功能也可以关了,反正你使用co的记录了
结冰的离季 发表于 2022-11-26 23:13
coreprotect没看过源码,但是对于大型操作内存上的缓存是必要的(不可能每次操作都立即同步到数据库),无可 ...
这两个功能具体在哪关呢?history关了后好像不能用undo了吧
本帖最后由 结冰的离季 于 2022-11-26 23:30 编辑
fawe 的config.ml
history关了确实不能用undo
这功能与co的功能类似,操作时基本上是双倍的内存消耗
你要保留历史功能又要减少内存使用的话 可以把limits.default.max-history-mb 设置小一点,缺点就是 这个选项同时影响内存和磁盘,大型操作可能会覆盖掉其他历史
sensen1234 发表于 2022-11-26 23:18
这两个功能具体在哪关呢?history关了后好像不能用undo了吧
fawe 的config.ml
history关了确实不能用undo
这功能与co的功能类似,操作时基本上是双倍的内存消耗
你要保留历史功能又要减少内存使用的话 可以把limits.default.max-history-mb 设置小一点,缺点就是 这个选项同时影响内存和磁盘,大型操作可能会覆盖掉其他历史
分享个人解决方案,我是生存服,玩家有大量红石机器,例如苔藓机,会有极大量的记录被储存
我的解决方法是使用UltimateAutoRestart插件每天定时重启,重启后执行/co purge t:14d
这个指令是清除14天前的记录
类似的方法也可以通过定期执行该指令来清除记录,时间可以自定义,指令相关具体还请看CoreProtect的wiki
我的解决方法是使用UltimateAutoRestart插件每天定时重启,重启后执行/co purge t:14d
这个指令是清除14天前的记录
类似的方法也可以通过定期执行该指令来清除记录,时间可以自定义,指令相关具体还请看CoreProtect的wiki
ZeroExact 发表于 2022-11-27 03:21
分享个人解决方案,我是生存服,玩家有大量红石机器,例如苔藓机,会有极大量的记录被储存
我的解决方法是 ...
但我觉得清记录仅仅是减少硬盘占用,不会少内存占用
我用的MySQL 数据库在另一台机子上
本帖最后由 ZeroExact 于 2022-11-27 19:24 编辑
gc调好,定期清理,理应不会有显著的额外内存占用
附上个人所用参考
-XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=40 -XX:G1MaxNewSizePercent=50 -XX:G1HeapRegionSize=16M -XX:G1ReservePercent=15 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=20 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1
sensen1234 发表于 2022-11-27 09:20
但我觉得清记录仅仅是减少硬盘占用,不会少内存占用
我用的MySQL 数据库在另一台机子上 ...
gc调好,定期清理,理应不会有显著的额外内存占用
附上个人所用参考
-XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=40 -XX:G1MaxNewSizePercent=50 -XX:G1HeapRegionSize=16M -XX:G1ReservePercent=15 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=20 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1