Jak rozwiązać problemy z nadmiernym wykorzystaniem zasobów

Wszystkie konta hostingowe mają limity zasobów egzekwowane przez CloudLinux LVE (Lightweight Virtual Environment), technologię na poziomie jądra wbudowaną w serwer. Limity te zapewniają, że wszystkie strony internetowe mają sprawiedliwy i równy dostęp do przydzielonej im części zasobów. 

Do tych zasobów należą CPU, pamięć fizyczna, procesy wejściowe oraz liczba aktywnych procesów. Akceptowalne wartości tych zasobów, a także ich wartości miękkie i twarde, znajdziesz w naszej Polityce Akceptowalnego Użytkowania. 

Gdy Twoje konto regularnie osiąga te limity, nazywamy to nadmiernym wykorzystaniem zasobów. Może to prowadzić do wolniejszego działania strony, komunikatów o błędach lub przekroczenia czasu na stronach hostowanych na Twoim koncie. 

UWAGA: Jeśli jedna domena na Twoim koncie hostingowym przekroczy limit zasobów, wszystkie inne domeny hostowane na tym samym koncie również zostaną dotknięte, ponieważ korzystają ze wspólnej puli zasobów.

Ten artykuł pomoże Ci zidentyfikować i naprawić nadmierne wykorzystanie zasobów.

Sprawdzanie bieżącego wykorzystania zasobów 

Aby sprawdzić wykorzystanie zasobów konta hostingowego w cPanelu, spójrz na sekcję Statystyki wyświetlaną po prawej stronie:

UWAGA: Otrzymasz również powiadomienia o limitach zasobów konta hostingowego w swoim koncie Spaceship. Aby uzyskać pełniejsze informacje, przejdź do menu "Hosting Usage" w swoim koncie cPanel.

Naruszenia naszej Polityki Akceptowalnego Użytkowania będą widoczne w menu „Hosting Manager” > kliknij „Zarządzaj” obok odpowiedniego pakietu hostingowego > sekcja Wykorzystanie hostingu > podsekcja Dziennik raportów.  

Przeanalizujmy kluczowe metryki zasobów i to, jak wpływają one na wydajność Twojej strony:

Użycie CPU

Użycie CPU pokazuje, ile przydzielonej mocy procesora jest wykorzystywane w danym momencie. Jest ono wyrażone jako procent całkowitej pojemności Twojego konta hostingowego.

Jeśli użycie CPU osiągnie 100%, Twoje konto zużywa wszystkie przydzielone zasoby. W rezultacie nowe procesy będą opóźnione (uśpione), dopóki istniejące się nie zakończą. Może to powodować zauważalne spowolnienia, a w skrajnych przypadkach Twoja strona może przestać odpowiadać.

Użycie pamięci wirtualnej

Odnosi się to do ilości pamięci, o którą procesy mogą się ubiegać w ramach LVE (Lightweight Virtual Environment).

Gdy proces próbuje przydzielić pamięć, CloudLinux sprawdza, czy całkowite użycie pamięci wirtualnej mieści się w ustalonym limicie. Jeśli limit zostanie przekroczony, nowa alokacja pamięci jest blokowana, co zwykle powoduje niepowodzenie procesu.

Użycie pamięci fizycznej (RAM)

Pamięć fizyczna to rzeczywista pamięć RAM przydzielona Twojemu kontu. W przeciwieństwie do pamięci wirtualnej (która często korzysta z dysku, np. plików wymiany), pamięć fizyczna obsługuje aktywne zadania w czasie rzeczywistym. 

Na przykład opublikowanie dużego wpisu może tymczasowo zużyć całą dostępną pamięć fizyczną. Może to powodować krótkotrwałe spowolnienia, ale zwykle po zakończeniu zadania zużycie wraca do normy.

Jeśli użycie pamięci fizycznej osiągnie limit, możesz napotkać błędy PHP na swojej stronie. W rzadkich przypadkach może pojawić się strona błędu CloudLinux. Problemy te są zazwyczaj krótkotrwałe i rozwiązują się automatycznie, gdy zużycie spadnie poniżej progu.

