Ursache für Web-Serverlast ermitteln

Floezen

New Member
Hallo,

wie kann man herausfinden, welche Skripte oder Webseiten für eine besonders hohe Serverlast verantwortlich sind?
Ich habe im laufe des Tages immer wieder kurze Zeiten, in denen die CPU Auslastung für Apache auf über 70% geht.
Es scheint aber kein Schema zu geben, daher würde ich cron-jobs ausschließen.

Bei MySQL gibt es sowas wie log-long queries. Gibt es vielleicht soetwas ähnliches für Apache, wo Skripte, die besonders lange dauern oder viel Serverlast verursachen geloggt werden?

(Da es zu viele Fremd-Skripte auf dem Server gibt, ist es für mich nicht denkbar, selber eine Bearbeitungszeit-Protokollierung in jedes Skript zu programmieren...)

Grüsse
Flözen
 
Es gibt mod_status. Und mit "ExtendedStatus On" durchaus nützlich.
Leider nicht optimal, aber mit dem richtigen Geschick schafft man das schon.

huschi.
 
Hallo,

ist mod_status nicht per default aktiviert?

apache2ctl -M gibt bei mir aus:
Code:
 core_module (static)
 mpm_prefork_module (static)
 http_module (static)
 so_module (static)
 actions_module (shared)
 alias_module (shared)
 auth_basic_module (shared)
 authn_file_module (shared)
 authz_host_module (shared)
 authz_groupfile_module (shared)
 authz_default_module (shared)
 authz_user_module (shared)
 authn_dbm_module (shared)
 autoindex_module (shared)
 cgi_module (shared)
 dir_module (shared)
 env_module (shared)
 expires_module (shared)
 include_module (shared)
 log_config_module (shared)
 mime_module (shared)
 negotiation_module (shared)
 setenvif_module (shared)
 ssl_module (shared)
 userdir_module (shared)
 php5_module (shared)
 perl_module (shared)
 python_module (shared)
 rewrite_module (shared)
 fcgid_module (shared)
 headers_module (shared)
 suexec_module (shared)
 bw_module (shared)
 deflate_module (shared)

Im System finde ich das Modul unter
Code:
/usr/lib64/apache2/mod_status.so

Und obwohl ich in /etc/apache2/mod_status.conf versuchsweise
Code:
<IfModule mod_status.c>
    <Location /server-status>
        SetHandler server-status
        Order deny,allow
        Allow from all
    </Location>
</IfModule>
eingetragen habe, bekomme ich eine 404 Meldung...

Muss ich das Modul noch irgendwo einbinden???

Grüsse
Flözen

P.S: Server version: Apache/2.2.10 (Linux/SUSE) + Plesk 10
 
Last edited by a moderator:
Hallo,

ich habe seit einigen Tagen eine recht hohe Serverlast, weiß aber nicht so recht, woher die kommen könnte.
Allerdings habe ich im Apache Server Status viele Anfragen, wie die Folgene gefunden:

Code:
Srv	PID	Acc	M	CPU	SS	Req	Conn	Child	Slot	Client	VHost	Request
50-2	-	0/0/19267	.	1.42	138	0	0.0	0.00	143.59	::1	my.server-home.net	OPTIONS * HTTP/1.0

Ohne PID, und Client '::1' - was sind dass für Prozesse???
der VHOST 'my.server-home.net' ist die Serveradresse vom Provider über die z.B. Plesk zu erreichen ist, also nicht der Name der genutzten Domains.

Wie könnte ich eigentlich sonst noch herausbekommen, welche Domain den Ärger verursacht?

Danke & Grüsse
Flözen
 
Last edited by a moderator:
Das ist "normal". Diese Requests löst der Apache-Parent-Prozess regelmäßig an und fordert so seine Clients auf, sich selbst mal zu überprüfen ob es nicht Zeit ist, sich zu beenden.
Wenn keine PID dabei steht, hat sich dieser Prozess tatsächlich danach beendet.
Auf einen schwach frequentierten Server mit hohen MaxClients, kann der Statusbericht dann schon mal seltsam aussehen. Das liegt daran, wie Apache seinen Statusbericht im Speicher hält.

huschi.
 
Back
Top