I moved my Drupal Sites from Dreamhost to Linode and there is a considerable increase in performance. Here's how I went about it, I bootstrapped Gentoo specifically to my Linode so she's running lean and mean. I then also went about hitting the various Drupal performance sites and did some tweaking for MySQL. I also run XCache and I'm running a lot of contributed modules also.
I also run two Linodes, one for Apache/Drupal and the other Linode as a dedicated MySQL server. You really don't need to do this but I chose to go that route and I'm happy.
I still maintain my family website with Dreamhost on their so called VPS and again there is a drastic performance difference with Linode.
Here's my stats with Drupal on my Linode -
Code:
total used free shared buffers cached
Mem: 722012 460068 261944 0 65880 137176
-/+ buffers/cache: 257012 465000
Swap: 262136 0 262136
You can also check it out for yourself -
http://www.rejecttheherd.netEdit: -
Also here's my mysql config, but this works for me. You'll need to tweak it for your own environment.
Code:
[mysqld]
character-set-server = utf8
default-character-set = utf8
user = mysql
port = 3306
socket = /var/run/mysqld/mysqld.sock
pid-file = /var/run/mysqld/mysqld.pid
log-error = /var/log/mysql/mysqld.err
basedir = /usr
datadir = /var/lib/mysql
skip-locking
key_buffer = 32M
key_buffer_size = 125M
max_allowed_packet = 16M
table_cache = 1024
sort_buffer_size = 3M
net_buffer_length = 8K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 64M
language = /usr/share/mysql/english
max_connections = 30
join_buffer_size = 3M
read_buffer_size = 2M
thread_stack = 128K
thread_cache_size = 286
interactive_timeout = 25
wait_timeout = 1800
connect_timeout = 10
max_user_connections = 55
max_connect_errors = 1000
query_cache_limit = 1M
query_cache_size = 32M
query_cache_type = 1
expire_logs_days = 60
tmp_table_size = 16M
long_query_time = 5
log_slow_queries = /var/log/mysql/mysql-slow.log
binlog-do-db = critical_data
thread_concurrency = 8
[isamchk]
key_buffer = 16M
sort_buffer_size = 16M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer = 16M
sort_buffer_size = 16M
read_buffer = 8M
write_buffer = 8M
My xcache settings
Code:
auto_globals_jit="0"
xcache.cacher="1"
xcache.size="64M"
xcache.count="4"
xcache.slots="8k"
xcache.var_size="64M"
xcache.var_count="4"
xcache.readonly_protection="0"
xcache.mmap_path="/dev/zero"
xcache.stat="1"
xcache.coverager="1"
xcache.coveragedump_directory=""
xcache.admin.enable_auth="1
For Apache I also have the Event MPM, so with a couple thousand hits a day she does alright. Here's my htop output this a.m.

_________________
Where "Thought Crime" is commited
http://www.rejecttheherd.net