Zarząd pewnego stowarzyszenia, szukał kogoś, kto by na ich stronie wdrożył pewną funkcjonalność (wstępnie wytypowana wtyczka, do dostosowania i wdrożenia). Od razu w oczy rzuciło mi się, że przez lata stroną najwidoczniej zajmowały się różne osoby, co spowodowało, że WordPress był przeładowany wtyczkami, które często dublowały swoje funkcje (np. kilka aktywnych page builderów, czy wtyczek do zarządzania uprawnieniami). Ale to nie był największy problem. Dużo poważniejsze – zwłaszcza dla komfortu pracy – było to, że na każdą operację (wczytanie, czy przeładowanie strony) w panelu zarządzania trzeba było czekać kilkanaście sekund.

Zagubione HTTP API Calls, czyli panel zarządzania WordPressem (WP-Admin) się mocno ślimaczy

Coś gdzieś sprawiało, że każdorazowe wczytanie strony w panelu zarządzania trwało 11-12 sekund. Nigdy krócej niż 10 sekund. Nie mógł to być przypadek, zwłaszcza że taka sytuacja miała miejsce tylko w panelu zarządzania (WP-Admin). Sama strona śmigała, więc raczej to nie był (bezpośredni) problem po stronie hostingu.

Wprawdzie miałem dostęp administracyjny (a nawet Super Admina, bo to WordPress działający w trybie Multisite) to ograniczał się on tylko do samego WordPressa. I choć mogłem sobie z tym ograniczeniem relatywnie łatwo poradzić, to jednak nie chciałem „nadużywać gościnności”, dlatego zakres analizy do niezbędnego minimum, pomijając choćby logi samego WordPressa.

Zacząłem od narzędzi deweloperskich w przeglądarce, by po chwili skierować się ku wtyczce Query Monitor, co okazało się strzałem w dziesiątkę:

Strony panelu faktycznie wczytywały się powyżej 10 sekund, a większość z tego (10 sekund) zajmowało zdarzenie „HTTP API Calls”, które wywoływało stronę związaną z aktualizacją:

https://webinsider.pl/wp-admin/upgrade.php?step=1

Trochę nie mając lepszego pomysłu, zanim ewentualnie przystąpiłbym do eliminowania kolejnych wtyczek, postanowiłem odwiedzić tę stronę:

Dowiedziałem się z tej strony – zgodnie z moimi przewidywaniami – że „aktualizacja nie jest wymagana”, bo „baza danych WordPressa jest już aktualna”. Postanowiłem jednak pójść za ciosem, i z nadzieją kliknąłem w przycisk „kontynuuj”. i jak się okazało, to był kolejny strzał w dziesiątkę, bo po tej operacji panel zarządzania WordPressem zaczął działać normalnie.

Szczerze, to nawet nie bardzo wiem, co tam się wydarzyło, przypuszczam, że podczas którejś z aktualizacji coś musiało pójść nie tak, coś się przywiesiło, i stąd każdorazowa próba wykonania operacji (GET na URL), co powodowało blokowanie wczytywania strony o 10 sekund. Pewnie, gdyby to było na moim serwerze, to bym się temu dokładniej przyjrzał, ale w tej sytuacji wystarczyło mi to, że WP-Admin zaczął działać normalnie, a ja mogłem przystąpić do zaplanowanej pracy, ze wdrożeniem nowej funkcjonalności, bez obawy, że rozwalę monitor… ;-)

(!) Zgłoś błąd na stronie

Spodobał Ci się artykuł? Zapisz się do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!

Na podany adres e-mail otrzymasz od nas wiadomość e-mail, w której znajdziesz link do potwierdzenia subskrypcji naszego Newslettera. Dzięki temu mamy pewność, że nikt nie dodał Twojego adresu przez przypadek. Jeśli wiadomość nie przyjdzie w ciągu najbliższej godziny (zazwyczaj jest to maksymalnie kilka minut) sprawdź folder SPAM.

Patryk

CEO Webinsider.pl, a do tego CTO, CIO, CFO, CMO, CSO, COO i CRO ;-)
Pasjonat nowych technologii - od sprzętu po oprogramowanie, od serwerów po smartfony i rozwiązania IoT. Potencjalnie kiepski bloger, bo nie robi zdjęć "talerza" zanim zacznie jeść.

Dumny przyjaciel swoich psów :-)