Killing PID of high-memory Apache instance

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Killing PID of high-memory Apache instance

Moore-Levesque, John H (CGI Federal)

My understanding of this configuration here:

 

check process apache with pidfile /var/run/httpd.pid

               […]

               if total cpu > 80% for 5 cycles then restart

 

Is that monit will kill restart Apache if the CPU usage of all the processes (parent and children) is over 80% for 5 cycles. Is it possible to have monit instead kill a single Apache PID with high CPU or memory usage? Or is it all-or-nothing?

 

John H. Moore-Levesque | Consultant

EPA CAM (ITS-EPA II) | CGI Federal

2800 Meridian Parkway, Suite 150, Durham, NC 27713

T: 919-294-0080 | M: 303-718-9787

 


--
To unsubscribe:
https://lists.nongnu.org/mailman/listinfo/monit-general
Reply | Threaded
Open this post in threaded view
|

Re: Killing PID of high-memory Apache instance

martinp@tildeslash.com
Yes, the "total cpu" test operates on aggregated CPU usage of apache parent process and all its children - the "restart" action which is used in the test will restart the whole apache.

You can use the exec action with custom script that will find and kill the child with highest cpu usage.

Example:

1.) Create the script for example as /usr/local/bin/killapache.sh and make it executable with chmod 755:

--8<--
#!/bin/bash
ps -eo pid,pcpu,cmd | grep apache | sort -k2nr | head -1 | cut -f2 -d' ' | xargs -i kill {}
--8<--


2.) Monit configuration:
--8<--
check process apache with pidfile /var/run/httpd.pid
        […]
        if total cpu > 80% for 5 cycles then exec "/usr/local/bin/killapache.sh"
--8<--

Note: i didn't fully test the above example, may need some modifications.

Best regards,
Martin



> On 15 Feb 2017, at 22:44, Moore-Levesque, John H (CGI Federal) <[hidden email]> wrote:
>
> My understanding of this configuration here:
>  
> check process apache with pidfile /var/run/httpd.pid
>                […]
>                if total cpu > 80% for 5 cycles then restart
>  
> Is that monit will kill restart Apache if the CPU usage of all the processes (parent and children) is over 80% for 5 cycles. Is it possible to have monit instead kill a single Apache PID with high CPU or memory usage? Or is it all-or-nothing?
>  
> John H. Moore-Levesque | Consultant
> EPA CAM (ITS-EPA II) | CGI Federal
> 2800 Meridian Parkway, Suite 150, Durham, NC 27713
> T: 919-294-0080 | M: 303-718-9787
>  
> --
> To unsubscribe:
> https://lists.nongnu.org/mailman/listinfo/monit-general


--
To unsubscribe:
https://lists.nongnu.org/mailman/listinfo/monit-general