实现对多核Linux CPU% 的期望占用
This commit is contained in:
75
start_kg_cpu_control.sh
Executable file
75
start_kg_cpu_control.sh
Executable file
@ -0,0 +1,75 @@
|
||||
#! /bin/bash
|
||||
#! -*- coding=utf-8 -*-
|
||||
# Author:zhouze03
|
||||
# Date: 2017-08-16
|
||||
|
||||
|
||||
##############################################################################################
|
||||
########################################## main #############################################
|
||||
##############################################################################################
|
||||
|
||||
|
||||
function start() {
|
||||
|
||||
# 设置贪婪脚本的执行进程不会独占一个CPU逻辑单元,因为贪婪脚本中有无限循环(不设置则独占一个逻辑单元)
|
||||
nohup ./cpulimit -l 50 ./cpu_scheduler.sh -e $EXPECT_CPU_RATE -l $CPU_LIMIT_FOR_GREEDY_PROCESS >/dev/null &
|
||||
}
|
||||
|
||||
|
||||
function check_parameters(){
|
||||
|
||||
if [ "x$EXPECT_CPU_RATE" == "x" ]
|
||||
then
|
||||
echo "PARAM ERROR: EXPECT_CPU_RATE IS NULL (-e)" >&2
|
||||
exit -1
|
||||
fi
|
||||
|
||||
if [ $EXPECT_CPU_RATE -lt 0 -o $EXPECT_CPU_RATE -gt 100 ]
|
||||
then
|
||||
echo "PARAM ERROR: EXPECT_CPU_RATE value expect [1-100] (-e)" >&2
|
||||
exit -1
|
||||
fi
|
||||
|
||||
if [ "x$CPU_LIMIT_FOR_GREEDY_PROCESS" == "x" ]
|
||||
then
|
||||
# 用户没有输入,则提供默认值
|
||||
CPU_LIMIT_FOR_GREEDY_PROCESS=60
|
||||
fi
|
||||
|
||||
if [ $CPU_LIMIT_FOR_GREEDY_PROCESS -lt 0 -o $CPU_LIMIT_FOR_GREEDY_PROCESS -gt 100 ]
|
||||
then
|
||||
echo "PARAM ERROR: CPU_LIMIT_FOR_GREEDY_PROCESS value expect [1-100] (-e)" >&2
|
||||
exit -1
|
||||
fi
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
while getopts "e:l:" opt
|
||||
do
|
||||
case $opt in
|
||||
e)
|
||||
EXPECT_CPU_RATE=$OPTARG
|
||||
echo "EXPECT_CPU_RATE= "$EXPECT_CPU_RATE
|
||||
;;
|
||||
l)
|
||||
CPU_LIMIT_FOR_GREEDY_PROCESS=$OPTARG
|
||||
echo "CPU_LIMIT_FOR_GREEDY_PROCESS= "$CPU_LIMIT_FOR_GREEDY_PROCESS
|
||||
;;
|
||||
*)
|
||||
echo "ERROR don't support this parameter" >&2
|
||||
usage
|
||||
exit -1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
check_parameters
|
||||
start
|
||||
|
||||
##############################################################################################
|
||||
##############################################################################################
|
||||
##############################################################################################
|
Reference in New Issue
Block a user