« Weaving Wikis and blogs together | Home | Techbargins: useful place to keep track of cheap tech »

August 22, 2002

Using MovableType with mod_perl: perf improvments

Dan Kapusta (of In My Experience) asks about what kind of performance improvement I saw from getting MovableType to work under mod_perl.

I was originally running MT on a P133 without mod_perl. Response time dragged - probably 4-5 seconds after each click to get the system to response.

When I moved to mod_perl, performance crossed a threshold. Most responses came back in about 2 seconds, which is pretty good - I've got a DSL line at home, and doing a click on CNN.com seems to take about 3 seconds.

mod_perl really only helps with response time. If it take a while to rebuild your pages, chances are it will still take a while: mod_perl only really helps on startup; once Perl and MT is loaded into memory, it should take basically the same time.

Speed is also worth a lot. I've been running MT on a 1GHZ+ P4 under mod_perl, and performance is very snappy. I like it.

I just completed migrating a couple of MT blogs from my home P133 running under DBI to another system running MT with MySQL. The migration went ok, but there were a couple of bumps:

  • For reasons I didn't understand, when I did an export of my items off my home system and then a re-import on the new MySQL based MT install, it doubled all my posts: they all showed up twice. I ended up manually deleting half of them, but now that I think about it, I probably could have done something better in SQL. (But my SQL skills aren't good, so it was probably fast to delete by hand.)
  • Not surprisingly, my links back to previous items within my blog had troubles. All the ids for the posts changed, so I had to fix those manually. Fortunately, I only had a few, and I was able to use a SQL select statement to help me find the bad links. This points up a perhaps better reason to move to MySQL: moving from one machine to another should be smoother: I can recreate all my site settings by exporting and recreating the MySQL db.