服务器正常都需要关注内存使用情况

常规获取内存使用情况可以使用Runtime或MemoryMXBean

Noark提供了一个内存监控服务,选择了Runtime实现,详情参考

xyz.noark.game.monitor.impl.MemoryMonitorService

在GameServerConfiguration类中添加如下代码

@Bean
public MonitorManager monitorManager() {
	MonitorManager manager = new MonitorManager();
	manager.addMonitorService(new MemoryMonitorService());
	return manager;
}

默认的内存监控服务每隔1分钟打印当前服务器内存使用情况到日志.

2018-09-07 18:05:11.423 [monitor] INFO MemoryMonitorService.java:59 - 最大堆内存=3.55 GB, 已分配=172 MB, 已使用=44.31 MB, 还可用=3.5 GB
2018-09-07 18:06:11.424 [monitor] INFO MemoryMonitorService.java:59 - 最大堆内存=3.55 GB, 已分配=172 MB, 已使用=44.31 MB, 还可用=3.5 GB
2018-09-07 18:07:11.425 [monitor] INFO MemoryMonitorService.java:59 - 最大堆内存=3.55 GB, 已分配=172 MB, 已使用=44.47 MB, 还可用=3.5 GB
2018-09-07 18:08:11.426 [monitor] INFO MemoryMonitorService.java:59 - 最大堆内存=3.55 GB, 已分配=172 MB, 已使用=44.63 MB, 还可用=3.5 GB
2018-09-07 18:09:11.427 [monitor] INFO MemoryMonitorService.java:59 - 最大堆内存=3.55 GB, 已分配=172 MB, 已使用=44.79 MB, 还可用=3.5 GB

如果要扩展上报,可继承此类重构行为逻辑,并添加进监控服务管理器中…

转载请注明原地址: http://blog.noark.xyz/article/2018/8/1/noark入门之内存监控/