免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1164 | 回复: 1
打印 上一主题 下一主题

关于进程打开文件数的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 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开始计数,这样的话问题好象解决了.但是我想知道这样对系统会不会有影响.我这程序要在移动的现网机器上运行的.请高手指教

论坛徽章:
0
2 [报告]
发表于 2006-05-19 11:23 |只看该作者
不懂java

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

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

来更新纪录,应该不会产生很多文件吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP