Guys, thanks for your help.
I upgraded the server to 1GB RAM now.
For a temperory solution I put a line in crontab to restart httpd every 10 mins. So far, the server did not crash anymore. But this is not what I'm looking for.
I hope with your help, I can pinpoint the problem.
For MPM, I'm not sure which one I'm using, cause I can't run "server-info" thingy.
Code:
# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule prefork.c>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 100
MaxRequestsPerChild 0
</IfModule>
# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule worker.c>
StartServers 2
MaxClients 100
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
# perchild MPM
# NumServers: constant number of server processes
# StartThreads: initial number of worker threads in each server process
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# MaxThreadsPerChild: maximum number of worker threads in each server process
# MaxRequestsPerChild: maximum number of connections per server process
<IfModule perchild.c>
NumServers 5
StartThreads 5
MinSpareThreads 5
MaxSpareThreads 10
MaxThreadsPerChild 20
MaxRequestsPerChild 0
</IfModule>
# WinNT MPM
# ThreadsPerChild: constant number of worker threads in the server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_winnt.c>
ThreadsPerChild 250
MaxRequestsPerChild 0
</IfModule>
# BeOS MPM
# StartThreads: how many threads do we initially spawn?
# MaxClients: max number of threads we can have (1 thread == 1 client)
# MaxRequestsPerThread: maximum number of requests each thread will process
<IfModule beos.c>
StartThreads 10
MaxClients 50
MaxRequestsPerThread 10000
</IfModule>
# NetWare MPM
# ThreadStackSize: Stack size allocated for each worker thread
# StartThreads: Number of worker threads launched at server startup
# MinSpareThreads: Minimum number of idle threads, to handle request spikes
# MaxSpareThreads: Maximum number of idle threads
# MaxThreads: Maximum number of worker threads alive at the same time
# MaxRequestsPerChild: Maximum number of requests a thread serves. It is
# recommended that the default value of 0 be set for this
# directive on NetWare. This will allow the thread to
# continue to service requests indefinitely.
<IfModule mpm_netware.c>
ThreadStackSize 65536
StartThreads 250
MinSpareThreads 25
MaxSpareThreads 250
MaxThreads 1000
MaxRequestsPerChild 0
MaxMemFree 100
</IfModule>
# OS/2 MPM
# StartServers: Number of server processes to maintain
# MinSpareThreads: Minimum number of idle threads per process,
# to handle request spikes
# MaxSpareThreads: Maximum number of idle threads per process
# MaxRequestsPerChild: Maximum number of connections per server process
<IfModule mpmt_os2.c>
StartServers 2
MinSpareThreads 5
MaxSpareThreads 10
MaxRequestsPerChild 0
</IfModule>
And this is my top after upgrading:
Code:
10:26:33 up 1:18, 4 users, load average: 0.27, 0.21, 0.25
101 processes: 98 sleeping, 3 running, 0 zombie, 0 stopped
CPU0 states: 28.3% user 1.3% system 0.0% nice 0.0% iowait 69.2% idle
CPU1 states: 17.2% user 3.4% system 0.0% nice 0.0% iowait 78.2% idle
Mem: 1030320k av, 770376k used, 259944k free, 0k shrd, 23448k buff
682748k actv, 27464k in_d, 12564k in_c
Swap: 1044216k av, 12508k used, 1031708k free 431592k cached
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND
3083 nobody 15 0 28336 27M 2824 S 30.9 2.7 0:05 0 httpd
3185 nobody 16 0 18388 17M 2760 S 8.5 1.7 0:00 1 httpd
3122 nobody 16 0 27512 26M 2748 R 4.3 2.6 0:03 0 httpd
3117 mysql 15 0 16820 9800 2648 S 3.1 0.9 0:00 1 mysqld
3215 nobody 16 0 18684 18M 2720 R 2.5 1.8 0:01 1 httpd
1764 app 15 0 58656 57M 12060 S 1.1 5.6 0:35 0 jsvc
9 root 15 0 0 0 0 SW 0.5 0.0 0:03 0 kscand/Normal
3223 mysql 20 0 16820 9800 2648 S 0.3 0.9 0:00 0 mysqld
3183 root 15 0 1140 1140 900 R 0.1 0.1 0:00 1 top
1 root 15 0 104 84 56 S 0.0 0.0 0:04 1 init
2 root RT 0 0 0 0 SW 0.0 0.0 0:00 0 migration/0
3 root RT 0 0 0 0 SW 0.0 0.0 0:00 1 migration/1
4 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 keventd
and cat /proc/meminfo
Code:
total: used: free: shared: buffers: cached:
Mem: 1055047680 816025600 239022080 0 24104960 455155712
Swap: 1069277184 12808192 1056468992
MemTotal: 1030320 kB
MemFree: 233420 kB
MemShared: 0 kB
Buffers: 23540 kB
Cached: 431980 kB
SwapCached: 12508 kB
Active: 709016 kB
ActiveAnon: 304256 kB
ActiveCache: 404760 kB
Inact_dirty: 27480 kB
Inact_laundry: 19592 kB
Inact_clean: 12596 kB
Inact_target: 153736 kB
HighTotal: 131052 kB
HighFree: 1024 kB
LowTotal: 899268 kB
LowFree: 232396 kB
SwapTotal: 1044216 kB
SwapFree: 1031708 kB