Server config: Memory up, CPU down when getting busy

On my server I'm only running one forum, which at busy times (800+ users online) sometimes has spikes in memory usage (WHM 90%+), while server load is going down. Here's the 'normal' top stats.

last pid: 39111; load averages: 1.67, 1.83, 1.94 up 15+15:16:32 02:49:44
212 processes: 3 running, 206 sleeping, 3 zombie
CPU states: 63.6% user, 0.0% nice, 20.6% system, 0.2% interrupt, 15.6% idle
Mem: 464M Active, 745M Inact, 391M Wired, 68M Cache, 199M Buf, 341M Free
Swap: 1000M Total, 53M Used, 947M Free, 5% Inuse

At times the # of processes spikes up to 400+, bringing load averages down to 1, whm mem usage to 80%+ and at times making the apache server go down, but recovering in about 15 minutes. Odd thing is that that last Swap line just won't move, it'll always shows the same numbers.

Here are some server specs and congif settings. I've been trying to find a lot of info on this, such as Keepalive on/off, but hopefully someone can give me an insight on what's best to do. Thanks. Server config: Memory up, CPU down when getting busy

server
Intel(R) Xeon(TM) Dual CPU 2.66GHz
real memory = 2147418112 (2097088K bytes)
hard drive ad2: 39205MB [79656/16/63] at ata1-master UDMA100
Operating system FreeBSD
Apache version 1.3.31 (Unix)
PHP version 4.3.8
MySQL version 4.0.23a


MySQL

[mysqld]
skip-locking
safe-show-database
skip-innodb
socket=/tmp/mysql.sock
interactive_timeout=100
pid-file=/var/db/mysql/mysql.pid
max_connections = 500
key_buffer = 64M
myisam_sort_buffer_size = 64M
join_buffer_size = 1M
read_buffer_size = 2M
record_buffer=1M
sort_buffer_size = 2M
table_cache = 1024
thread_cache_size = 128
wait_timeout = 100
connect_timeout = 10
max_allowed_packet = 16M
max_connect_errors = 10
query_cache_limit = 1M
query_cache_size = 32M
query_cache_type = 1
thread_concurrency=4

[mysqld_safe]
open_files_limit = 8192

[mysqldump]
quick
max_allowed_packet = 16M

[myisamchk]
key_buffer = 64M
sort_buffer = 64M
read_buffer = 16M
write_buffer = 16M

[mysql]
no-auto-rehash

[isamchk]
key_buffer=64M
sort_buffer=64M
read_buffer=16M
write_buffer=16M

[mysqlhotcopy]
interactive-timeout


httpd.conf

Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
MinSpareServers 5
MaxSpareServers 10
StartServers 5
MaxClients 200

 

 

 

 

Top