Runtime metrics – Docker Documentation
3.2. cpu
容器内存占用之系统cache
缘起:
监控(docker stats)显示容器内存被用完了,进入容器瞅了瞅,没有发现使用内存多的进程,使用awk等工具把容器所有进程使用的内存加起来看看,距离用完还远了去了,何故?
分析:
该不会docker stats计算错误?
进入/sys/fs/cgroup/memory/docker/xxxxx/ 查看memory.usage ,确认计算没有错误
我们知道,系统内存会有一部分被buffer、cache之类占用,linux也会把这部分内存算到已使用,对于容器来讲,也应该存在此“问题”,而且非常有可能linux会把某容器引发的cache占用算到容器占用的内存上;验证很简单,进容器dd一个大文件就知道了:
dd 大文件后,docker stat显示已用内存变多
宿主机上: echo 3 > /proc/sys/vm/drop_caches 后,docker stat显示已用内存变少
至此,原因查明
问题:
对于宿主机来讲,计算内存占用时,可以拿已用内存减去cache/buffer ,那么对于容器来讲,如果减去容器部分的cache/buffer 呢?如果不减去,也会造成误报警
测试发现: dd 产生的文件cache占用的内存会计算到 inactive_file 的头上
rpm 打包知识点
打包php-ldap扩展时遇到如下问题:
1 |
*** ERROR: No build ID note found in /data3/rpmbuild/BUILDROOT/beebank-php5-ldap-1.0.0-1.el6.x86_64/usr/local/lib/php/extensions/no-debug-non-zts-20121212/ldap.so |
解决办法:
在spec文件中添加如下语句:
1 2 3 4 |
%define __debug_install_post \ %{_rpmconfigdir}/find-debuginfo.sh %{?_find_debuginfo_opts} "%{_builddir}/%{?buildsubdir}"\ %{nil} |
Web前端攻防,一不小心就中招了
我在看【Web前端攻防,一不小心就中招了】, 分享给你, 快来看看吧! | http://mp.weixin.qq.com/s/9vMcdVJwVW54hkWGMtfhdw