Encountered an issue in production where JVM ran out of file handles due to code bug. It took five minutes for file handles to build up but had there been any trending of open file handles we would have caught it as soon as release was pushed as on some nodes it didnt exhausted the file handles but the number was high enough to have caught suspicion. Now I can do lsof and put it in cron but I am not fond of crons as you have to configure it manually and if a box has 4 tomcats then you have to configure for each one of them on 20-30 nodes. So I wanted to get count of open file handles every five minutes and push it to graphite for trending. Here is a sample code to do it
public long getOpenFileDescriptorCount() {
OperatingSystemMXBean osStats = ManagementFactory.getOperatingSystemMXBean();
if(osStats instanceof UnixOperatingSystemMXBean) {
return ((UnixOperatingSystemMXBean)osStats).getOpenFileDescriptorCount();
}
return 0;
}
Comments
Post a Comment