Procesy wejściowe

Procesy wejściowe to liczba jednoczesnych procesów wchodzących na Twoje konto. Każdy skrypt PHP lub CGI uruchamiany przez użytkownika inicjuje proces wejściowy. Często mylone jest to z "liczbą dozwolonych odwiedzających", jednak procesy te zwykle uruchamiają się i kończą tak szybko, że nawet przy wielu użytkownikach rzadko osiągniesz limit – chyba że Twoja strona odnotuje nagły wzrost ruchu.

Liczba procesów

Ten wskaźnik obejmuje wszystkie procesy generowane przez Twoje konto, nie tylko PHP, SSH czy zadania cron. To szerszy limit odzwierciedlający całkowitą aktywność.

Nawet przy dużym obciążeniu liczba ta zwykle pozostaje niska, ponieważ większość procesów niebędących PHP jest krótka i szybko się kończy.

Użycie I/O (Wejście/Wyjście)

Użycie I/O mierzy, ile aktywności dyskowej generuje Twoje konto. Każda operacja związana z odczytem lub zapisem danych – np. kopie zapasowe czy przesyłanie plików – wlicza się do tego limitu.

Aby zapewnić sprawiedliwą wydajność wszystkim użytkownikom, każde konto ma ograniczoną prędkość dysku. Po osiągnięciu tego limitu procesy nadal będą działać, ale wolniej.

W większości przypadków nie zauważysz użycia I/O, chyba że wykonujesz zadania intensywnie korzystające z dysku, takie jak generowanie dużej kopii zapasowej strony.


Definiowanie aktywnych procesów działających na koncie

Jeśli Twoje konto hostingowe osiągnie określone limity zasobów, pierwszym krokiem jest zidentyfikowanie, które procesy przyczyniają się do nadmiernego użycia.

Przez SSH

