A system process can start using excessive memory or CPU for many reasons. Perhaps frequent traffic causes bursts in resource usage. Or maybe running the software for long periods of time causes corruption that slowly builds. Maybe the app is running a big query or uploading a large file and caching all the data in memory along the way. Or maybe the software algorithm is inefficient, using excessive CPU to perform the task.
Whatever the cause, when CPU and memory climb, the software becomes less responsive, and other processes on this VM also suffer. In most cases, a service restart can fix the symptom, but mask the problem. Faulty software or bad data will build up again, and in time the process will need restarting again.
If a process isn’t functioning as expected, this leads to degraded user experience. If all the processes in a specific microservice fail, the site can go offline completely.
Shoreline makes it easy to detect excessive CPU and memory use in a process running on VMs in your fleet. Shoreline compares the process’s memory and CPU to the limits you’ve defined in the Shoreline portal. If the memory or CPU spikes beyond the limit, Shoreline captures diagnostic details around the application including memory and CPU used, and JVM details if applicable, terminates the service, and restarts it.