小编Jac*_*Leo的帖子

Docker“无法分配内存”——虚拟内存调优

我们正在 AWS EC2 内构建在 Centos7 之上的 Jenkins 实例中构建或运行 Docker 容器。我们有 2 个带有 2 个 CPU 和 3.5 Gb 可用内存的 t2.medium 盒实例。
在一种情况下,我们正在另一个中构建容器,我们只是拉动它们并运行(不同的容器)。

我们开始出现错误

open /var/lib/docker/overlay/<sha>-init/merged/dev/console: cannot allocate memory
Run Code Online (Sandbox Code Playgroud)

journalctl我们得到

page allocation failure: order:4
Run Code Online (Sandbox Code Playgroud)

运行页面缓存转储可以暂时解决问题

echo 1 > /proc/sys/vm/drop_caches
Run Code Online (Sandbox Code Playgroud)

所以我注意到在运行 docker 任务时,Dirty内存块会出现峰值(应该如此)并Mapped在它之后跳跃。然而,DirectMap4k相对接近那个跳跃。

例如:
闲置机器

cat /proc/meminfo | grep -P "(Dirty|Mapped|DirectMap4k)"
Dirty:               104 kB
Mapped:            45696 kB
DirectMap4k:      100352 kB
Run Code Online (Sandbox Code Playgroud)

主动机

cat /proc/meminfo | grep -P "(Dirty|Mapped|DirectMap4k)"
Dirty:             72428 kB
Mapped:            70192 kB
DirectMap4k: …
Run Code Online (Sandbox Code Playgroud)

rhel kernel memory out-of-memory docker

3
推荐指数
1
解决办法
7030
查看次数

打印父目录查找输出的完整路径

我想要做的是根据某些搜索查询查找所有文件并获取父目录 ( ../..) 的完整路径。

例如find . -name "__openerp__.py",然后为每个文件执行一些沿着(cd ../..; pwd). 然后将所有内容通过管道传输到uniq.

shell find uniq pwd

2
推荐指数
1
解决办法
1721
查看次数

标签 统计

docker ×1

find ×1

kernel ×1

memory ×1

out-of-memory ×1

pwd ×1

rhel ×1

shell ×1

uniq ×1