我的脚本正在使用wget从Internet上检索数据。 当许多用户使用这个脚本时,由于磁盘I / O,我得到了非常高的负载(大约20.00)。 Wget每隔一小时由cron自动启动。 我想同时限制一个wget给一个客户。 这个怎么做 ?
我正在使用CentOS 5.7 64位。
你可以添加一个文件locking到你的脚本。 例如,使用flock命令(Debian上的package util-linux):
$!/bin/sh ( flock --nb 200 || echo "waiting for previous script completion" flock 200 # script commands here wget .... ) 200>$HOME/.wgetlock
在/etc/security/limits.conf查看可用的选项。 您可以在此处设置每个用户的进程和内存限制。
如果反复请求和内容相同,只需将结果caching几秒钟,并为不同的用户提供相同的内容。
你可以使用memcache来轻松实现这一点。
如果每个用户的内容不同,请注意像你问的排队会导致长时间的延迟。