Bad Header! Bad. No Biscuit for You!
As a follow-up to my post on my internal server error (500) that I keep getting when running MovableType's rebuild of Categories - I've mentioned before how it seems my web host, pair.com, throttles how much CPU resources any one process can use. Pair has a page that lists which processes have been automatically "modified or terminated". On that list are the scripts that, among other things, run comments and rebuild Categories.
However, feedback from pair states that although they are throttling the script, they aren't terminating it. In investigating the problem, the indicate the following:
I was able to find the following error showing up through Apache while trying to run the rebuild :
Bad header=Out of memory!
I checked the logs for the program on the server that enforces the resource usage policies to see if this was ending the script, however it was not. There are entries for it running the "nice" command on the script which simply lower the priority of it to the CPU. This would not impact the actual execution of the script though.
While running the rebuild I saw that the process handling this quickly grows to over 45MB of RAM usage in a matter of seconds, then terminates. This appears to be a problem in the configuration of Movable Type itself. Unfortunately, we will not be able to debug this for you. You should contact Movable Type support in regards to the issue. They should be able to best advise what changes to the MT installation are needed to correct this.
Possible solutions? 1. I can switch from static to dynamic pages (i.e., switch from HTML pages stored on the server to elements retrieved from the MySQL database and temporarily assembled in memory when a "page" is requested). 2. I can modify the category template to be more efficient. 3. I can switch to another CMS that is more efficient in rebuilding its archives. 4. I can switch to another host.
The downside of doing number 1 is that if the database becomes corrupted or lost, all content is likewise corrupted or lost. On a static site, loss of the database doesn't mean anything to the pages that already been created and stored as regular HTML files. Those pages will always exist and therefore are independent of the database server status.
In addition, once the static pages are built, it is usually more efficient for the server to simply transfer the markup to your browser for display than it is to make multiple queries to a database, build the page, and then send the page to your browser.
The downside of number 2 is that I'm not sure how optimized it has to be to work. And even if optimized for now, what happens when I hit 2,000 posts? Or 3,000. etc?
For option 3, I've taken a quick look at what else is out there as far as CMSs. Although I was surprised at the number of systems, there are only a few that output to static pages. Still, this may be possible.
Solution 4 is also possible. There are other hosts, including hosting my site myself on a PC at home. I've been looking at operating systems to run the site and have tried FreeBSD and various versions of Linux. Still, it would be a large investment in time to get things running (and keep it running).
I haven't decided what I'm going to do yet. I will, of course, contact MT and give them the information that pair provided. But for now, I may try experimenting with using dynamic pages for just the categories while leaving everything else static.
Programming Note: Monday is a state holiday so probably no post. See everyone back here on Tuesday!
Have a Great Weekend, Everyone - Aloha!