如何在Linux系统不忙时分派任务
我正在使用一台12核24线程的Linux机器来执行以下任务。每个任务都是独立的如何在Linux系统不忙时分派任务,linux,multithreading,bash,shell,unix,Linux,Multithreading,Bash,Shell,Unix,我正在使用一台12核24线程的Linux机器来执行以下任务。每个任务都是独立的 while read parameter do ./program_a $parameter $parameter.log 2>&1 & done < parameter_file 限制已调度任务的数量。但这是一种确定系统是否繁忙的隐式方法。还有其他想法吗?听起来对GNU或类似机构来说是个不错的工作……grep是多余的。相反,在awk:free_Mem=$free-g | awk
while read parameter
do
./program_a $parameter $parameter.log 2>&1 &
done < parameter_file
限制已调度任务的数量。但这是一种确定系统是否繁忙的隐式方法。还有其他想法吗?听起来对GNU或类似机构来说是个不错的工作……grep是多余的。相反,在awk:free_Mem=$free-g | awk'/Mem/{print$4}'中打印前使用/Mem/,并且$free_Mem<10应该是$free_Mem>10@jwpat7请随意编辑我的帖子。我只是把他的代码加上了繁忙的等待。
while read parameter
do
#for instance using free
while 1; do
free_mem=`free -g | awk '/Mem/{print $4}'`
if (( $free_mem > 10 )); then
break
fi
sleep 1 # wait so that some tasks might finish
done
./program_a $parameter $parameter.log 2>&1 &
done < parameter_file
ps aux | grep "program_a " | grep -v "grep" | wc -l
while read parameter
do
#for instance using free
while 1; do
free_mem=`free -g | awk '/Mem/{print $4}'`
if (( $free_mem > 10 )); then
break
fi
sleep 1 # wait so that some tasks might finish
done
./program_a $parameter $parameter.log 2>&1 &
done < parameter_file