linux下bc计算工具
bc是一个Linux下的计算工具,可以用于浮点数的运算。
计算浮点数例子
if [ `echo "60.3 > 57.4" | bc` -eq 1 ];
then
echo "Y"
else
echo "N"
fi
实战脚本内容
#!/bin/bash
# 此脚本用于比较浮点数的大小。这里用来判断kube-apiserver内存使用率大于百分之60 就kill掉kube-apiserver进程
USAGE=`ps -aux | grep 'kube-apiserver' | grep -Ev "grep|kube-scheduler" | awk '{print $4}'`
LIMIT=75
if [ `echo "$USAGE > $LIMIT" | bc` -eq 1 ];then
kill -9 $(/usr/sbin/pidof kube-apiserver)
else
echo "$USAGE less than $LIMIT"
fi
terminal终端3秒执行一次,循环执行
因为我的kubernetes平台用了Gloo这个API Gateway,但是在使用过程中出现了很多的问题,其中包括一个致命性的因素:只要配置不当或者使用不当导致错误,就会将错误塞满整个kubernetes集群,导致内存疯狂跑高,直至服务器宿主机内存被吃完,然后宕机,因此这里最直接的就是看到我的kube-apiserver进程内存跑高。
排查问题过程中才需要用到这个脚本来临时解决问题。
因为不知道多久会吃完内存,因此设置3秒钟执行一次脚本来进行判断内存使用率是否到达百分之75,到达百分之75就kill掉kube-apiserver进程。
while true
do
/usr/bin/bash /root/apiserver.sh
if [ $? -eq 0 ]
then
echo "Script excute successfully..."
sleep 3
fi
done
© 版权声明
本站文章由不念博客原创,未经允许严禁转载!
THE END