tail /dev/zero 有默认的内存上限吗?

2022-07-14 20:25:42 +08:00
 sologgfun

除了系统的 oom 机制外,是不是有别的限制阿?

我看了一下,大概 2 个 g ,这个进程就 out of memory 退出了。

# tail /dev/zero
tail: out of memory
# free -g
              total        used        free      shared  buff/cache   available
Mem:            251          53         120           2          77         19

但是服务器本身还有 130 个 g ,我看 ulimit 也没有对内存进行限制(操作系统也是 64 位)

# ulimit -a
core file size (blocks)         (-c) unlimited
data seg size (kb)              (-d) unlimited
scheduling priority             (-e) 0
file size (blocks)              (-f) unlimited
pending signals                 (-i) 1030200
max locked memory (kb)          (-l) 64
max memory size (kb)            (-m) unlimited
open files                      (-n) 65536
POSIX message queues (bytes)    (-q) 819200
real-time priority              (-r) 0
stack size (kb)                 (-s) 8192
cpu time (seconds)              (-t) unlimited
max user processes              (-u) unlimited
virtual memory (kb)             (-v) unlimited
file locks                      (-x) unlimited

而且dmesg里也没有对应进程被杀的日志,到底是谁把它干掉了

879 次点击
所在节点    问与答
4 条回复
eason1874
2022-07-14 20:47:31 +08:00
就是 out of memory killer 干的吧,快速占用内存,它觉得不对劲,就给你干掉了。已经干掉了才去看内存,那都不准了,这时候释放不少了

你可以把 oom kill 禁用再测一次
sologgfun
2022-07-14 21:27:53 +08:00
@eason1874 没干掉的时候起了 2 个 shell 我看的,峰值差不多 2 个 g ,我一会禁用 oom kill 试一试,感谢大佬回复
icyalala
2022-07-15 16:40:27 +08:00
我这里提示 tail: realloc: Cannot allocate memory ,是 tail 调用 realloc 失败主动退出的
sologgfun
2022-07-15 17:21:15 +08:00
@icyalala 环境不太一样,我是在 pod 里面操作的, 结果就是 2 个 g 的时候被杀掉。但是我直接在宿主机上操作就不会被杀掉,很奇怪

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/866233

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX