Custom limits for Nevis processes
Heavily used installations and large servers may require lifting the system limits for Nevis processes, to take full advantage of the available power. On the other hand, reasonably set limits protect an operating system against misbehaving processes that try to exhaust all the resources they can get. Therefore, each systemd controlled Nevis process on the nevisAppliance can be configured individually.
Perform the next steps to adjust the default system limits:
- Create an
override.conf
file for the respective instance. Replace<nevis...>
and<instance>
with the relevant Nevis component and instance:
systemctl edit <nevis...>@<instance>.service
# e.g. systemctl edit [email protected]
For components running with WildFly, the component to use is adnwildfly. For example, for the default nevisIDM instance on WildFly run:
systemctl edit adnwildfly@nevisidm
With an override.conf
file you can for example limit the number of file handles (LimitNOFILE=) or how many seconds a service needs to start-up (TimeoutStartSec=).
For more details, see systemd.exec(5) Process Properties or systemd.resource-control(5).
- Reload the systemd configuration:
systemctl daemon-reload
- Restart the changed service:
<nevis...> <instance> restart
# e.g. nevisproxy default restart
The given Nevis instance must exist and already be registered to systemd prior to customizing its systemd parameters.
The removal of a Nevis instance does not remove the directory /etc/systemd/system/[email protected]/
nor the file override.conf
within it. So when you want to re-use the name of the removed instance, manually remove the instance directory /etc/systemd/system/[email protected]/
after removing the instance. This is necessary to prevent the new instance with the "old" name from using old systemd custom settings.
Example
In this example scenario, the start phase of a heavily used nevisProxy instance called default takes longer than the timeout set by default within the systemd. Furthermore, the instance's limit regarding the amount of opened files is too low. As a result, the nevisProxy instance is reported as "dead" by systemd, it cannot handle enough files during operation as required and it produces various errors in its navajo.log
.
Perform the next steps to improve this situation:
- Create an
override.conf
file for this nevisProxy instance:
systemctl edit [email protected]
This opens a vi
editor with a new file.
- Adjust both the number of file handles (to 500000) and the startup timeout (to 300 seconds). Therefore, change the content of the file to:
[Service]
TimeoutSec=300
LimitNOFILE=500000
- Save the changes and close the editor. Then reload systemd:
systemctl daemon-reload
- Restart the affected instance:
systemctl restart [email protected]