Jeśli problem utrzymuje się przez więcej niż kilka minut, możesz sprawdzić aktywne procesy działające na Twoim koncie w momencie wzrostu obciążenia za pomocą SSH:

  1. Upewnij się, że SSH jest włączone dla Twojego konta hostingowego, sprawdzając status połączenia w menu „Zarządzaj powłoką” w cPanelu. Jeśli SSH jest wyłączone, postępuj zgodnie z instrukcjami w tym artykule , aby je aktywować.

  2. Przejdź do menu Terminal w swoim cPanelu i uruchom jedno z poniższych poleceń, aby zidentyfikować aktywne procesy na swoim koncie:

    - ps faux
    - top -c

    Następnie zobaczysz listę procesów wykorzystujących najwięcej zasobów Twojego konta hostingowego (CPU, pamięć wirtualna itd.). Liczba zadań oraz ich statusy (czy są aktywne, uśpione czy zatrzymane) również zostaną wyświetlone w wyniku polecenia.

    Chcielibyśmy pokazać Ci, jak wygląda wynik polecenia „top -c” i przekazać instrukcje, jak go poprawnie zinterpretować:


    Oto prosty przewodnik, jak czytać tego typu wyniki:

    1. Pierwsza linia - określa aktualny czas, czas od ostatniego uruchomienia, sesję zalogowanego użytkownika oraz średnie obciążenie systemu (z ostatniej minuty, 5 i 15 minut).

    2. Druga linia - wymienia wszystkie procesy w ramach konta hostingowego: działające, uśpione, zatrzymane i zombie (te, które zostały zakończone, ale nie zostały prawidłowo usunięte).

    3. Trzecia linia - zawiera informacje o wykorzystaniu CPU w %, gdzie:

      • us = procesy użytkownika

      • sy = procesy systemowe

      • ni = podniesienie priorytetu nice

      • wa = czas oczekiwania na zakończenie operacji I/O

      • hi = przerwania sprzętowe

      • si = przerwania programowe

      • st = czas odebrany maszynie wirtualnej przez zadanie hipernadzorcy

    4. Czwarta i piąta linia - wskazują użycie pamięci (RAM): całkowite, używane, wolne i bufory.

    5. Kolejne wiersze zawierają szczegóły dotyczące bieżących procesów:

      • PID - identyfikator procesu

      • USER - użytkownik cPanel będący właścicielem procesu

      • PR - priorytet procesu

      • NI - wartość nice procesu

      • VIRT - pamięć wirtualna używana przez proces

      • RES - pamięć fizyczna używana przez proces

      • SHR - pamięć współdzielona używana przez proces

      • S - status procesu (S - uśpiony, D - nieprzerywalny sen, R - działający, T - zatrzymany, Z - zombie)

      • %CPU - procent CPU używany przez ten proces

      • %MEM - procent pamięci fizycznej używany przez ten proces

      • TIME+ - całkowity czas CPU użyty przez proces

      • COMMAND - nazwa procesu


  3. Przed zakończeniem jakichkolwiek procesów podczas podejrzenia włamania, przejrzyj istniejące zadania cron w menu Zadania cron na swoim koncie cPanel. Jeśli znajdziesz podejrzane wpisy lub zadania cron, których nie jesteś pewien, najlepiej je usunąć, aby zapobiec uruchamianiu potencjalnie niebezpiecznych skryptów.

    Po zidentyfikowaniu konkretnego procesu powodującego problemy możesz go zakończyć, uruchamiając polecenie kill -9 PID SSH w menu „Terminal”, gdzie PID to identyfikator procesu z poprzedniego kroku.

    Aby zakończyć wszystkie procesy oprócz niezbędnych systemowych, możesz użyć następującego polecenia:

    ps aux | grep -v 'bin/bash' | awk '{ print $2 }' | grep -v PID | xargs kill -9

  4. Następnie zidentyfikuj, które procesy MySQL są obecnie uruchomione.

    Możesz sprawdzić wszystkie procesy MySQL dla swojego konta cPanel (1) lub sprawdzić je według użytkownika MySQL (2).

    Aby to zrobić, otwórz Terminal w swoim cPanelu i uruchom jedno z poniższych poleceń:

    Aby sprawdzić procesy MySQL dla całego konta hostingowego:
    mysql -u $CPANEL_USER -p -e "SHOW PROCESSLIST;"

    Aby sprawdzić procesy MySQL dla użytkownika MySQL:
    mysql -u $MYSQL_USER -p -e "SHOW PROCESSLIST;"

    Pamiętaj, aby zastąpić „CPANEL_USER” swoją nazwą użytkownika cPanel, aby sprawdzić procesy dla konta hostingowego (1) oraz „$MYSQL_USER” konkretną nazwą użytkownika bazy danych MySQL, aby sprawdzić je dla każdego użytkownika MySQL osobno (2).

    Następnie wprowadź hasło do konta cPanel (1) lub hasło do konkretnego użytkownika bazy danych (2):


  5. Ostatnim krokiem jest zakończenie procesów MySQL dla konkretnego użytkownika bazy danych. Może to wykonać tylko nasz zespół wsparcia. Skontaktuj się z nami, a chętnie Ci pomożemy.

Przez menu „Wykorzystanie zasobów” 

Jeśli problem trwa tylko kilka sekund, może być trudno zidentyfikować procesy, które go powodują, ponieważ dane nie są rejestrowane przez tak krótki czas. 

Możesz jednak zawsze sprawdzić menu Wykorzystanie zasobów w cPanelu, aby przejrzeć trendy historyczne. Może to pomóc zidentyfikować wzorce lub określić, które zasoby zbliżają się do swoich limitów:


Komunikat o często przekraczanych zasobach zostanie wyświetlony zaraz po otwarciu menu > w sekcji „Dashboard” z odniesieniem do konkretnych limitów: 

W sekcji Bieżące użycie menu użyj rozwijanego Przedziału czasu , aby wybrać okres i sprawdzić, jak zasoby konta były wykorzystywane w tym czasie:


Po wybraniu zobaczysz wykresy i tabele pokazujące szczegółowe statystyki:



