Why may cause my sites loading very slowly?

Server details:

RAM: 16GB
HDD: 1000GB
OS: Linux 2.6.32-220.7.1.el6.x86_64
Processor: 6 Core

Please see the link below for my # top preview:

http://dl.dropbox.com/u/26967109/%23top-1.jpg

my /etc/my.cnf configuration are as below:

bind-address=127.0.0.1
local-infile=0
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql

skip-locking
max_connections=20000
table_cache=40000
max_user_connections=20000
key_buffer_size=1536M
sort_buffer_size=3M
join_buffer_size=3M
read_buffer_size=3M
read_rnd_buffer_size=4M
max_connect_errors=80
myisam_sort_buffer_size=512M
wait_timeout=300
interactive_timeout=800
connect_timeout=80
thread_cache_size=1024
tmp_table_size=8M
thread_concurrency=12
concurrent_insert=2
query_cache_limit=2M
query_cache_size=256M
query_cache_type=1
transaction_alloc_block_size=8192

[mysqldump]
quick
max_allowed_packet=512M

[myisamchk]
key_buffer_size=256M
sort_buffer_size=256M
read_buffer_size=64M
write_buffer_size=64M

[mysqlhotcopy]
interactive-timeout

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
open_files_limit=8192

As my server (1and1.com) httpd conf is set to /etc/httpd/conf.d/swtune.conf and the configuration is as below: at prefork.c:

StartServers 8 MinSpareServers 10 MaxSpareServers 20 ServerLimit 1536 MaxClients 1536 MaxRequestsPerChild 4000

I tried to explain everything that I changed to keep my server okay, but maximum time my server is down. Please help me which parameter can I change to keep my server okay and my sites can load fast. It is taking too much time to load my sites.