Long wait time for website and taking too much CPU+Memory
There are tons of performance options, I think with the beefy server resources you have we can tune it tremendously by doing the following:


Database tuning

MySQL - make sure QueryCache is setup, and InnoDB is the only table type being used. You'll want to look at the high performance sample my.cnf (config) that ships with MySQL.
Memcache - configuring Memcache will speed up tons of the queries and sub-queries Drupal is notorious for.
Session Cache - for handling a lot of concurrent [unique] login sessions you can consider using a NoSQL database engine like CouchDB/MongoDB, it'll free up your MySQL db from managing those sessions.

Web Serving tuning

OpCode Caching - speeds up PHP a lot, is basically a requirement on all Drupal servers nowadays. I use APC, and there are other solutions but APC will work reliably with very little setup; this one is a no brainer.
Caching - you seriously need to cache at least the home page for anonymous users, and when a user logs in their unique session will be handled correctly. Consider using Varnish (it'll allow your site to handle over 100x more anonymous traffic and there are tons of tips on how to use it with Drupal.



These are just the quick highlights of what you need to utilize. If someone says you can't use caching on your website then there is a flaw in either the product design or the system design. There are literally thousands of popular Drupal sites that manage tons of logins and anonymous traffic working just fine with this recipe.