First things first, give your query_cache some size. You have it turned on, but have query_cache_size set to 0. Give this as much as you can, especially since you have a very heavy read to write ratio (197416293:51004). Your innodb_buffer_pool_size is too small -- currently, it is entirely used up (Innodb_buffer_pool_pages_free = 0). If you are using InnoDB exclusively, not MyISAM, then you can reduce the key_buffer_size variable, as InnoDB does not use the MyISAM key_buffer cache.
Additionally, increase your table_cache to ~300. This will decrease the file descriptor swapping that is currently going on in your system because of many opened tables and not enough cache size for the opened descriptors.
Not quite sure what qualititative number you expect this machine with only 1G RAM to be capable of producing; at least you have your baseline (~65 queries/sec). Make the above changes and post a new queries per second. I think you should at least be able to handle ~95-100 queries/sec with the above changes (especially the query_cache_size since your data doesn't change that much)
Cheers!
(BTW, if your data doesn't change that much, why are you using InnoDB might I ask? MyISAM may be better performing for your applications if you don't need the transactional safety of InnoDB...)
Jay Pipes
Community Relations Manager, North America, MySQL Inc.
Got Cluster?
http://www.mysql.com/cluster
Personal:
http://jpipes.com