Applying a hierarchy of remedies for different levels of server load
1H Guardian monitors server load level and depending on the values takes measures to prevent overload. It does not just kill processes over a particular load level. Instead, it has a sophisticated system that applies hierarchy of different remedies (renice, ionice, pause, kill) for different load levels. There are three values of load that can be managed through the 1H Guardian config file: normal, high and critical.
- If the load is between normal and high, 1H Guardian will apply renice to the processes and/or ionice if your kernel supports the CFQ I/O scheduler. This changes the priority of the running processes so that the server resources are better utilized without stopping or killing a process and without creating server overload.
- If the load is between high and critical, 1H Guardian will start pausing processes until the load comes down to a reasonable value, at which point they will be restarted.
- If the load reaches critical levels, 1H Guardian will kill all processes that are known to be bad or to consume many resources.
Automatically detecting and killing unnecessary processes
- Detects long-running processes and kills them.
1H Guardian is able to detect long running processes that have been started by the users. The fact that such processes have not been completed in a timely manner means that they are only using server resources without a chance for producing a result. That is why such processes are killed.
- Detects and kills stalled MySQL queries.
Stalled MySQL queries are other processes that use precious server resources even when they are no longer needed by the users who have created them. 1H Guardian monitors the MySQL server for such queries which hurt the MySQL performance and kills them.