Performance Optimization
Controlling memory
- Memory can be controlled per container using the mem_limit instruction in the compose file
- Additionally the memory assigned to the Java process (Sprint Boot) is controlled by using the JAVA_OPTIONS environment variable
Contract tests
- The container that is running the contract tests will also require a decent amount of memory (about 1gb)
- If the contact test build is failing and is not being able to generate a test result report this might signal memory issues. This error would can when the contract test process would get killed due to insufficient memory.
- If services run out of memory they might get killed during the start up phase - this will usually be the auth service, however that depends on many factors (system, JVM, etc).
OpenLMIS: the global initiative for powerful LMIS software