I'd like to deploy a webapp to App Engine. This webapp contains several servlets that launches some Google Dataflow jobs.
I got no problem running my webapp locally (mvn jetty:run) and launching the dataflow jobs calling my servlets. But I'm struggling to deploy the webapp in App Engine.
The error message is :
A Feb 28 09:26:05 aef-default-version22-rh34 kernel: [ 47.506921] java invoked oom-killer: gfp_mask=0xd0, order=0, oom_score_adj=0
A Feb 28 09:26:05 aef-default-version22-rh34 kernel: [ 47.514328] java cpuset=b888170c5457fc14d6375c3a890ae140db7e7c0103fc3f400fed0177bce46b2c mems_allowed=0
A Feb 28 09:26:05 aef-default-version22-rh34 kernel: [ 47.524285] CPU: 0 PID: 4159 Comm: java Tainted: G C 3.16.0-4-amd64 #1 Debian 3.16.39-1
A Feb 28 09:26:05 aef-default-version22-rh34 kernel: [ 47.533382] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
A Feb 28 09:26:05 aef-default-version22-rh34 kernel: [ 47.542888] 0000000000000000 ffffffff81514c11 ffff88003cd263d0 ffff88002ee41400
A Feb 28 09:26:05 aef-default-version22-rh34 kernel: [ 47.550958] ffffffff815127e9 ffff88003cd268e8 0000000100000000 ffff88003d5d4800
A Feb 28 09:26:05 aef-default-version22-rh34 kernel: [ 47.558957] ffff88003cd263d0 ffff88003fc12f40 ffff88003c76b080 ffff88003d5d4800
A Feb 28 09:26:05 aef-default-version22-rh34 kernel: [ 47.567115] Call Trace:
A Feb 28 09:26:05 aef-default-version22-rh34 kernel: [ 47.569688] [<ffffffff81514c11>] ? dump_stack+0x5d/0x78
A Feb 28 09:26:05 aef-default-version22-rh34 kernel: [ 47.575112] [<ffffffff815127e9>] ? dump_header+0x76/0x1e8
A Feb 28 09:26:05 aef-default-version22-rh34 kernel: [ 47.580812] [<ffffffff8114243d>] ? find_lock_task_mm+0x3d/0x90
A Feb 28 09:26:05 aef-default-version22-rh34 kernel: [ 47.586929] [<ffffffff8114287d>] ? oom_kill_process+0x21d/0x370
A Feb 28 09:26:05 aef-default-version22-rh34 kernel: [ 47.593048] [<ffffffff8114243d>] ? find_lock_task_mm+0x3d/0x90
A Feb 28 09:26:05 aef-default-version22-rh34 kernel: [ 47.599254] [<ffffffff811a292a>] ? mem_cgroup_oom_synchronize+0x52a/0x590
A Feb 28 09:26:05 aef-default-version22-rh34 kernel: [ 47.606417] [<ffffffff811a1eb0>] ? mem_cgroup_try_charge_mm+0xa0/0xa0
A Feb 28 09:26:05 aef-default-version22-rh34 kernel: [ 47.613333] [<ffffffff81143030>] ? pagefault_out_of_memory+0x10/0x80
A Feb 28 09:26:05 aef-default-version22-rh34 kernel: [ 47.619886] [<ffffffff81058515>] ? __do_page_fault+0x3c5/0x4f0
A Feb 28 09:26:05 aef-default-version22-rh34 kernel: [ 47.626010] [<ffffffff81173bbf>] ? mprotect_fixup+0x14f/0x270
A Feb 28 09:26:05 aef-default-version22-rh34 kernel: [ 47.631985] [<ffffffff8151cde8>] ? page_fault+0x28/0x30
A Feb 28 09:26:05 aef-default-version22-rh34 kernel: [ 47.637757] Task in /b888170c5457fc14d6375c3a890ae140db7e7c0103fc3f400fed0177bce46b2c killed as a result of limit of /b888170c5457fc14d6375c3a890ae140db7e7c0103fc3f400fed0177bce46b2c
A Feb 28 09:26:05 aef-default-version22-rh34 kernel: [ 47.654851] memory: usage 629760kB, limit 629760kB, failcnt 7625
A Feb 28 09:26:05 aef-default-version22-rh34 kernel: [ 47.660978] memory+swap: usage 0kB, limit 18014398509481983kB, failcnt 0
A Feb 28 09:26:05 aef-default-version22-rh34 kernel: [ 47.667813] kmem: usage 0kB, limit 18014398509481983kB, failcnt 0
A Feb 28 09:26:05 aef-default-version22-rh34 kernel: [ 47.674120] Memory cgroup stats for /b888170c5457fc14d6375c3a890ae140db7e7c0103fc3f400fed0177bce46b2c: cache:24KB rss:629736KB rss_huge:0KB mapped_file:0KB writeback:0KB inactive_anon:0KB active_anon:629760KB inactive_file:0KB active_file:0KB unevictable:0KB
A Feb 27 19:16:07 aef-default-version20-xpjd kernel: [ 50.561039] [ pid ] uid tgid total_vm rss nr_ptes swapents oom_score_adj name
A Feb 27 19:16:07 aef-default-version20-xpjd kernel: [ 50.569102] [ 3912] 999 3912 746739 158540 567 0 0 java
A Feb 27 19:16:07 aef-default-version20-xpjd kernel: [ 50.577122] Memory cgroup out of memory: Kill process 3912 (java) score 1010 or sacrifice child
A Feb 27 19:16:07 aef-default-version20-xpjd kernel: [ 50.585961] Killed process 3912 (java) total-vm:2986956kB, anon-rss:627524kB, file-rss:6636kB
The problem is maybe in this limit of memory (?) :
A Feb 28 09:26:05 aef-default-version22-rh34 kernel: [ 47.654851] memory: usage 629760kB, limit 629760kB, failcnt 7625
Do you know which memory is it? Is it my war file containing all the dependencies that I need to run the dataflow pipelines that populates more than 629760kB of memory? Do you have any ideas where to look at?
Yes, it looks like your app needs more than the default 0.6 GB or memory, you need to configure more memory in your Resource settings:
memory_gb
RAM in GB. The requested memory for your application. Each CPU core requires between 0.9 and 6.5 GB of total memory, which includes ~0.4 GB for the overhead of some processes (subject to change). To calculate the requested memory: memory_gb = NUMBER_CPU_CORES * [0.9 - 6.5] - 0.4. For the example above where you have specified 2 cores, you can request between 1.4 and 12.6 GB. The total amount of memory available to the application is set by the runtime environment as the environment variable GAE_MEMORY_MB.