DevHeads.net

Apache process is terminated by high memory usage of CKAN

Hi All,

I have an apache web server(v2.4) + ckan (v2.7.2) running in a docker container.
In our scenario, CKAN is being hit with large number of requests at certain intervals (like 10 requests/sec). Then after a certain period of time, the memory consumption tends to increase towards it's threshold value.

After a certain interval/time, if we access the home page of ckan at <a href="https://url-address/ckan" title="https://url-address/ckan">https://url-address/ckan</a> with large number of request(Using Jmeter), the memory usage of the Apache process keeps on increasing and ultimately the process crashes and does not work properly.

(NOTE: ckan is mounted on /ckan root path )

As a quick remedy for this, restarting the docker container reduces the memory usage.

My concern is that, are there any set of conditions/parameters in CKAN or Apache Webserver that needs to be taken care of, to prevent this behavior? What is the threshold values to process these requests? Do I have to limit the no. of requests to Ckan below its threshold value so that it does not crashes? Or is there any way to limit the memory consumption of Apache web server?

Some of the values set in apache2.conf are:

1. Timeout 300

2. KeepAlive On

3. MaxKeepAliveRequests 100

4. KeepAliveTimeout 5

Also /apache2/mods-enabled/mpm_event.conf consists of the following parameters and values:

1. StartServers 2

2. MinSpareThreads 25

3. MaxSpareThreads 75

4. ThreadLimit 64

5. ThreadsPerChild 25

6. MaxRequestWorkers 150

7. MaxConnectionsPerChild 0

We have logged the same issue at : <a href="https://github.com/ckan/ckan/issues/4939" title="https://github.com/ckan/ckan/issues/4939">https://github.com/ckan/ckan/issues/4939</a>
Thanks & Regards
Arnav Garg