It's not a lot of fun having to kill and restart SBCL every 2 days. So I decided to restart SBCL one last time and NOT load my website, or any of my own code at all. I just loaded Hunchentoot with its default "you haven't made a webpage yet" index page. I left it running for three days. Lo and behold, I still get memory exhaustion errors. And errors about hitting a limit on the number of threads that are allowed. And other errors I don't really even understand. Given the fact that I myself am probably the only visitor of this site, this doesn't make me feel well for what would happen if the site ever got more popular.
So yeah, this is depressing. Not to say there's anything wrong with Common Lisp, SBCL, or Hunchentoot. But probably it's safe to say that the combination of those three things plus a VPS host is not workable. At least not for the VPS host I use. Or at least, I don't know how to make it work, in spite of my best effort. I'm tempted to throw some money at the problem and get a VPS with more RAM. But I draw the line right about there. Why should such a thing ever be necessary? (And would it work, anyways?)
Of all the problems I thought I'd have running Common Lisp on my server, running out of memory wasn't one that I ever expected. Is this one of the risks you take running something that's so far out of "mainstream"? If more people used CL, probably more people would've had this problem and solved it already. I really do think that the ease of deploying a web framework is one of the biggest determining factors of whether people will use it, and CL fails horribly in this respect when compared with everything else I've ever used.
I'm debating whether to change hosts, upgrade my VPS on my current host to have more RAM, or just rewrite my site in PHP or Ruby. I'm leaning toward rewriting the site at the moment. PHP and RoR both work just fine on my server, and have for a year with not a single alert about memory exhaustion. It'd probably take me an evening or two to rewrite, compared with the month and a half it took me to do it in Common Lisp. I'm not sad I gave it a shot anyways. CL is a nice language.