Назад | Перейти на главную страницу

Большинство долго выполняющихся команд мгновенно уничтожаются на Amazon EC2 (Ubuntu 10.04)

При запуске любой длительной команды в терминале программа мгновенно умирает, и терминал выводит текст Killed.

Есть указатели? Может есть файл журнала с данными, объясняющими, почему убиваются команды?

Обновить

Вот отрывок из dmesg которые, мы надеемся, должны пролить свет на причину проблемы. Еще одно замечание, которое может быть полезно, заключается в том, что это экземпляр Amazon EC2.

May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184209] Call Trace:
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184218]  [<c01e49ea>] dump_header+0x7a/0xb0
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184221]  [<c01e4a7c>] oom_kill_process+0x5c/0x160
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184224]  [<c01e4fe9>] ? select_bad_process+0xa9/0xe0
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184227]  [<c01e5071>] __out_of_memory+0x51/0xb0
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184229]  [<c01e5128>] out_of_memory+0x58/0xd0
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184232]  [<c01e7f16>] __alloc_pages_slowpath+0x416/0x4b0
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184235]  [<c01e811f>] __alloc_pages_nodemask+0x16f/0x1c0
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184238]  [<c01ea2ca>] __do_page_cache_readahead+0xea/0x210
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184241]  [<c01ea416>] ra_submit+0x26/0x30
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184244]  [<c01e3aef>] filemap_fault+0x3cf/0x400
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184247]  [<c02329ad>] ? core_sys_select+0x19d/0x240
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184252]  [<c01fb65c>] __do_fault+0x4c/0x5e0
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184254]  [<c01e4161>] ? generic_file_aio_write+0xa1/0xc0
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184257]  [<c01fd60b>] handle_mm_fault+0x19b/0x510
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184262]  [<c05f80d6>] do_page_fault+0x146/0x440
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184265]  [<c0232c62>] ? sys_select+0x42/0xc0
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184268]  [<c05f7f90>] ? do_page_fault+0x0/0x440
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184270]  [<c05f53c7>] error_code+0x73/0x78
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184274]  [<c05f007b>] ? setup_local_APIC+0xce/0x33e
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272161]  [<c05f0000>] ? setup_local_APIC+0x53/0x33e
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272163] Mem-Info:
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272164] DMA per-cpu:
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272166] CPU    0: hi:    0, btch:   1 usd:   0
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272168] Normal per-cpu:
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272169] CPU    0: hi:  186, btch:  31 usd:  50
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272171] HighMem per-cpu:
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272172] CPU    0: hi:  186, btch:  31 usd:  30
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272176] active_anon:204223 inactive_anon:204177 isolated_anon:0
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272177]  active_file:47 inactive_file:141 isolated_file:0
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272178]  unevictable:0 dirty:0 writeback:0 unstable:0
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272179]  free:10375 slab_reclaimable:1650 slab_unreclaimable:1856
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272180]  mapped:2127 shmem:3918 pagetables:1812 bounce:0May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272186] DMA free:6744kB min:72kB low:88kB high:108kB active_anon:300kB inactive_anon:308kB active_file:0kB inactive_file:0kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15812kB mlocked:0kB dirty:0kB writeback:0kB mapped:4kB shmem:0kB slab_reclaimable:8kB slab_unreclaimable:0kB kernel_stack:0kB pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? yes
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272190] lowmem_reserve[]: 0 702 1670 1670May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272197] Normal free:34256kB min:3352kB low:4188kB high:5028kB active_anon:317736kB inactive_anon:317308kB active_file:144kB inactive_file:16kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:719320kB mlocked:0kB dirty:4kB writeback:0kB mapped:32kB shmem:0kB slab_reclaimable:6592kB slab_unreclaimable:7424kB kernel_stack:2592kB pagetables:7248kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:571 all_unreclaimable? yes
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272201] lowmem_reserve[]: 0 0 7747 7747May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272207] HighMem free:500kB min:512kB low:1668kB high:2824kB active_anon:498856kB inactive_anon:499092kB active_file:44kB inactive_file:548kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:991620kB mlocked:0kB dirty:0kB writeback:0kB mapped:8472kB shmem:15672kB slab_reclaimable:0kB slab_unreclaimable:0kB kernel_stack:0kB pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:430 all_unreclaimable? yes
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272211] lowmem_reserve[]: 0 0 0 0May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272215] DMA: 10*4kB 22*8kB 38*16kB 33*32kB 16*64kB 10*128kB 4*256kB 1*512kB 1*1024kB 0*2048kB 0*4096kB = 6744kBMay 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272223] Normal: 476*4kB 1396*8kB 676*16kB 206*32kB 23*64kB 2*128kB 0*256kB 0*512kB 0*1024kB 1*2048kB 0*4096kB = 34256kBMay 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272231] HighMem: 1*4kB 2*8kB 28*16kB 1*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 500kB
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272238] 4108 total pagecache pages
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272240] 0 pages in swap cache
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272242] Swap cache stats: add 0, delete 0, find 0/0
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272243] Free swap  = 0kB
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272244] Total swap = 0kB
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.276842] 435199 pages RAM
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.276845] 249858 pages HighMem
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.276846] 8771 pages reserved
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.276847] 23955 pages shared
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.276849] 405696 pages non-shared

