1

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?

PLavigne
  • 11
  • 3
  • Does the port respond with anything, when you connect to it with telnet? – Konrad Gajewski Jul 09 '15 at 14:31
  • Can you disable the HTTP>HTTPS Redirect to make sure there is not a loop somewhere? – TheFiddlerWins Jul 09 '15 at 15:24
  • Don't use prefork. That's the 1990s era MPM and handles only 1990s era traffic levels. Switch to the event MPM or use nginx. – Michael Hampton Jul 09 '15 at 16:46
  • Konrad Gajewski, I have to wait for it to happen again before I can try anything else, I'll update when it does. TheFiddlerWins, I'll try disabling the redirect temporarily, even if it's not a loop it might let me at least see the server status page if it's some SSL issue. Michael Hampton, We're going to be rolling out nginx eventually but not soon enough :) – PLavigne Jul 09 '15 at 17:28
  • It happened again sometime over the weekend. @KonradGajewski, I tried connecting to it (both 80 and 443) and it doesn't respond at all even if I try to send it things like "GET /" etc. Just sits there until timeout. I tried enabling the Event MPM, but apparently Kolab _requires_ prefork (at least the package does) and I couldn't seem to get it to even start with event enabled - after installing the package, nothing seems to show up in mods-available, setting related config does nothing, and uninstalling prefork tries to uninstall all of Kolab. – PLavigne Jul 14 '15 at 17:49

0 Answers0