Was macht Apache 2 gerade?

1803
Xiè Jìléi

Ich verwende Apache 2.2.17 auf Ubuntu - Apache scheint 100% der CPU zu belegen. Woher weiß ich, was Apache gerade für eine so hohe CPU-Auslastung unternimmt?

Sollte ich einige Stapelverfolgungswerkzeuge verwenden? Oder vielleicht gibt es einige Apache-Plugins, die den internen Zustand des Computers entlasten können?

3

1 Antwort auf die Frage

2
Randolf Richardson

Überprüfen Sie das Zugriffsprotokoll und die Fehlerprotokolldateien (Speicherorte werden in Ihrer "httpd.conf" -Datei definiert) auf eine Vielzahl von Aktivitäten (neueste Einträge befinden sich am Ende der Datei - verwenden Sie "tail -f access.log", um sie live zu sehen ).

Wenn in Ihren Protokolldateien keine Aktivitäten angezeigt werden, ist es wahrscheinlich etwas Code, der in einer Endlosschleife hängengeblieben ist. Durch einen Neustart von Apache HTTPd wird dies vorübergehend behoben. Sie sollten jedoch unbedingt benutzerdefinierten Code überprüfen (verwenden Sie mod_perl2, CGI Perl, PHP oder etwas anderes?). Dies gilt insbesondere für Code, der geändert / hinzugefügt wurde, nachdem Sie der Meinung waren, dass dieses Symptom auftaucht .

Das "Server-Status" -Modul (das in einem Standard-Build enthalten sein sollte) kann ebenfalls einige Einblicke bieten.

Wenn der Neustart wieder zu 100% Aktivität führt, liegt möglicherweise Code vor, der mit Apache HTTPd geladen wird, der das Problem verursacht, oder einem der Module.

Machst du etwas komplizierter mit der Konfiguration? Verwenden Sie mod_perl2, CGI Perl, PHP oder etwas anderes? Welche Version von Apache HTTPd verwenden Sie? Auf welchem ​​Betriebssystem laufen Sie? (Ich habe Unix oder Linux angenommen, da diese Betriebssysteme besser als Webserver geeignet sind und die meisten Leute sich zu entscheiden scheinen).

Es gibt viele Aktivitäten in den Protokolldateien, aber die Dauer wird nicht angezeigt. Daher kann ich nicht messen, welche Seite das Problem verursacht hat. Und ja, ich verwende stark mod_perl, mod_rewrite, mod_python usw. `server-status` ist sehr hilfreich, aber ich konnte keine 10 zeitaufwändigsten URLs auf der Statusseite finden, aber es ist sehr nützlich. Xiè Jìléi vor 13 Jahren 1
Ich bin ein großer Fan von mod_perl2 und freue mich immer, andere ModPerl-Entwickler kennenzulernen (wir haben nicht viele Probleme, daher neigen wir dazu, eine ziemlich ruhige Community zu sein - Sie interessieren sich vielleicht für http: / /perl.apache.org/maillist/modperl.html). Die Protokolle zeigen nicht an, wie lange ein Vorgang gedauert hat, aber sie helfen Ihnen, mögliche Schuldige einzuschränken. Können Sie feststellen, zu welcher Zeit die 100% -ige CPU-Auslastung steigt? Wenn dies der Fall ist, können Sie den Zeitpunkt des Starts leicht überprüfen (wenn dies sofort eintritt, kann es sich zum Zeitpunkt des Ladens um ein Modul handeln, das ein benutzerdefiniertes mod_perl2-Modul enthält). Randolf Richardson vor 13 Jahren 1