Apache reading processen

Pagina: 1
Acties:

  • roan
  • Registratie: December 2003
  • Niet online
Het probleem is dat er op sommige momenten (zeer) veel connecties worden gelegd naar Apache, bij ons ook wel bekend als 'reading procesjes'. Deze vertragen (zo nu en dan) de webserver omdat er soms 100+ Apache processen openstaan welke geen enkel nut hebben.

Momenteel blokkeren we het IP dat veel verbindingen maakt naar onze server dmv iptables. In principe werkt dit goed, maar het probleem is dat elke keer de Apache daemon moet worden herstart, anders worden deze verbindingen niet verbroken. Persoonlijk vind ik dit nogal ingrijpend.

Zelf heb ik al redelijk wat uurtjes doorgebracht met het vinden van een betere oplossing, want als Apache herstart wordt zijn de (honderden) websites even niet bereikbaar. De enige oplossing welke ik tot nu toe heb gevonden is 'tcpkill', onderdeel van 'dsniff'.

Nou mijn vraag, is er een mogelijkheid (buiten tcpkill) om een established verbinding te verbreken zonder dat wij Apache moeten herstarten?

We gebruiken momenteel Apache 1.3 op Debian Sarge, de IP's worden gevonden door 'netstat -pan | grep EST'

[ Voor 10% gewijzigd door roan op 13-02-2008 13:36 ]


  • microsofty710
  • Registratie: Februari 2004
  • Laatst online: 26-10-2025
Ik weet hier weinig van eerlijk gezegt. Maar in de apache config staan wel een aantal dingen die hiervoor relevant lijken zoals 'MaxKeepAliveRequests'. Note: dit komt uit een config file van apache 2.2.4. Ik weet niet wat apache 1 hiervoor bied maar het lijkt me het waard om naar te kijken.

Dit is niet de richting waar je in zocht, maar wellicht is het beter?

code: /etc/apache2/apache2.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 300

#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On

#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100

#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 15

  • roan
  • Registratie: December 2003
  • Niet online
Momenteel staat dit ingesteld:

httpd.conf
code:
1
2
3
4
5
Timeout 600

KeepAlive On
MaxKeepAliveRequests 128
KeepAliveTimeout 5


Ik ben zelf ook echt geen expert wat betreft Apache en de daarbij behorende configuraties. Het is voor mij ook niet mogelijk te gaan 'klooien' met deze settings omdat dit een productieserver is en ik gewoon niet gemachtigd ben om hier aanpassingen in te gaan maken.

Het enige wat mij bezig houdt zijn de smsjes van Nagios, continu dezelfde reading processen. Vervolgens belt/mailt de klant dat zijn website regelmatig even onbereikbaar is.

Het stoppen van een tcp verbinding is wellicht niet de beste oplossing (meer een workaround?), maar lijkt mij op dit moment het meest logische / makkelijk.

Verwijderd

Tip: kijk eens naar mod_evasive