About TimesTen Containerized Deployments

As an in-memory database, TimesTen uses a large amount of memory by design. Processes that run TimesTen may be the largest memory users on a given node. If the operating system gets stressed, TimesTen is likely a prime candidate to get terminated by the Linux OOM killer. Therefore, it is crucial that memory requests and limits be specified for your TimesTen containers. TimesTen also recommends that CPU requests and limits be specified.

Note:

Ensure the value of a request and the value of a limit for a resource is the same. For example, if the memory request for the daemonlog container has a value of 30Mi ensure the memory limit for this daemonlog container also has a value of 30Mi. There are examples later in the chapter that illusrate this.

The memory request and memory limit for the tt container is the most essential and crucial to specify. The value is dependent on the memory required to hold the TimesTen database as well as the memory required for the TimesTen daemon, subdaemons, cache and replication agents, Client/Server server, and so on. The memory required to hold the database is dependent on the size of your database.

The TimesTen Operator provides functionality to accurately size your TimesTen database. This functionality is discussed later. The additional memory required for the TimesTen daemon, subdaemons, Client/Server server is dependent on your SQL and PL/SQL usage and the memory requirements vary with your workload. The TimesTen Operator provides a default of 2Gi for this additional memory. You can use this default or change it. How to change it is discussed later.

Let’s take a look at the defaults for the TimesTen containers. In all cases, you have the option of changing the default.
  • tt container:
    • memory: This value is discussed in detail throughout this chapter.
    • cpu: The value is dependent on how much CPU the tt container requires. This includes CPU used by the TimesTen daemon, subdaemons, replication agents, cache agents, and by the Client/Server server. The Client/Server server executes SQL on behalf of your applications, so the value depends on the workload. There is no default.
  • daemonlog container:
    • memory: The default is 200Mi.
    • cpu: The default is 200m.
  • exporter container (if provisioned):
    • memory: The default is 200Mi.
    • cpu: The default is 200m.
In addition, if you are using TimesTen Scaleout, there are additional TimesTen containers to consider:
  • tt container of the management instance:
    • memory: The default is 3Gi.
    • cpu: The default is 1.
  • zookeeper container:
    • memory: The default is 1Gi.
    • cpu: The default is 500m.