如果有人能帮助我实现这一目标,那将会有很大帮助。
我租用了一台具有 20GM RAM 的 VPS,但 privvmpages 的最大限制是 5GB。我有 nexus、hudson、puppet、glassfish 集群(其中一个实例)和正在运行的其他 3 个 Java 应用程序(因为所有这些都是基于 Java 的),据我了解,privvmpages 查找的是整个 jvm 内存,而不是单个应用程序的 jvm 内存。
我已经配置了 nagios 来监控我的一些应用程序及其运行情况。现在最复杂的部分是,我希望 nagios 中的一项服务能够在 jvm 内存限制整体超过 privvmpages 最大限制时向我发出警报。
有可用的服务吗?或者这首先是可能的吗?
我搜索了一下,但什么也没找到
更新 1: 找到了一些有用的信息,其实我原来的帖子是错的。我的理解是,privvmpages 总是分配内存,直到达到最大限制。但是
只要记为 privvmpages(参见辅助参数)的内存量不超过 vmguarpages 参数配置的界限,应用程序就保证能够分配额外的内存。超过界限,就不能保证分配额外的内存,如果整体内存不足,可能会分配失败。
答案1
读了很多帖子后,我认为我们无法找到单个应用程序的权限页面大小。相反,我们可以这样做
#!/bin/bash
bean=`cat /proc/user_beancounters`
guar=`echo "$bean" | grep vmguar | awk '{ print $4;}'`
priv=`echo "$bean" | grep privvm | awk '{ print $2;}'`
let totl=guar/256
let used=priv/256
let free=totl-used
let per=used*100/totl
echo "VPS Memory:"
echo " total: $totl mb used: $used mb ($per%) free: $free mb"
在 nagios 中进行配置,并比较已用/空闲的阈值以提醒 nagios 发出的警告
这背后的历史
猫/ proc / user_beancounters
第一列告诉您当前的使用情况,第二列告诉您最大使用情况,第三列告诉您障碍,第四列告诉您限制,最后一列告诉您您的 VPS 在限制内失败的次数。
要将页面转换为 MB,请除以 256。