除了系统的 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
里也没有对应进程被杀的日志,到底是谁把它干掉了
1
eason1874 2022-07-14 20:47:31 +08:00
就是 out of memory killer 干的吧,快速占用内存,它觉得不对劲,就给你干掉了。已经干掉了才去看内存,那都不准了,这时候释放不少了
你可以把 oom kill 禁用再测一次 |
2
sologgfun OP @eason1874 没干掉的时候起了 2 个 shell 我看的,峰值差不多 2 个 g ,我一会禁用 oom kill 试一试,感谢大佬回复
|
3
icyalala 2022-07-15 16:40:27 +08:00
我这里提示 tail: realloc: Cannot allocate memory ,是 tail 调用 realloc 失败主动退出的
|