Chinaunix

标题: 关于进程打开文件数的问题 [打印本页]

作者: jkxp    时间: 2006-05-19 11:05
标题: 关于进程打开文件数的问题
昨天问了个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开始计数,这样的话问题好象解决了.但是我想知道这样对系统会不会有影响.我这程序要在移动的现网机器上运行的.请高手指教
作者: Allan.Chen    时间: 2006-05-19 11:23
不懂java

你是不是可以改改你的程序,是不是可以用

while true
do
vmstat 1 5 >/tmp/vm.log
sleep 60
done

来更新纪录,应该不会产生很多文件吧。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2