Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I use Amazon EC2 large instance (Memory 7.5 GB) for my http server. Recently I noticed my ssh commands running slow so I checked the memory usage.

free -t -m
             total       used       free     shared    buffers     cached
Mem:          7455       7373         82          0       1404         39
-/+ buffers/cache:       5929       1526
Swap:            0          0          0
Total:        7455       7373         82

So something is consuming a lot of memory. I twice a day restart httpd to free up the memory and about in 12hrs or so it gets full again. The daily average CPU utilization is below 20%.

Here is the top comannd sorted by memory usage.

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                        
31492 apache      20   0 98.6m 4444  460 S  1.0  0.1   0:04.38 sshd                                                                                            
31493 apache      20   0  168m  12m  608 D  1.0  0.2   0:09.09 rsync                                                                                           
 3288 apache      20   0 1988m 1.5g 1468 S  0.7 20.0   4:13.87 httpd                                                                                           
16935 apache      20   0  782m 246m 1532 S  0.7  3.3   0:38.71 httpd                                                                                           
31505 apache      20   0  263m  14m  412 S  0.7  0.2   0:01.27 rsync                                                                                           
    3 root      20   0     0    0    0 S  0.3  0.0   7:35.26 ksoftirqd/0                                                                                     
  217 root      20   0     0    0    0 S  0.3  0.0  10:38.66 kswapd0                                                                                         
 3844 apache      20   0 1676m 1.1g 1628 S  0.3 14.8   3:20.79 httpd                                                                                           
 4280 apache      20   0 1275m 847m 1376 S  0.3 11.4   2:36.90 httpd                                                                                           
 5323 apache      20   0  946m 616m 1304 S  0.3  8.3   1:53.98 httpd                                                                                           
 6580 apache      20   0 1038m 504m 1584 S  0.3  6.8   1:30.28 httpd                                                                                           
 8394 apache      20   0  974m 402m 1584 S  0.3  5.4   1:10.86 httpd                                                                                           
22210 apache      20   0  647m 191m 1532 S  0.3  2.6   0:26.09 httpd                                                                                           
26899 apache      20   0  717m 139m 1480 S  0.3  1.9   0:14.65 httpd                                                                                           
31622 root      20   0 15060 1176  888 R  0.3  0.0   0:00.12 top                                                                                             
    1 root      20   0 19380  296    0 S  0.0  0.0   0:00.46 init                                                                                            
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                                                                        
    4 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kworker/0:0    
share|improve this question

2 Answers 2

One of the scripts that Apache runs has a memory leak. You need to trace the script down. You will likely want to use strace.

In the mean time, you can schedule /etc/init.d/httpd graceful to run on an interval to release the memory.

share|improve this answer

You may want to look into your PHP variables. There are various tuning scripts you can run to get a more in-depth look at how Apache is performing. One I personally recommend is ApacheBuddy (http://quicksnips.dunsmor.com/remote/apachebuddy.pl) strace is also a good resource if your versed in reading the output, you can try the following command for starters:

# ps auxw | grep sbin/apache | awk '{print"-p " $2}' | xargs strace
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.