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