Вы сможете узнать, что убило ваш процесс, посмотрев на вывод dmesg команда; или в лог-файлах /var/log/kern.log, /var/log/messages, или /var/log/syslog.

Есть несколько вещей, которые могут привести к немедленному завершению процесса:

  • Если он превышает жесткий ulimit для различных типов использования памяти или процессора, которые вы можете проверить с помощью ulimit -H -a
  • Если в системе мало виртуальной памяти, процессы могут быть убиты ядром oom-killer, чтобы освободить память (в вашем случае, вероятно, это не так)
  • Если в системе установлены SELinux и / или PaX / grsecurity, процесс может быть убит, если он попытается сделать что-то, что не разрешено политикой безопасности, или если он попытается выполнить самомодифицируемый код.

Журналы или dmesg должны сообщить вам, почему процесс был убит.

Журналы, которые вы опубликовали как в обновлении, указывают на то, что вашей системе не хватает памяти и OOM убийца вызывается, чтобы остановить процессы, чтобы сохранить свободную память, когда "все остальное терпит неудачу". Алгоритм выбора для OOM-убийцы может быть выгодно нацелен на ваши «длительные» процессы. См. Связанную страницу для описания алгоритма выбора.

Очевидное решение - больше памяти, но у вас может быть нехватка памяти из-за утечки памяти где-то, и добавление дополнительной памяти, скорее всего, только задержит запуск OOM-убийцы, если это так. С помощью любимого инструмента (top, ps и т. Д.) Проверьте свою таблицу процессов на наличие процессов, использующих больше всего памяти, и приступайте к работе.

Как уже объяснялось другими, у вас заканчивается память, поэтому срабатывает убийца нехватки памяти и убивает какой-то процесс.

Вы можете исправить это, выполнив:

а) модернизируйте свою машину ec2 до более мощной, «маленький экземпляр» имеет в 2,5 раза больше памяти (1,7 ГБ), чем «микро-экземпляр» (0,64 ГБ), требует дополнительных денег

б) добавление раздела подкачки - добавить дополнительный диск EBS, mkswap /dev/sdx, swapon /dev/sdx, стоит хранение EBS и плата за ввод-вывод

в) добавление файла подкачки - dd if=/dev/zero of=/swap bs=1M count=500, mkswap /swap, swapon /swap, стоит плата за ввод-вывод и свободное место в корневом EBS

C) должно быть достаточно, но имейте в виду, что микроэкземпляр не должен выполнять длительные задачи с интенсивным использованием ЦП из-за ограничений ЦП (разрешены только короткие пакеты).

У меня такая же проблема. Мои процессы убивались.

Я обнаружил, что в Ubuntu AMI, который я использовал, не было настроено пространство подкачки. Когда память заполнена и нет свободного места для подкачки, ядро ​​непредсказуемо начнет уничтожать процессы, чтобы защитить себя. Пространство подкачки предотвращает это. (Эта проблема особенно актуальна для экземпляра Micro из-за небольших 613 МБ памяти.)

Чтобы проверить, настроено ли у вас пространство подкачки: swapon -s

Настроить пространство подкачки: http://www.linux.com/news/software/applications/8208-all-about-linux-swap-space

Другие источники: http://wiki.sysconfig.org.uk/display/howto/Build+your+own+Core+CentOS+5.x+AMI+for+Amazon+EC2

В журнале говорится, что у вас заканчивается память подкачки / кеша.

    May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272240] 0 pages in swap cache
    May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272242] Swap cache stats: add 0, delete 0, find 0/0
    May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272243] Free swap  = 0kB
    May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272244] Total swap = 0kB

Можете ли вы разделить выполняемое задание / процесс на партии? Возможно, вы можете попробовать запустить его изолированно после остановки других процессов?