2012-12-22 8 views
5

Potrzebuję wskazówek, jak debugować konfigurację nowego serwera, który się zawiesza. Ta strona jest bardzo dużym przykładem Drupala. Duże jak w ponad 45 MB pamięci PHP na ładowanie strony przy funkcjonowaniu APC.Jak mogę debugować nginx/php-fpm dla witryny, która się zawiesza?

Sama strona działa na innym serwerze z nginx/php-fpm/apc. Nowy serwer, który konfiguruję, ma niestandardową kompilację PHP 5.3.

nginx jest skonfigurowany do nasłuchu na porcie 80 i przekazuje żądanie fastcgi do 127.0.0.1:9000. To działa.

W głównym katalogu Drupala mam zwykły plik PHP z phpinfo(); w tym. Mogę załadować ten plik PHP bezpośrednio i potwierdzić, że kompilacja PHP wygląda dobrze.

nie ma błędu nginx, ale dziennik błędów php-fpm pokaże jak ta strona wisi:

[22-Dec-2012 17:41:16] UWAGA: [basen www] dziecko 19760, skrypt "/var/www/mysite/public_html/index.php" (żądanie: "GET /index.php") działa zbyt wolno (5.068781 s), logowanie

Poza tym błędem nic nie ma.

Poszukuję porady na temat sposobów debugowania, biorąc pod uwagę, że normalny skrypt PHP ładuje się dobrze, ale ładowanie aplikacji Drupal (bezpośrednio do index.php, nawet nie próbując wyczyścić adresów URL) zawiesza się.

+1

Istnieje wiele lepszych metod, takich jak użycie xdebug do zdalnego profilowania, ale standardowa metoda "wquick-n-dirty" w 5-minutowym podejściu polega jedynie na posypaniu skryptu instrukcjami, które wyświetlają przydatne informacje w pliku dziennika. – goat

Odpowiedz

4

Po wyświetleniu tego wpisu dziennika błędów w dzienniku błędów php-fpm, w rzeczywistości zapewnia on pomocny ślad stosu powolnego procesu php.

W pliku konfiguracyjnym php-fpm (np. /etc/php-fpm.d/www.conf) spójrz na ustawienia request_slowlog_timeout i slowlog. Pierwszy określa, ile sekund do momentu, w którym żądanie zostanie uznane za "wolne", a drugie definiuje plik, do którego będą zapisywane ślady stosu.

Jeśli spojrzysz na plik slowlog php-fpm, uzyskasz lepszy obraz tego, w którym miejscu w stosie wywołań metod są zawieszone twoje procesy.

Powiązane problemy