Во время обучения ML htop
показывает использование всей оперативной памяти (16 ГБ) и только 2 ГБ (из 16 ГБ) SWAP, когда происходит OOM.
dmesg
показывает:
[pon sie 12 11:53:44 2019] Purging GPU memory, 0 bytes freed, 131072 bytes still pinned.
[pon sie 12 11:53:44 2019] 73728 and 0 bytes still available in the bound and unbound GPU page lists.
[pon sie 12 11:53:44 2019] iscsid invoked oom-killer: gfp_mask=0x24200ca, order=0, oom_score_adj=0
[pon sie 12 11:53:44 2019] iscsid cpuset=/ mems_allowed=0
[pon sie 12 11:53:44 2019] CPU: 1 PID: 1306 Comm: iscsid Tainted: P OE 4.4.0-116-generic #140-Ubuntu
[pon sie 12 11:53:44 2019] Hardware name: MSI MS-7996/H110M PRO-VD (MS-7996), BIOS 2.E0 08/11/2017
[pon sie 12 11:53:44 2019] 0000000000000286 faad9ce5c4d517dc ffff8804677a79d8 ffffffff813ffc13
[pon sie 12 11:53:44 2019] ffff8804677a7b90 ffff880464551e00 ffff8804677a7a48 ffffffff8121012e
[pon sie 12 11:53:44 2019] 0000000000000015 0000000000000000 ffff88046464f300 ffff880463138000
[pon sie 12 11:53:44 2019] Call Trace:
[pon sie 12 11:53:44 2019] [<ffffffff813ffc13>] dump_stack+0x63/0x90
[pon sie 12 11:53:44 2019] [<ffffffff8121012e>] dump_header+0x5a/0x1c5
[pon sie 12 11:53:44 2019] [<ffffffff81397c44>] ? apparmor_capable+0xc4/0x1b0
[pon sie 12 11:53:44 2019] [<ffffffff811968f2>] oom_kill_process+0x202/0x3c0
[pon sie 12 11:53:44 2019] [<ffffffff81196d19>] out_of_memory+0x219/0x460
[pon sie 12 11:53:44 2019] [<ffffffff8119cd45>] __alloc_pages_slowpath.constprop.88+0x965/0xb00
[pon sie 12 11:53:44 2019] [<ffffffff8119d168>] __alloc_pages_nodemask+0x288/0x2a0
[pon sie 12 11:53:44 2019] [<ffffffff811e84ed>] alloc_pages_vma+0xad/0x250
[pon sie 12 11:53:44 2019] [<ffffffff811d8ece>] __read_swap_cache_async+0xee/0x140
[pon sie 12 11:53:44 2019] [<ffffffff811d8f46>] read_swap_cache_async+0x26/0x60
[pon sie 12 11:53:44 2019] [<ffffffff811d9085>] swapin_readahead+0x105/0x1b0
[pon sie 12 11:53:44 2019] [<ffffffff811c60f0>] handle_mm_fault+0x1320/0x1820
[pon sie 12 11:53:44 2019] [<ffffffff810f340c>] ? hrtimer_nanosleep+0xdc/0x210
[pon sie 12 11:53:44 2019] [<ffffffff8106c747>] __do_page_fault+0x197/0x400
[pon sie 12 11:53:44 2019] [<ffffffff8106c9d2>] do_page_fault+0x22/0x30
[pon sie 12 11:53:44 2019] [<ffffffff818519d8>] page_fault+0x28/0x30
[pon sie 12 11:53:44 2019] Mem-Info:
[pon sie 12 11:53:44 2019] active_anon:3530449 inactive_anon:422028 isolated_anon:384
active_file:179 inactive_file:100 isolated_file:0
unevictable:913 dirty:0 writeback:0 unstable:0
slab_reclaimable:9555 slab_unreclaimable:17443
mapped:666425 shmem:1068600 pagetables:11052 bounce:0
free:35287 free_pcp:0 free_cma:0
[pon sie 12 11:53:44 2019] Node 0 DMA free:15888kB min:64kB low:80kB high:96kB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15988kB managed:15888kB mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB slab_reclaimable:0kB slab_unreclaimable:0kB kernel_stack:0kB pagetables:0kB unstable:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? yes
[pon sie 12 11:53:44 2019] lowmem_reserve[]: 0 1811 15874 15874 15874
[pon sie 12 11:53:44 2019] Node 0 DMA32 free:63400kB min:7704kB low:9628kB high:11556kB active_anon:1349712kB inactive_anon:449972kB active_file:164kB inactive_file:172kB unevictable:904kB isolated(anon):768kB isolated(file):0kB present:1987100kB managed:1906332kB mlocked:904kB dirty:0kB writeback:0kB mapped:53540kB shmem:495788kB slab_reclaimable:3864kB slab_unreclaimable:7812kB kernel_stack:400kB pagetables:7000kB unstable:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:11349276 all_unreclaimable? yes
[pon sie 12 11:53:44 2019] lowmem_reserve[]: 0 0 14062 14062 14062
[pon sie 12 11:53:44 2019] Node 0 Normal free:61860kB min:59812kB low:74764kB high:89716kB active_anon:12772084kB inactive_anon:1238140kB active_file:552kB inactive_file:228kB unevictable:2748kB isolated(anon):768kB isolated(file):0kB present:14663680kB managed:14400224kB mlocked:2748kB dirty:0kB writeback:0kB mapped:2612160kB shmem:3778612kB slab_reclaimable:34356kB slab_unreclaimable:61960kB kernel_stack:3952kB pagetables:37208kB unstable:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:89423048 all_unreclaimable? yes
[pon sie 12 11:53:44 2019] lowmem_reserve[]: 0 0 0 0 0
[pon sie 12 11:53:44 2019] Node 0 DMA: 2*4kB (U) 3*8kB (U) 3*16kB (U) 0*32kB 3*64kB (U) 2*128kB (U) 0*256kB 0*512kB 1*1024kB (U) 1*2048kB (M) 3*4096kB (M) = 15888kB
[pon sie 12 11:53:44 2019] Node 0 DMA32: 147*4kB (UME) 54*8kB (UME) 458*16kB (UME) 139*32kB (UME) 106*64kB (UME) 51*128kB (UME) 23*256kB (UE) 17*512kB (UE) 3*1024kB (UME) 0*2048kB 5*4096kB (M) = 64252kB
[pon sie 12 11:53:44 2019] Node 0 Normal: 267*4kB (UME) 183*8kB (UME) 230*16kB (UMEH) 215*32kB (UMEH) 86*64kB (UEH) 86*128kB (UMEH) 70*256kB (UMEH) 26*512kB (UMEH) 1*1024kB (U) 0*2048kB 0*4096kB = 61860kB
[pon sie 12 11:53:44 2019] Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=1048576kB
[pon sie 12 11:53:44 2019] Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=2048kB
[pon sie 12 11:53:44 2019] 1083770 total pagecache pages
[pon sie 12 11:53:44 2019] 14283 pages in swap cache
[pon sie 12 11:53:44 2019] Swap cache stats: add 81268022, delete 81253739, find 37239561/47307273
[pon sie 12 11:53:44 2019] Free swap = 14632936kB
[pon sie 12 11:53:44 2019] Total swap = 16662524kB
[pon sie 12 11:53:44 2019] 4166692 pages RAM
[pon sie 12 11:53:44 2019] 0 pages HighMem/MovableOnly
[pon sie 12 11:53:44 2019] 86081 pages reserved
[pon sie 12 11:53:44 2019] 0 pages cma reserved
[pon sie 12 11:53:44 2019] 0 pages hwpoisoned
[pon sie 12 11:53:44 2019] [ pid ] uid tgid total_vm rss nr_ptes nr_pmds swapents oom_score_adj name
[pon sie 12 11:53:44 2019] [ 449] 0 449 42126 113 18 3 75 0 lvmetad
[pon sie 12 11:53:44 2019] [ 461] 0 461 11311 172 22 3 361 -1000 systemd-udevd
[pon sie 12 11:53:44 2019] [ 917] 0 917 151045 242 28 3 730 0 lxcfs
[pon sie 12 11:53:44 2019] [ 924] 0 924 7557 409 19 3 80 0 cron
[pon sie 12 11:53:44 2019] [ 929] 0 929 1099 288 7 3 36 0 acpid
[pon sie 12 11:53:44 2019] [ 944] 112 944 11227 404 25 3 117 0 avahi-daemon
[pon sie 12 11:53:44 2019] [ 946] 0 946 6511 375 18 3 77 0 atd
[pon sie 12 11:53:44 2019] [ 951] 0 951 6320 398 17 4 227 0 smartd
[pon sie 12 11:53:44 2019] [ 954] 104 954 64098 283 28 3 283 0 rsyslogd
[pon sie 12 11:53:44 2019] [ 956] 107 956 10792 329 25 3 191 -900 dbus-daemon
[pon sie 12 11:53:44 2019] [ 977] 112 977 11196 0 24 3 81 0 avahi-daemon
[pon sie 12 11:53:44 2019] [ 982] 0 982 112713 309 73 4 700 0 NetworkManager
[pon sie 12 11:53:44 2019] [ 983] 0 983 8863 347 20 3 241 0 openvpn
[pon sie 12 11:53:44 2019] [ 986] 0 986 69321 328 37 3 234 0 accounts-daemon
[pon sie 12 11:53:44 2019] [ 1002] 0 1002 3343 226 11 3 41 0 mdadm
[pon sie 12 11:53:44 2019] [ 1011] 0 1011 69277 371 39 4 188 0 polkitd
[pon sie 12 11:53:44 2019] [ 1087] 0 1087 4030 321 13 3 215 0 dhclient
[pon sie 12 11:53:44 2019] [ 1275] 0 1275 16377 341 37 3 185 -1000 sshd
[pon sie 12 11:53:44 2019] [ 1284] 0 1284 211630 0 86 6 9081 -500 dockerd
[pon sie 12 11:53:44 2019] [ 1306] 0 1306 1305 405 9 3 51 0 iscsid
[pon sie 12 11:53:44 2019] [ 1310] 0 1310 1430 876 9 3 0 -17 iscsid
[pon sie 12 11:53:44 2019] [ 1409] 0 1409 4868 367 14 3 73 0 irqbalance
[pon sie 12 11:53:44 2019] [ 1418] 0 1418 4289 313 14 3 39 0 agetty
[pon sie 12 11:53:44 2019] [ 1457] 0 1457 168379 0 65 6 5264 -500 docker-containe
[pon sie 12 11:53:44 2019] [ 2193] 0 2193 10705 145 14 5 154 -500 docker-proxy
[pon sie 12 11:53:44 2019] [ 2229] 0 2229 66420 186 21 5 660 -500 docker-proxy
[pon sie 12 11:53:44 2019] [ 2264] 0 2264 29138 123 16 5 167 -500 docker-proxy
[pon sie 12 11:53:44 2019] [ 2299] 0 2299 1876 0 8 5 347 -999 docker-containe
[pon sie 12 11:53:44 2019] [ 2391] 100 2391 396 0 7 3 29 0 entrypoint.sh
[pon sie 12 11:53:44 2019] [ 2638] 100 2638 12125 0 30 3 7058 0 tor
[pon sie 12 11:53:44 2019] [30130] 0 30130 7160 153 20 3 89 0 systemd-logind
[pon sie 12 11:53:44 2019] [30475] 0 30475 10959 278 23 3 1630 0 systemd-journal
[pon sie 12 11:53:44 2019] [31698] 1001 31698 11319 336 25 3 216 0 systemd
[pon sie 12 11:53:44 2019] [31701] 1001 31701 53717 0 39 3 1509 0 (sd-pam)
[pon sie 12 11:53:44 2019] [31955] 100 31955 24023 294 17 3 72 0 systemd-timesyn
[pon sie 12 11:53:44 2019] [31981] 0 31981 23731 413 49 4 236 0 sshd
[pon sie 12 11:53:44 2019] [32013] 1001 32013 23731 266 48 4 259 0 sshd
[pon sie 12 11:53:44 2019] [32014] 1001 32014 6235 500 17 3 599 0 bash
[pon sie 12 11:53:44 2019] [32194] 0 32194 23731 419 49 3 236 0 sshd
[pon sie 12 11:53:44 2019] [32287] 1001 32287 23788 197 48 3 244 0 sshd
[pon sie 12 11:53:44 2019] [32288] 1001 32288 6229 420 17 3 659 0 bash
[pon sie 12 11:53:44 2019] [32738] 1001 32738 11646105 3547862 9767 28 454793 0 training.py
[pon sie 12 11:53:44 2019] [32754] 0 32754 4286 267 14 3 45 0 nvidia-persiste
[pon sie 12 11:53:44 2019] [ 343] 0 343 23731 437 51 3 236 0 sshd
[pon sie 12 11:53:44 2019] [ 445] 1001 445 23731 101 49 3 206 0 sshd
[pon sie 12 11:53:44 2019] [ 451] 1001 451 6188 480 17 3 514 0 bash
[pon sie 12 11:53:44 2019] [ 473] 1001 473 6847 408 18 3 2 0 htop
[pon sie 12 11:53:44 2019] Out of memory: Kill process 32738 (training.py) score 486 or sacrifice child
[pon sie 12 11:53:44 2019] Killed process 32738 (training.py) total-vm:46584420kB, anon-rss:11534960kB, file-rss:2656488kB
Почему остальная часть SWAP не используется?
Убийца Linux OOM все еще может рассердиться, если ему действительно не хватает памяти. В оперативной памяти должно быть место для размещения таблиц страниц. Пространство подкачки также намного медленнее, что может быть не в состоянии выгрузить страницу достаточно быстро, чтобы не отставать от высокой скорости выделения.
Продолжая последнюю строчку, training.py использовал около 14 ГБ RSS. Это само по себе может вызвать нехватку памяти на хосте объемом 16 ГБ, не считая накладных расходов, необходимых для запуска операционной системы.
Кроме того, в разделе Mem-Info файл состоит из трех младших цифр. Такой низкий уровень кеширования файлов (по сравнению с anon и shmem) является признаком того, что все простые страницы уже восстановлены.
Требуется больше оперативной памяти.