Oto prosty przewodnik po wartościach wymienionych w powyższej tabeli:

  • CPU – limit CPU

  • vMEM/vM – limity pamięci wirtualnej

  • pMEM/pM – limity pamięci fizycznej

  • EP – procesy wejściowe

  • nPROC/nP – liczba procesów

  • IO – limity wejścia/wyjścia

  • A – średnie użycie

  • L – limit ustawiony dla konta

  • F – błąd

Potencjalne problemy przy kończeniu aktywnych procesów w cPanelu

Zatrzymanie aktywnych procesów w cPanelu może pomóc rozwiązać problemy z wydajnością, ale należy zachować ostrożność – może to spowodować nowe problemy. Poniżej przedstawiamy kluczowe kwestie, o których należy pamiętać:

  • Integralność danych: Wymuszone zakończenie procesu może naruszyć integralność danych. Zwłaszcza jeśli proces ten obejmuje zapis lub aktualizację danych na koncie. Najlepiej upewnić się, że proces nie jest powiązany z krytycznymi operacjami na bazie danych przed jego zakończeniem.

  • Niekompletne transakcje: Zatrzymanie procesu w trakcie operacji może pozostawić transakcje niedokończone i spowodować problemy ze stanem bazy danych. W skrajnych przypadkach może to prowadzić do uszkodzenia lub utraty danych.

  • Przerwanie usług: Niektóre procesy, takie jak te związane z MySQL, są bardzo ważne dla podstawowych usług. Ich zakończenie może spowodować tymczasowe przerwy w działaniu usług i wpłynąć na funkcjonalność Twojej strony.

  • Niezapisane zmiany: Jeśli proces zarządzający konfiguracjami lub ustawieniami zostanie zakończony przed zapisaniem zmian, może to wpłynąć na działanie funkcji lub aplikacji.

  • Przydział zasobów: Choć zakończenie procesów może zwolnić zasoby systemowe, nie rozwiązuje to przyczyny wysokiego użycia. Aby zapobiec powtarzaniu się problemu, konieczna jest głębsza analiza.

  • Stabilność aplikacji: Przerywanie procesów powiązanych z aplikacjami webowymi może je destabilizować. Ważne jest, aby zrozumieć, jak działają procesy przed podjęciem działań.

  • Logowanie i monitorowanie: Niektóre procesy są odpowiedzialne za logowanie lub monitorowanie systemu. Ich zakończenie może przerwać te funkcje, dlatego upewnij się, że kluczowe logi i narzędzia monitorujące pozostają aktywne.

    W sytuacjach krytycznych (np. podczas nadmiernego użycia zasobów lub podejrzanej aktywności) zakończenie procesów może być konieczne mimo ryzyka. Zawsze jednak rozważ potencjalne skutki przed podjęciem działań.

Najlepsze praktyki zmniejszające ryzyko zakończenia procesów

  • Wykonaj kopię zapasową swoich danych: Zawsze twórz kopię zapasową przed wprowadzaniem poważnych zmian, szczególnie podczas pracy z bazami danych.

  • Stosuj kontrolowane wyłączanie, gdy to możliwe: Staraj się wyłączać procesy stopniowo, aby zmniejszyć ryzyko utraty lub uszkodzenia danych.

  • Wyłącz złośliwe komponenty: Jeśli podejrzewasz, że konkretna część Twojej strony (np. wtyczka lub motyw) generuje złośliwe procesy, natychmiast ją wyłącz, aby zapobiec dalszym szkodom. Jeśli nie masz pewności, sprawdź wszelką podejrzaną aktywność ze specjalistą.

  • Użyj trybu konserwacji: Tymczasowe przełączenie strony w tryb konserwacji może pomóc ustalić, czy niektóre procesy są automatycznie odtwarzane.

  • Monitoruj uważnie: Po zakończeniu procesów dokładnie obserwuj zachowanie systemu i bądź gotów rozwiązywać nieoczekiwane problemy.

Jak zmniejszyć zużycie zasobów po zidentyfikowaniu problematycznego procesu

