借助shell脚本监控LXC应用容器内的应用
发布时间:2021-11-23 13:35:15 所属栏目:PHP教程 来源:互联网
导读:利用lxc-execute启动应用容器后,可以利用lxc自带的lxc-info获取容器的状态,lxc-monitor监控容器状态的变化,但是不能获取容器内应用的信息。这点可以通过结合Linux ps命令和lxc自带的lxc-ps和lxc-cgroup命令来实现。 1.首先我们可以通过lxc-ps获取特定容器
利用lxc-execute启动应用容器后,可以利用lxc自带的lxc-info获取容器的状态,lxc-monitor监控容器状态的变化,但是不能获取容器内应用的信息。这点可以通过结合Linux ps命令和lxc自带的lxc-ps和lxc-cgroup命令来实现。 1.首先我们可以通过lxc-ps获取特定容器内需要监控的应用的pid号 #usage:get_pid container_name app_name function get_pid { local pid=`lxc-ps -n $1 |grep $2 | awk '{print $2}'|grep -v PID` echo $pid } 2.然后我们就可以使用ps命令对该pid代表的应用进行监控了。 2.1获取应用所在的cpu核心 #usage:get_cpu_core pid function get_cpu_core { local cpu_core=`ps -p $1 -o psr | grep -v PSR` echo $cpu_core } 2.2获取应用占用的cpu比例 #usage:get_cpu_percent pid function get_cpu_percent { local cpu_percent=`ps -p $1 -o pcpu | grep -v CPU` echo $cpu_percent } 2.3获取应用使用的RSS(物理内存) #usage:get_app_phy_mem pid function get_app_phy_mem { local mem=`ps -p $1 -o rss | grep -v RSS` mem=$((mem*1024)) echo $mem } 3.接着利用LXC自带的lxc-cgroup命名来统计整个容器的资源占用情况 3.1获取容器使用的物理内存(RSS+cache) #usage:get_container_phy_mem container_name function get_container_phy_mem { local mem=`lxc-cgroup -n $1 memory.usage_in_bytes` echo $mem } 3.2获取容器使用物理内存和swap空间的和 #usage:get_container_total_mem container_name function get_container_total_mem { local mem=`lxc-cgroup -n $1 memory.memsw.usage_in_bytes` echo $mem } 4.利用lxc-info抓取容器的状态 #usage:get_status container_name function get_container_status { local str=`lxc-info -n $1 |grep state |awk '{print $2}'` echo $str } 可以将以上函数整合成一个脚本,然后定时执行脚本,就可以监控容器内的应用资源使用状况了。 再进一步可以根据应用资源消耗状况,动态增减分配给容器的资源量。 (编辑:云计算网_泰州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |