Apache Too many open files

duese

New Member
Hallo,

in meiner /var/log/apache2/error.log tauchen immer wieder folgende Meldungen auf:

Code:
[Mon Apr 20 11:49:15 2009] [emerg] (24)Too many open files: Couldn't create pollset in child; check system or user limits
[Mon Apr 20 11:49:15 2009] [emerg] (24)Too many open files: Couldn't create pollset in child; check system or user limits
[Mon Apr 20 11:49:15 2009] [emerg] (24)Too many open files: Couldn't create pollset in child; check system or user limits
[Mon Apr 20 11:49:15 2009] [emerg] (24)Too many open files: Couldn't create pollset in child; check system or user limits
[Mon Apr 20 11:49:15 2009] [emerg] (24)Too many open files: Couldn't create pollset in child; check system or user limits
[Mon Apr 20 11:49:15 2009] [emerg] (24)Too many open files: Couldn't create pollset in child; check system or user limits
[Mon Apr 20 11:49:15 2009] [emerg] (24)Too many open files: Couldn't create pollset in child; check system or user limits
[Mon Apr 20 11:49:15 2009] [emerg] (24)Too many open files: Couldn't create pollset in child; check system or user limits
[Mon Apr 20 11:49:15 2009] [emerg] (24)Too many open files: Couldn't create pollset in child; check system or user limits
[Mon Apr 20 11:49:15 2009] [emerg] (24)Too many open files: Couldn't create pollset in child; check system or user limits
[Mon Apr 20 11:49:15 2009] [emerg] (24)Too many open files: Couldn't create pollset in child; check system or user limits
[Mon Apr 20 11:49:15 2009] [emerg] (24)Too many open files: Couldn't create pollset in child; check system or user limits
[Mon Apr 20 11:49:15 2009] [emerg] (24)Too many open files: Couldn't create pollset in child; check system or user limits
[Mon Apr 20 11:49:15 2009] [emerg] (24)Too many open files: Couldn't create pollset in child; check system or user limits

Hat jemand ne Ahnung wie genau ich die Meldung beheben kann? Liegt sicher an meiner Einstellung in der apach2.conf, oder?

Grüße
duese
 
Code:
#
# /etc/sysctl.conf - Configuration file for setting system variables
# See /etc/sysctl.d/ for additonal system variables
# See sysctl.conf (5) for information.
#

#kernel.domainname = example.com

# Uncomment the following to stop low-level messages on console
#kernel.printk = 4 4 1 7

##############################################################3
# Functions previously found in netbase
#

# Uncomment the next two lines to enable Spoof protection (reverse-path filter)
# Turn on Source Address Verification in all interfaces to
# prevent some spoofing attacks
#net.ipv4.conf.default.rp_filter=1
#net.ipv4.conf.all.rp_filter=1

# Uncomment the next line to enable TCP/IP SYN cookies
# This disables TCP Window Scaling (http://lkml.org/lkml/2008/2/5/167),
# and is not recommended.
#net.ipv4.tcp_syncookies=1

# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1

# Uncomment the next line to enable packet forwarding for IPv6
#net.ipv6.conf.all.forwarding=1


###################################################################
# Additional settings - these settings can improve the network
# security of the host and prevent against some network attacks
# including spoofing attacks and man in the middle attacks through
# redirection. Some network environments, however, require that these
# settings are disabled so review and enable them as needed.
#
# Ignore ICMP broadcasts
#net.ipv4.icmp_echo_ignore_broadcasts = 1
#
# Ignore bogus ICMP errors
#net.ipv4.icmp_ignore_bogus_error_responses = 1
#
# Do not accept ICMP redirects (prevent MITM attacks)
#net.ipv4.conf.all.accept_redirects = 0
#net.ipv6.conf.all.accept_redirects = 0
# _or_
# Accept ICMP redirects only for gateways listed in our default
# gateway list (enabled by default)
# net.ipv4.conf.all.secure_redirects = 1
#
# Do not send ICMP redirects (we are not a router)
#net.ipv4.conf.all.send_redirects = 0
#
# Do not accept IP source route packets (we are not a router)
#net.ipv4.conf.all.accept_source_route = 0
#net.ipv6.conf.all.accept_source_route = 0
#
# Log Martian Packets
#net.ipv4.conf.all.log_martians = 1
#
# The contents of /proc/<pid>/maps and smaps files are only visible to
# readers that are allowed to ptrace() the process
# kernel.maps_protect = 1

Habe an dieser Datei noch nie etwas verändert, ist also die Standard
 
Evtl. hast Du hier im Forum schon mal irgendwo Deinen Server inkl. Ausstattung beschrieben.
Ich bin aber zu faul jedesmal danach zu suchen. Daher erwarte ich solche Angaben in jeder neuen Frage. ;)

huschi.
 
Die Hardware des Servers:
Prozessor: Intel Core2Duo, 2x 2.33+ GHz, 3 MB L2 - FSB 1066 MHz
Arbeitsspeicher: 2 GB DDR2

Der Server dient ausschließlich als Webserver, es handelt sich um den SuperPlan Mini von OVH.
 
Aus-der-Nase-ziehen: Und die Distribution....? :(

Es ist also ein Dedi. In dem Fall kannst Du die Werte (zur Laufzeit) erhöhen.
Leider kenne ich Deine Distri nicht, also kann ich Dir nicht sagen welchen Pfad Du genau nehmen musst. (Ergo tippe ich mir die Finger wund, weil Du die Infos nicht lieferst....)
Es gibt zwei Pfade: /proc/sys/kernel/ oder /proc/sys/fs/
Du musst nachschauen, wo bei Dir irgendwelche Einträge vorhanden sind.
Code:
#Werte ansehen (falls bereits gesetzt!):
cat /proc/sys/kernel/file-max
cat /proc/sys/kernel/inode-max

#Werte ändern:
echo "4096" > /proc/sys/kernel/file-max
echo "12288" > /proc/sys/kernel/inode-max
Dabei sollte inode-max das 3-4-fache von file-max sein.

Um diese Werte auch nach einem Reboot zu setzten, ergänzt Du sie in entsprechender Schreibweise (also 'kernel.file-max' oder 'fs.file-max') in der o.g. Datei /etc/sysctl.conf.

Zusätzlich prüfe ob die File-Max per ulimit geregelt ist:
Code:
ulimit -a | grep 'open files'

huschi.
 
Back
Top