Apache2 Performance Tuning

Apache, Lighttpd, nginx, Cherokee
sintec
Posts: 54
Joined: 2006-10-10 22:34

Apache2 Performance Tuning

Post by sintec » 2011-08-30 21:45

Hallo!

Ich habe bereits in dem Thema viewtopic.php?f=103&t=53426 ausführlich Hilfe erhalten und wurde gebeten einen weiteren Thread für mein Apache2 zu eröffnen. :)

Vorweg, das Projekt generiert sehr viele zeitgleiche Zugriffe. Ich mich seit Wochen an der Konfigurationen von Apache2, doch ich bekomme es einfach nicht sauber am laufen. Die Reaktionszeit der Webseiten sind der blanke Horror.

Vorweg nun einige Konfigurationmerkmale:

Code: Select all

23m1015:~# apache2ctl -M
Loaded Modules:
 core_module (static)
 log_config_module (static)
 logio_module (static)
 mpm_prefork_module (static)
 http_module (static)
 so_module (static)
 alias_module (shared)
 authz_host_module (shared)
 authz_user_module (shared)
 deflate_module (shared)
 dir_module (shared)
 mime_module (shared)
 php5_module (shared)
 rewrite_module (shared)
 status_module (shared)
 geoip_module (shared)
Syntax OK


Code: Select all

23m1015:~# apache2 -V
Server version: Apache/2.2.9 (Debian)
Server built:   Dec 11 2010 21:34:00
Server's Module Magic Number: 20051115:15
Server loaded:  APR 1.2.12, APR-Util 1.2.12
Compiled using: APR 1.2.12, APR-Util 1.2.12
Architecture:   64-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT=""
 -D SUEXEC_BIN="/usr/lib/apache2/suexec"
 -D DEFAULT_PIDLOG="/var/run/apache2.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="/var/run/apache2/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"
 -D SERVER_CONFIG_FILE="/etc/apache2/apache2.conf"


/etc/apache/apache2.conf

Code: Select all

#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 15

#
# 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 0

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

##
## Server-Pool Size Regulation (MPM specific)
##

# 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 mpm_prefork_module>
#ServerLimit         20000
#StartServers        20
#MinSpareServers     1000
#MaxSpareServers     2000
#MaxClients          20000
#MaxRequestsPerChild 100000
#</IfModule>

#<IfModule mpm_prefork_module>
#ServerLimit         200
#StartServers        10
#MinSpareServers     20
#MaxSpareServers     20
#MaxClients          200
#MaxRequestsPerChild 10000
#</IfModule>

<IfModule mpm_prefork_module>
StartServers         30
MinSpareServers      15
MaxSpareServers      25
ServerLimit          810
MaxClients           800
MaxRequestsPerChild  0
</IfModule>


Der mysql scheint aktuell sauber und performant zu laufen. Hoffe Ihr könnt mir helfen die Büchse etwas zu pimpen. :)

Danke euch.

ddm3ve
Moderator
Moderator
Posts: 1143
Joined: 2011-07-04 10:56

Re: Apache2 Performance Tuning

Post by ddm3ve » 2011-08-30 21:49

Wie ich dir schon per PM geschickt habe, scheint mir die eingebettete adserver Seite das Problem zu verursachen. Immer wenn der Banner geladen wird, dauert der Seitenaufbau ewig. Nutze ich andere tools, als einen direkten Browser, wurde die Seite über den ganzen Tag schnell geliefert.

Ich denke, in dem Script oder den Grafiken etc. ist das Problem zu suchen.
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.

sintec
Posts: 54
Joined: 2006-10-10 22:34

Re: Apache2 Performance Tuning

Post by sintec » 2011-08-31 18:57

Sobald der Apache2 mehrere Stunde läuft, finde ich immer wieder Einträge im server-status die wie folgt aussehen..

Code: Select all

63-0   -   0/0/91601   .    1.40   362   0   0.0   0.00   19.33    178.1.156.235   openx.advert-layer.de   GET /adserver/images/nav_bg_startframe.gif HTTP/1.1


Wie kann ich diesen Eintrag verstehen? Besteht die Verbindung noch zum Apache2? Verbraucht diese Connections unnötig Resourcen meines Systems?

Hoffe mir kann hierzu jemand helfen. :-w

EDIT:

Oder auch dieses Exemplar..

Code: Select all

81-0   -   0/0/49062   .    0.92   3201   0   0.0   0.00   9.84    94.217.231.32   openx.advert-layer.de   GET /adserver/images/nav_bg_startframe.gif HTTP/1.1


Ein SS Wert von "3201" wie kann das möglich sein? Dreht sich das Script im Kreis? Als Hinweis, die Datei "nav_bg_startframe.gif" enthält in Wirklichkeit folgenden Inhalt..

Code: Select all

<?
$zufall = rand(1, 5);

if(!$_SERVER['HTTP_REFERER'] || $zufall != 5)
{
    //header("HTTP/1.0 404 Not Found");
    header('Content-Type: image/png');
    $img = imagecreatefrompng('line.png');
    imagepng($img);

    //exit();
}
else
{
header("Location: http://google.de/");
}
?>
Last edited by sintec on 2011-08-31 19:00, edited 1 time in total.

ddm3ve
Moderator
Moderator
Posts: 1143
Joined: 2011-07-04 10:56

Re: Apache2 Performance Tuning

Post by ddm3ve » 2011-08-31 22:15

Was soll der Code eigentlich genau bewirken und warum so umständlich über imagecreate?
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.