Иногда в процессе настройки системы требуется имитироваться поведение системы при нехватке памяти. Возникает вопрос: чем можно забить всю память. Можно конечно взять свой любимый скриптовый скрипт и набросать бесконечный цикл который набивает массив мусором, но есть решение намного проще:
# 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