的容器版本推荐一个查看容器内系统信息的工具topic。容器通过cgroups和namespace实现资源的轻量级隔离和限制,但是容器中的/proc文件实际上是宿主机,所以在执行top命令查看容器运行信息时,有些指标显示不正确,比如启动时间,用户数,平均负载,cpu占用,内存占用。目前比较普遍的解决方案是使用lxcfs通过fuse劫持容器中对应文件的read调用,打开时显示为容器信息,统一解决各种系统状态诊断工具的问题.考虑到部署lxcfs的成本,topic(topincontainer)的思路是修改top命令适配容器,读取容器中反映真实运行情况的系统文件,显示正确的运行信息的容器。对于用户成本更低。如下,在一个1c1Gi的容器中运行stress--cpu2,通过topic和top查看容器的运行状态:topic:top:可以看到,topic较好的解决了容器运行信息的问题:-topicviewTheloadaverageis2.03,andtopviewis1.31(actuallytheloadaverageofhostmachine)-topic看到的CPU占用率为99.8%,而topview为13.2%(实际上是宿主机的loadaverage)usinformation)-topic查看的Mem为1Gi,而top查看的为16Gi(实际上是宿主机的内存信息)-topic查看的用户数为11,而top查看的用户数为1(实际是宿主机当前登录用户数)-topic查看的容器运行时间为2days10:35,而top查看的容器运行时间为20days1:57(实际运行时间ofhost)-topic和top显示的进程相关信息基本相同。想试试的话可以下载题目在容器里运行(记得加执行权限),如果好用的话可以给个Star^_^项目地址https://github。com/silenceshell/主题
