Fork me on GitHub
#datomic
<
2022-06-28
>
icemanmelting16:06:27

Guys, quick question, I am testing datomic’s performance in terms of throughtput when ingesting data. I am running the transactor, peer and the pg instance inside docker, each with its own container. What happens is that the transactor just keeps dying, without giving any error whatsoever.

chrisblom12:06:23

Given that there no logs I suspect the transactor gets killed by OOM killer, how much memory is available in de container? Can you inspect the container after the process is killed?

chrisblom12:06:31

Note that the JVM uses more memory than just heap memory, so at 3.8GB heap the total memory used by the JVM is more. If you are also running peer and postgres maybe the problem is that you are just running out of memory and the most memory hungry process gets killed.

icemanmelting13:06:22

I have found the issue, and you are going to laugh at me kappa

icemanmelting13:06:05

In my desperation, I turned the heap max value to 8G, and the container had a max of 8G as well, so basically the jvm was trying to increase the heap and the process jut died

icemanmelting13:06:39

I went ahead and increased the transacto’s container to 12 G, and it has been running without issue for 15 hours 😄

icemanmelting16:06:11

I have given it th 4GB of heap max as per production recommendations, and what i have noticed is that it usually dies at around 3.8 GB used reported by docker

icemanmelting16:06:36

the part that puzzles me most, is the lack of information in the logs, not docker logs, the logs inside the container itself