Check if cron is running, if so, check /var/cron/log If it says:
! c queue max run limit reached Sat May 7 21:15:00 2011
! rescheduling a cron job Sat May 7 21:15:00 2011
! c queue max run limit reached Sat May 7 21:16:00 2011
! rescheduling a cron job Sat May 7 21:16:00 2011
! c queue max run limit reached Sat May 7 21:17:00 2011
! rescheduling a cron job Sat May 7 21:17:00 2011
! c queue max run limit reached Sat May 7 21:18:00 2011
! rescheduling a cron job Sat May 7 21:18:00 2011
! rescheduling a cron job Sat May 7 21:18:00 2011
! c queue max run limit reached Sat May 7 21:19:00 2011
! rescheduling a cron job Sat May 7 21:19:00 2011
! c queue max run limit reached Sat May 7 21:19:00 2011
! rescheduling a cron job Sat May 7 21:19:00 2011
Check /etc/cron.d/queuedefs . File in format of c.<max process cron can run><other stuff>, like:
a.4j1n
b.2j2n90w
If it doesn’t say, defaults to 100 max processes cron can run. So, check cron to see how many it’s running, like: ptree 28653. Better yet, do this: ptree 28653 | grep -c <some pattern> to see what returns.
You can thus see what is filling cron up and stopping it from running as expected.