Gdy już ustalisz, które procesy powodują przekroczenie limitów zasobów na Twoim koncie, wypróbuj te popularne sposoby na zmniejszenie zużycia:

  • Nagłe wzrosty ruchu: Aby sprawdzić, kiedy na Twoim koncie było zbyt wiele aktywnych procesów, otwórz menu Zużycie zasobów > Migawki > zakładka Zapytania HTTP:


    Jeśli w wynikach widzisz dużo żądań, np. do strony index.php, może to być spowodowane dużym ruchem na stronie (np. przez odwiedzających lub boty).

    Sprawdź menu Awstats i Visitors w cPanelu, aby uzyskać szczegółowe analizy odwiedzin i znaleźć dokładną przyczynę. Nagły wzrost ruchu może być powodem większego zużycia zasobów. Jeśli liczba odwiedzających stale rośnie i nadal napotykasz ograniczenia, być może nadszedł czas, aby przejrzeć i zaktualizować swój obecny plan hostingowy.

    Sekcja Statystyki w menu Awstats pomoże Ci zidentyfikować źródło wysokiego zużycia CPU. Możesz to znaleźć, klikając przycisk „Wyświetl” naprzeciwko nazwy domeny:


    UWAGA: Pamiętaj, że dane w menu Awstats nie są aktualizowane w czasie rzeczywistym i dostępne są tylko statystyki miesięczne. Sprawdź, kiedy dane statystyczne zostały zaktualizowane, aby mieć pewność, że informacje dotyczą Twojego przypadku. Znajdziesz je w wierszu „Ostatnia aktualizacja”.

    Po wejściu zobaczysz szczegółowe statystyki dotyczące zużycia transferu przez poszczególne elementy strony, w tym:

    • Nieznane boty:  Jeśli taki ruch nie jest oczekiwany, boty można zablokować za pomocą pliku robots.txt, ograniczyć ich częstotliwość (np. dla Googlebot), lub zablokować całkowicie przez plik .htaccess i User-Agent.

      UWAGA:  Te zmiany mogą wpłynąć na SEO strony. Jeśli nie masz pewności, czy chcesz je wprowadzić, lepiej skonsultuj się ze specjalistą SEO.

    • Obrazy: Jeśli jest dużo żądań do jednego obrazu, może to oznaczać atak DDoS lub samodzielny atak DoS na ten obraz.

    • Strony:  Strona internetowa lub umieszczony na niej produkt również mogą być celem ataku DDoS.

    • pliki.

    • Pobrane pliki itd.

  • Ostatnie zmiany na stronie: Jeśli po raz pierwszy napotykasz problemy z wykorzystaniem zasobów, przejrzyj ostatnie aktualizacje lub zmiany wprowadzone na swojej stronie. Mogą one przyczyniać się do zwiększonego obciążenia.

  • Nowe wtyczki lub motywy: Jeśli ostatnio zainstalowałeś nową wtyczkę lub motyw, spróbuj ją wyłączyć i monitoruj wydajność swojej strony przez co najmniej 10 minut.

    Możesz także znaleźć wolno ładujące się wtyczki w raporcie GTmetrix > zakładka Waterfall.

    UWAGA: Zmiany mogą nie być widoczne od razu. Zalecamy monitorowanie zachowania strony przez nawet godzinę, aby uzyskać dokładne wyniki.

  • Optymalizacja strony internetowej: Zoptymalizuj wydajność swojej strony za pomocą narzędzi takich jak Google PageSpeed Insights.

    Dodatkowo poniższe wtyczki pomogą Ci monitorować wykorzystanie zasobów i ogólną wydajność strony – co jest niezwykle pomocne przy lokalizowaniu wewnętrznych wąskich gardeł:

Jeśli nadal napotykasz problemy z zasobami, skontaktuj się z naszym Zespołem Wsparcia przez czat na żywo lub e-mail. Jesteśmy tutaj, aby pomóc Ci zidentyfikować i rozwiązać wszelkie problemy.

Wymagany jest prawidłowy adres e-mail