No space left on Device, Apache startet nicht mehr

~ 0 min
2008-03-24 21:27

Leider kommt es immer wieder zu Problemen mit den Semaphores auf einem Apache Server.

/etc/sysctl.conf

kernel.msgmni = 1024                                                                                                               
kernel.sem = 250 256000 32 1024 

sysctl -p

Ausserdem habe ich noch ein kleines Script am laufen. Diese Script gibt den benutzten Speicher wieder frei.

Das ganze einfach per Cronjob regelmäßig ausführen.

#!/usr/bin/perl                                                                                                                    
                                                                                                                                   
                                                                                                                                   
 $tmp = ´/usr/bin/ipcs -s´;                                                                                                        
 @tmp = split(/\n/,$tmp);                                                                                                          
                                                                                                                                   
 foreach $tmp (@tmp) {                                                                                                             
         $semid = (split(/ /,$tmp))[1];                                                                                            
         $test = $semid;                                                                                                           
         $test =~ s/[^0-9]{1,}//g;                                                                                                 
         if (($test eq $semid) and $semid) {                                                                                       
                 print "$semid";                                                                                                   
                 $pmt = ´/usr/bin/ipcs -s -i $semid´;                                                                              
                 foreach $line (split(/\n/,$pmt)) {                                                                                
                         $enil = $line;                                                                                            
                         $enil =~ s/[\t ]{1,}/ /g;                                                                                 
                         }                                                                                                         
                 $pid = (split(/ /,$enil))[4];                                                                                     
                 if ($pid) {                                                                                                       
                         print " => \t $pid";                                                                                      
                         if (!-e "/proc/$pid") {                                                                                   
                                 print "\t can be deleted\n";                                                                      
                                 system("/usr/bin/ipcrm sem $semid");                                                              
                                 } else {                                                                                          
                                 print "\t used\n";                                                                                
                                 }                                                                                                 
                         }                                                                                                         
                 }                                                                                                                 
         }

Durchschnittliche Bewertung 0 (0 Abstimmungen)

Es ist möglich, diese FAQ zu kommentieren.