I can guarantee you with 99.9% accuracy that your server is simply not configured properly. What are you running for a web server - Apache? nginx?
Like I said to you in PM - I run a few sites which total ~30,000 hits a day. My properly-optimized 512 Linode doesn't even break a sweat.
When you run an unmanaged solution such as a VPS - you need to take on the task of configuring it properly too.
I am using Apache with MySQL. I used the default configurations setup by the LAMP StackScript. It may very well be that I needed to properly configure Apache/MySQL for high traffic low memory usage.
That said, the traffic for your website may be quite different from mine.
You see 30,000 hits/day = 0.35 hits/second. I sometimes see 100 file requests/second.
Most of the requests are for small images that appear in the live feed feature on WeUseCoins, BitcoinMe, and SearchBitcoin.
I suspect Linode is not structured for handling lots of little file requests. Their systems seemed to be skewed toward high CPU, high RAM, low bandwidth websites.
I host a lot of pictures on some of these sites. Sometimes I can see well north of 100 file requests a second.
Using the default, out of the box configuration is your issue. Apache's default config is pure junk, plain and simple. MySQL can also be trimmed up pretty nicely. For example, disabling InnoDB will save you ~10MB, easy.
Also, I never asked - what exactly "crashed"? Did you get an out of memory error of some sort?