Как специально вызвать oom-killer

Иногда в процессе настройки системы требуется имитироваться поведение системы при нехватке памяти. Возникает вопрос: чем можно забить всю память. Можно конечно взять свой любимый скриптовый скрипт и набросать бесконечный цикл который набивает массив мусором, но есть решение намного проще:

# tail -f /dev/zero

В результате мы сожрем всю доступную память (быстро), весь свап (медленно, у меня навскидку 2Гб свапа «забивалось» столько же, сколько 16Гб рама) и получим oom. Если система пустая (нет других тяжелых процессов), то вероятнее всего убит будет tail и на этом все закончится. Удобно однако в определенных случаях

[ pid ]   uid  tgid total_vm      rss cpu oom_adj oom_score_adj name
[  524]     0   524     2818        2   5     -17         -1000 udevd
[ 1134]     0  1134     6910        3   2     -17         -1000 auditd
[ 1150]     0  1150    63854        3   3       0             0 rsyslogd
[ 1169]     0  1169     1171        2   6       0             0 mdadm
[ 1205]     0  1205    16654       16   2     -17         -1000 sshd
[ 1282]     0  1282    20324        3   6       0             0 master
[ 1288]    89  1288    20344        3   1       0             0 pickup
[ 1289]    89  1289    20361        3   4       0             0 qmgr
[ 1292]     0  1292    29325        3   1       0             0 crond
[ 1305]     0  1305     1016        2   7       0             0 mingetty
[ 1307]     0  1307     1016        2   5       0             0 mingetty
[ 1309]     0  1309     1016        2   6       0             0 mingetty
[ 1311]     0  1311     1016        2   0       0             0 mingetty
[ 1313]     0  1313     1016        2   7       0             0 mingetty
[ 1315]     0  1315     1016        2   5       0             0 mingetty
[ 1323]     0  1323     3081        2   4     -17         -1000 udevd
[ 1324]     0  1324     3081        2   5     -17         -1000 udevd
[ 1325]     0  1325    25091       34   5       0             0 sshd
[ 1328]     0  1328    27076        9   3       0             0 bash
[ 1377]     0  1377  4521131  3975197   6       0             0 tail
[ 1378]     0  1378    25091      279   2       0             0 sshd
[ 1381]     0  1381    27076       92   4       0             0 bash
Out of memory: Kill process 1377 (tail) score 947 or sacrifice child
Killed process 1377, UID 0, (tail) total-vm:18084524kB, anon-rss:15900744kB, file-rss:44kB
You can leave a response, or trackback from your own site.

Leave a Reply

Subscribe to RSS Feed