Shell 作业控制(ab压力测试问题)
时间:2011-05-23
来源:互联网
- #!/bin/sh
- #set -x
- concus=( 100 1000 2000 3000 4000 50000 60000 7000 80000 9000 10000 )
- #echo ${concu[@]};
-
- for concu in "${concus[@]}"
- do
- (/usr/sbin/ab -n 10000 -c $concu http://10.10.19.102/abs/index.html >> /var/webdata)& #1
- wait
-
- (/usr/sbin/ab -n 10000 -c $concu http://10.10.191.103/abs/index.html >> /var/webdata)& #2
- wait
- done
执行,一段时间后报错:socket: Too many open files(24). 我估计是好几个后台作业一起执行造成的结果。
请问有什么办法解决这个问题?参考些什么资料? ABS 上没知道很好的解决办法,谢谢了。
作者: shellyxz 发布时间: 2011-05-23
第二个方法,加了后台符的话,判断该进程执行完毕,再执行下一个
作者: dzhxc 发布时间: 2011-05-23
解决办法:
su – root
ulimit -n 65535(要改的数)
PS:这应该不难理解,linux是通过文件来对设备进行管理
ulimit -n是设置同时打开文件的最大数值,ab中每一个连接打开一个设备文件,所以设置这个值就可以解决。
作者: xiaopan3322 发布时间: 2011-05-23
第二个方法,加了后台符的话,判断该进程执行完毕,再执行下一个
dzhxc 发表于 2011-05-23 14:29
楼主的写法没有错,你这样写反而满足不了楼主的需求了,他说的是另外一个问题……
作者: xiaopan3322 发布时间: 2011-05-23
xiaopan3322 发表于 2011-05-23 14:31
哦,要是ulimit都没有开到65535的话,那就没啥好说的了
作者: dzhxc 发布时间: 2011-05-23
回复 xiaopan3322
额,昨天晚上在虚拟机上测试的,也修改了这值,今天换到gentoo下就忘了。。。。。。
先谢谢了
作者: shellyxz 发布时间: 2011-05-23
& 符号是必需的,要不然wait就没啥用了。。。
谢谢指教
作者: shellyxz 发布时间: 2011-05-23
作者: waker 发布时间: 2011-05-23
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28