WordPress site causing lots of server IO

1) Try WordPress › WPDB Profiling « WordPress Plugins to see what is running all the queries.

2) Clearing post and page revisions will greatly reduce the size of a WP database – up to 90% in some cases – with a huge return in speed and lower server load. Run as SQL query in phpmyadmin to delete revisions; change table prefix as necessary:

DELETE a,b,c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type="revision"

Then optimize all tables. And then add

define ('WP_POST_REVISIONS', FALSE);

near the top of wp-config.php to disable future revisions.

3) Check your permalink structure: Category in Permalinks Considered Harmful » Otto on WordPress