I'm running a Debian 7 server with Kolab Groupware installed and not much else. It works perfectly fine normally, but randomly (always when I'm not looking, of course) the CPU usage will spike to 100% and stay there, Apache will become unresponsive, and I have to kill -3 apache2.prefork. I'm pretty sure this is something I did since I haven't found anyone else having a similar problem with Kolab. Some more info:
- SSL is required and connecting to port 80 at all immediately redirects you to the SSL site
- By "Unresponsive" I mean that trying to access any page sits at "Establishing Secure Connection" until the browser times out.
- This includes the page made by mod_status, so the solution given in this question will not work
- Nothing is written to the logs. It's set up the usual way, with an access.log, error.log and other_vhosts_access.log, and they're all empty. The most recent content is the rolled logs from the previous day which only show normal use and nothing suspicious
- There doesn't seem to be anyone connected to it so I doubt it's overloaded
- It's running on a VM. Originally the VM had only one CPU, so I thought maybe that was bottlenecking it and added another CPU. However, it still happens, but interestingly will only ever spike one of the CPU's to 100%, indicating it's likely some kind of infinite loop as far as I can tell.
- Everything else on the server that doesn't interact with Apache continues to work just fine.
- I wrote a little cron job to check the CPU usage and email me when it spikes, meaning I've been able to catch it happening minutes afterwards, yet I still can't find anything in the logs (including syslog) that would indicate why.
- It doesn't seem to be periodic, it's happened at different times of day, when people are using it or when it's idle. There are no cron jobs I could find that correspond to the spike.
I think I can probably figure it out myself if I knew a way to look at what PHP is running without using HTTP(S) to do so or having PHP compiled with debugging symbols. Anyone know a way to do this?