为什么我的进程神秘死亡了?

为什么我的进程神秘死亡了?

我读过很多关于 OOMKiller 的资料,包括http://www.linuxatemyram.com/但是我仍然不太明白为什么我运行的备份脚本会被终止,如果我查看“free -m”的输出:

             total       used       free     shared    buffers     cached
Mem:          8070       7968        102          0        293       6523
-/+ buffers/cache:       1151       6919
Swap:         1983          8       1975

这个(Fedora 8)服务器是不是在做一些奇怪的事情,还是我误解了什么..?

这是运行脚本的 vmstat 输出,它在结束前大约 5/6 行被终止:

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
3  8   8312  40360  54592 6971548    0    0   716   204  669 1909 21 10  0 69  0
1  8   8312  40384  54592 6971616    0    0   752 10764  855 4284 37 24  1 37  0
2  9   8312  41068  54584 6970236    0    0   664  3752  896 3953 28 20  5 47  0
1  7   8312  40308  54588 6970180    0    0   484  2996  871 2058 21 10  9 59  0
1  8   8312  46228  54588 6963540    0    0   536 13372  531 2154 16 11  6 67  0
2  7   8312  44544  54600 6964004    0    0   340 18452  486 1726 24 14 21 41  0
3  7   8312  40056  54600 6968660    0    0   388 17136  591 1876 44 21  2 32  0
0  8   8312  40324  54612 6967248    0    0   388 14176  715 2146 32 18  1 50  0
2  9   8312  43464  54632 6964352    0    0   412 14080  788 4040 29 23  0 49  0
4  5   8312  41672  54688 6968836    0    0   260  9188  989 3258 63 32  0  4  0
2  6   8312  41376  54764 6969472    0    0   260  6244  587 2255 44 21  0 35  0
3  8   8312  42392  54740 6968180    0    0   228  5316  778 2869 24 17  0 60  0
1 19   8312  40568  54776 6957660    0    0   268  8844  467 3183 26 18  0 55  0
0  9   8312  43008  54788 6955548    0    0    20 19560  721 1036  4  3 17 75  0
1 10   8312  46232  54776 6951812    0    0    64 13608  675 1005 24  8  7 61  0
0  7   8312  47780  54776 6950692    0    0    40 14756  635  866 24 11 11 54  0
1  8   8312  43508  54796 6954844    0    0   128 33140  569 2676 29 19 12 39  0
3  7   8312  43976  54816 6954968    0    0    68 13168  854 2362 39 23  0 38  0
1  8   8312  43924  54824 6954784    0    0    84  9704  901 1866 11  6  0 82  0
3  7   8312  43872  54836 6954844    0    0    72 17812  882 1768 44 19  0 37  0
0  8   8312  43616  54836 6955068    0    0   172 15148  836 1247 36 11  0 53  0
0  9   8312  47708  54844 6950472    0    0    96 15020  556  938 22  5  0 72  0
1  8   8312  48608  54844 6950628    0    0   100  9304  637 1010 31 11  0 58  0
0  9   8312  48816  54844 6950764    0    0   120 15008  814 1192 35 12  0 53  0
4  7   8312  45604  54864 6949256    0    0    80  8604  654 1474  9  5  0 85  0
1  9   8312  41816  54892 6959464    0    0   188 11436  586 2206 26 13  0 61  0
1  9   8312  41584  54856 6956432    0    0    92  7364  763 1712 24 11 21 44  0
3  9   8312  41264  54844 6956360    0    0    88  4524  718 2172 27 16 12 46  0
2  9   8312  44600  54868 6953664    0    0   152  3960  630 2338 21 13 16 50  0
4  6   8312  40388  54860 6957156    0    0   156  4800  646 2789 29 16  6 49  0
4  6   8312  40756  54840 6956224    0    0   104 19644  399 2349 26 15  3 56  0
0  8   8312  40160  54896 6956332    0    0  1488 12436  822 2158 57 23  3 17  0

‘ulimit -a’ 的输出:

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 69632
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 69632
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

答案1

令我尴尬的是,我发现一个 cron 任务正在终止它。这个 cronkillall -9 perl中有一个终止它的任务...

感谢那些试图帮助解决这个问题的人们!

答案2

由于对您的设置一无所知,因此我做出以下猜测:

您的备份脚本遇到损坏的符号链接,这些链接会指向自身,并且脚本会继续无限地追逐这些链接。您的脚本会构建一个文件列表,由于文件列表会不断增长,它会在某个时候耗尽所有 RAM。

此外,Fedora 8 已经严重过时了。

相关内容