Panel krzyczał jak alarm w serwerowni, a strona wyglądała na kompletnie znudzoną życiem. Zero kolejek, zero obciążenia, zero emocji. Mimo to wskaźnik CPU wbity na 100 procent i ani drgnie. Klient klasycznie: „hosting pewnie się pomylił”. Hosting klasycznie: „wszystko działa”. Prawda zwykle leży w logach, a one nie kłamią.
Pierwsze oględziny. Ruch niewielki. Googlebot nie szaleje. Żadnych kampanii, żadnych niespodziewanych pików. Wchodzimy więc niżej, w procesy. A tam – kuchnia, do której mało kto zagląda. Zadania cron pracujące jak w fabryce nocnej zmiany, skrypt backupu ciągnący pełną kopię co godzinę, pojedynczy PHP-FPM wiszący w miejscu jakby czekał na zbawienie. Każdy z nich dorzucał trochę do ognia, aż sumarycznie obciążenie wyglądało jak atak.
Drugi trop prowadził przez access logi. Kilka niepozornych adresów, które wchodziły podejrzanie często, udając normalnych użytkowników. Klasyka: boty eksplorujące panel logowania, sprawdzające stare URL-e, uderzające w admin-ajax.php. Nic widowiskowego, ale wystarczająco, żeby stale utrzymywać PHP w pracy i nabić licznik CPU, nawet jeśli człowiek nie widzi na stronie żywej duszy.
Trzeci ślad okazał się najbardziej niewdzięczny: limity. Hosting działał na środowisku, gdzie klient miał przydział „własnego” CPU. Panel pokazywał 100 procent nie dlatego, że fizyczny procesor płonął, tylko dlatego, że konto osiągnęło limit zasobów. System nie rozróżnia, czy to bot, cron, backup czy zawieszona wtyczka – zużycie to zużycie. A po osiągnięciu limitu wszystko wygląda jak czerwony alarm.
Po porządkach – ograniczeniu zadań cron, uporządkowaniu backupów, zablokowaniu nadgorliwych botów i złapaniu procesu, który zgubił drogę – wykres CPU wrócił do normalności. Nie było fajerwerków, ale było cicho. To dobry znak.
Wniosek
Wysokie zużycie CPU bez ruchu nie jest błędem panelu ani „pewnie hosting coś robi”. Zazwyczaj to efekt cichej pracy procesów, botów lub limitów, które działają niezależnie od tego, ile osób faktycznie ogląda stronę. Jeśli wykres stoi na 100 procent, traktuj to jak sygnał, że w tle toczy się pełnoprawna akcja. Logi, procesy i cron powiedzą ci więcej niż dashboard. W tej zbrodni sprawca rzadko stoi na froncie – częściej siedzi głęboko w systemie, pracując po godzinach.