> For the complete documentation index, see [llms.txt](https://cortex-docs.paloaltonetworks.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cortex-docs.paloaltonetworks.com/cortex-cloud-runtime-security/cases-and-issues/investigation-and-response/automation/engines/install-an-engine/docker/docker-hardening-guide/configure-the-memory-limitation.md).

# Configure the memory limitation

We recommend limiting available memory for each container to 1 GB.

If **`swap limit capabilities`** is enabled (see **How to check if your system supports swap limit capabilities** above), in Cortex Cloud configure the memory limitation using the following advanced parameters.

1. Edit the engine configuration file either by editing the `d1.conf` file, or If you installed via Shell, you can edit the configuration in the UI as well as editing the file directly. For details, see [Configure engines](https://app.gitbook.com/s/AEIjuYE3RXcIfmuQnBbm/engines/configure-engines).
2. Add the following keys.

   **`"limit.docker.memory": true, "docker.memory.limit": "1g"`**

   If you do not want to apply Docker memory limitations, you should explicitly set the advanced parameter: **`limit.docker.memory`** to **`false`**.
3. Save the changes.
4. Restart the demisto service on the engine machine.

   **`sudo systemctl start d1`**

   (Ubuntu) **`sudo service d1 restart`**
5. Test the memory limit.
   1. Go to Investigation & Response → Automation → Scripts → New Script.
   2. In the Script Name file, type **`TestMemory`**.
   3. Add the following script:

      ```
      from multiprocessing import Process
      import os


      def big_string(size):
          sys.stdin = os.fdopen(0, "r")
          s = 'a' * 1024
          while len(s) < size:
              s = s * 2
          print('completed creating string of length: {}'.format(len(s)))


      size = 1 * 1024 * 1024 * 1024
      p = Process(target=big_string, args=(size, ))
      p.start()
      p.join()
      if p.exitcode != 0:
          return_error("Return code from sub process indicates failure: {}".format(p.exitcode))
      else:
          print("Success allocating memory of size: {}".format(size))
      ```
   4. In the SCRIPT SETTINGS section, select the script to run on the Single engine and select the engine where you want to run the script.
   5. Save the script.
   6. To test the memory limit, type **`!TestMemory`**. The command returns an error when it fails to allocate 1 GB of memory.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://cortex-docs.paloaltonetworks.com/cortex-cloud-runtime-security/cases-and-issues/investigation-and-response/automation/engines/install-an-engine/docker/docker-hardening-guide/configure-the-memory-limitation.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
