A suggestion for your situation, you can resize a linode pretty quickly. It has to move to a different host machine (because only linodes of the same plan run on any given host, ie, the host is all 512's or all 768's), but the time there is just to move your disk images. So, you could run it on a 512 most of the year when it's slow and then at the busy time, bump it up to a 768 or 1024 or higher during that busy period, then back down afterwards.
Although, as Ghan_04 pointed out, with some tweaking, you could probably push your peak volumes out of a 512 as well, depending on how heavy your php is.
this forum site and the irc channel have some people who are pretty solid at tuning as well. Some things to consider:
use mpm_worker with mod_fcgid instead of mpm_prefork with mod_php, this works very well for me
use nginx instead of apache, many here go that route
if you stick with prefork/mod_php, make sure you drop your maxclients, the default is way too high and that's the #1 problem people post to the forums with
