add set_libcgroup.sh by yhsong

Signed-off-by: swei <swei@linx-info.com>
This commit is contained in:
swei
2014-04-16 11:19:52 +08:00
parent 972c16b860
commit d959a00619
2 changed files with 129 additions and 0 deletions

View File

@@ -0,0 +1,126 @@
#!/bin/sh
#设置开机启动项
echo "Starting set the boot startup..."
ln -s /etc/rc.d/init.d/cgconfig /etc/rc.d/rc3.d/S100cgconfig
ln -s /etc/rc.d/init.d/cgconfig /etc/rc.d/rc5.d/S100cgconfig
ln -s /etc/rc.d/init.d/cgred /etc/rc.d/rc3.d/S105cgred
ln -s /etc/rc.d/init.d/cgred /etc/rc.d/rc5.d/S105cgred
#设置cgconfig和cgred服务的配置文件
total_mem=`free -m | grep -i "mem" | awk '{print $2}'`
total_swap=`free -m | grep -i "swap" | awk '{print $2}'`
cpus=`cat /proc/cpuinfo | grep processor | wc -l`
((cpus=cpus-2))
if [ ${cpus} -lt 0 ]; then
cpus=0
fi
numa=`numactl --show`
if [ $? -eq 0 ]; then
# memory_nodes=`numactl --hardware | sed -n '1p' | awk '{print $2}'`
memory_nodes=`numactl --hardware | grep "nodes" | awk '{print $4}' | sed -e "s/(//g" | sed -e "s/)//g"`
else
memory_nodes=0
fi
#if [ ${memory_nodes} -ne 0 ]; then
# ((memory_nodes--))
#fi
echo "Starting set the cgconfig.conf..."
cgconfig="group $1_limits {
perm {
task {
uid = $1;
gid = $1;
}
admin {
uid = sysadmin;
gid = sysadmin;
}
}
cpuset {
cpuset.cpus = 0-var_cpus;
cpuset.mems = var_nodes;
}
memory {
memory.limit_in_bytes = var_memM;
memory.memsw.limit_in_bytes = var_swapM;
}
cpu {
cpu.rt_runtime_us = 950000;
}
}
mount {
cpuset = /lxcg;
cpu = /lxcg;
cpuacct = /lxcg;
memory = /lxcg;
devices = /lxcg;
freezer = /lxcg;
net_cls = /lxcg;
}"
cgrules="*:start_kdeinit * /
*:startkde * /
*:kdeinit * /
*:kded * /
*:scim-launcher * /
*:scim-helper-manager * /
*:scim-panel-gtk * /
*:gam_server * /
*:kwrapper * /
*:artsd * /
*:korgac * /"
if [ ${total_mem} -le 500 ]; then
mem_root=100
else
mem_root=$((${total_mem}/10))
if [ ${mem_root} -lt 100 ]; then
mem_root=100
elif [ ${mem_root} -ge 100 ] && [ ${mem_root} -le 500 ]; then
mem_root=500
elif [ ${mem_root} -gt 2000 ]; then
mem_root=2000
fi
fi
mem=$((${total_mem}-${mem_root}))
swap=$((${total_swap}/2))
sed -i "/^[^#]/d" /etc/cgconfig.conf
sed -i "/^$/d" /etc/cgconfig.conf
echo "$cgconfig" >> /etc/cgconfig.conf
sed -i "s/var_cpus/${cpus}/g" /etc/cgconfig.conf
sed -i "s/var_nodes/${memory_nodes}/g" /etc/cgconfig.conf
sed -i "s/var_mem/${mem}/g" /etc/cgconfig.conf
sed -i "s/var_swap/$(($mem+$swap))/g" /etc/cgconfig.conf
echo "Starting set cgrules.conf..."
sed -i "/^[^#]/d" /etc/cgrules.conf
sed -i "/^$/d" /etc/cgrules.conf
echo "$cgrules" >> /etc/cgrules.conf
users=`cut -d ':' -f1 /etc/passwd | sed -e '/root/d'`
for username in ${users}
do
if [ ${username} != "sysadmin" ] && [ ${username} != "sshd" ]; then
echo "${username}: * $1_limits" >> /etc/cgrules.conf
fi
done
#设置进程能力
echo "Starting set process capabilities..."
setcap "=eip" /usr/sbin/cgconfigparser
setcap "=eip" /usr/sbin/cgclear
setcap "=eip" /usr/sbin/cgrulesengd

View File

@@ -20,6 +20,9 @@ fi
./set_bonding.sh
echo "====Set Bonding..."
./set_libcgroup.sh $1
echo "====Set libcgroup..."
./set_kernel.sh
echo "====Set Kernel parameters..."