MemoryUsage:监测java虚拟机内存使用
介绍一个看到的很有意思的Java类MemoryUsage,通过MemoryUsage可以查看Java 虚拟机的内存池的内存使用情况。
MemoryUsage类有四个值(均以字节为单位):
Init:java虚拟机在启动的时候向操作系统请求的初始内存容量,java虚拟机在运行的过程中可能向操作系统请求更多的内存或将内存释放给操作系统,所以init的值是不确定的。
Used:当前已经使用的内存量。
Committed:表示保证java虚拟机能使用的内存量,已提交的内存量可以随时间而变化(增加或减少)。Java 虚拟机可能会将内存释放给系统,committed 可以小于 init。committed 将始终大于或等于 used。
Max:表示可以用于内存管理的最大内存量(以字节为单位)。可以不定义其值。如果定义了该值,最大内存量可能随时间而更改。已使用的内存量和已提交的内存量将始终小于或等于 max(如果定义了 max)。如果内存分配试图增加满足以下条件的已使用内存将会失败:used > committed,即使 used <= max 仍然为 true(例如,当系统的虚拟内存不足时)。
具体使用例子:
MemoryUsage mu = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage();
long getCommitted = mu.getCommitted();
long getInit = mu.getInit();
long getUsed = mu.getUsed();
long max = mu.getMax();
out.println(">>getCommitted(byte)>>"+getCommitted+"<br/>");
out.println(">>getInit(byte)>>"+getInit+"<br/>");
out.println(">>getUsed(byte)>>"+getUsed+"<br/>");
out.println(">>max(byte)>>"+max+"<br/>");
out.println("===================================<br/>");
out.println(">>getCommitted(KB)>>"+getCommitted/1000+"<br/>");
out.println(">>getInit(KB)>>"+getInit/1000+"<br/>");
out.println(">>getUsed(KB)>>"+getUsed/1000+"<br/>");
out.println(">>max(KB)>>"+max/1000+"<br/>");
out.println("===================================<br/>");
out.println(">>getCommitted(MB)>>"+getCommitted/1000/1000+"<br/>");
out.println(">>getInit(MB)>>"+getInit/1000/1000+"<br/>");
out.println(">>getUsed(MB)>>"+getUsed/1000/1000+"<br/>");
out.println(">>max(MB)>>"+max/1000/1000+"<br/>");
可以将以上代码写在一个jsp文件中,然后不停地刷新页面,我们将发现Used的值是不断变化着的,在某些场合下,可能需要监测java虚拟机内存使用情况,用MemoryUsage就极其方便了。
分享到:
相关推荐
Arduino的内存使用检查库 这是Arduino的库,用于查看程序执行期间的内存使用情况。 有关此库的更多信息,请访问我们的 (法语) 在Extras文件夹中,单击Doc / index.html,以在浏览器中找到英文的完整文档。 执照 ...
8,请使用1.0.x版 公开/ status路由,该路由返回类似于以下内容的json对象: { running : true , uptime : 12 , memoryUsage : { rss : 57384960 , heapTotal : 56160000 , heapUsed : 19359568 }, ...
process存在于全局对象上,不需要使用require()加载即可使用,process模块主要做两方面的事情 读:获取进程信息(资源使用、运行环境、运行状态) 写:执行进程操作(监听事件、调度任务、发出警告)资源使用 资源...
监视内存使用情况 $ ps -o pid,pmem,vsz,rss,comm -p 替代方案: top , htop , free , vmstat 自我监控: $ node > process . memoryUsage ( ) { rss : 13037568 , heapTotal : 6147328 , heapUsed : ...
在一般的后端开发语言中,在基本的内存使用上没有什么限制,然而在 Node 中通过 JavaScript 使用内存时就会发现只能使用部分内存(64位系统下约为1.4GB,32位系统下约为0.7GB)。在这样的限制下,将会导致 Node 无法...
•MemoryUsage内存的使用情况 主要看垃圾回收是否频繁,在系统高负载的情况下,内存是否能达到80-90%的使用率。 WebLogic服务的监控 •查看线程的运行情况 线程是否都为空闲null状态。如不为空闲,看看是什么样的...
该模块使用 memwatch 模块和 process.memoryUsage() 函数来提取有用的统计信息。 该模块是实验性的,将通过更多的测试和必要的改进。安装 npm install memtrack用法以下调用应放在应用程序中任何其他 require 语句...
要禁用此功能,您需要修改.sandstorm/launcher.sh ,将CMD_ENABLE_ANONYMOUS_USER设置为false 使用winston-sandstorm替换winston作为依赖项因为process.memoryUsage()不能在沙尘暴上执行。 我们分叉winston软件包
其他诸如内存使用需要操作系统级别的集成——这就是linux-monitoring-cloudwatch用武之地。 您的实例不需要进一步的依赖 - 只需可执行文件。 使用linux-monitoring-cloudwatch发出的指标(此时为MemoryUsage ),...
享受服务器密度中的Memcached统计信息标题:CurrentTotal curr_items total_items 标题:MemoryUsage limit_maxbytes 个字节标题:NetworkTraffic curr_connections total_connections 标题:HitsMisses cmd_get cmd...
我对内存的使用和组装许多流(新方法)而不是旧方法(旧方法)的开销感到更加担忧。 process.memoryUsage().heapUsed值更改时,将打印其值以及当时已处理了多少结果。 npm start服务器。 npm run al
Clock GPUObserver36c IntelCoreSeries24 MemoryUsage networktraffic PowerStatus11 TopFive10 VolumeControlReloaded
Implementation With Low Peak MemoryUsage 1Daniel Saad Nogueira Nunes2 Mauricio Ayala-Rincón3Instituto de Ciências Exatas Departamentos de Ciência da Computação e MatemáticaUniversidade de ...