- 论坛徽章:
- 0
|
昨天问了个vmstat的工作原理,查了些资料还是一头雾水\r\n我写了一个程序,监控系统的cpu的使用率,当使用率超过一定限制时进行相应的处理\r\n我是用java开发的,运行的平台为solaris 8\r\n原程序分为2部分\r\n主程序部分和处理部分\r\n主程序是个死循环,每分钟运行一个runtime.exec(\"vmstat 1 5\"),取得结果,取得cpu的idle值\r\n当idle值小于10%时调用处理程序,然后休眠50秒\r\n由于solaris8默认的进程打开文件数为256.我这个程序每运行1个多小时就会退出(open too many files),每次调用runtime.exec(\"vmstat 1 5\")时都会打开一个文件.所以我昨天就想直接去取cpu的使用率而不去调用shell.但是现在还不知道怎么取.\r\n如果先设置ulimit -n 4000,然后运行我这程序,到现在为止一直运行正常(2个多小时了).\r\n我查看/proc/<进程号>/fd目录的文件数\r\n当文件数增加到1800左右就重新从10开始计数,这样的话问题好象解决了.但是我想知道这样对系统会不会有影响.我这程序要在移动的现网机器上运行的.请高手指教 |
|