Как да разрешите проблеми с прекомерната употреба на ресурси

Всички уеб хостинг акаунти имат ограничения на ресурсите, наложени от CloudLinux LVE (лек виртуален среда), технология на ниво ядро, вградена в сървъра. Ограниченията гарантират, че всички уебсайтове получават справедлив и равен достъп до своя дял от ресурсите. 

Тези ресурси включват процесор (CPU), физическа памет, входящи процеси и брой активни процеси. Можете да намерите допустимите стойности за тези ресурси, както и техните меки и твърди burst стойности в нашата Политика за допустима употреба

Когато акаунтът ви постоянно достига тези лимити, това се нарича прекомерна употреба на ресурси. Това може да доведе до по-бавна работа на сайта, съобщения за грешки или изтичане на времето за отговор на сайтовете, хоствани във вашия акаунт. 

ЗАБЕЛЕЖКА: Ако един домейн във вашия хостинг акаунт надвиши лимита на ресурсите, всички останали домейни, хоствани под същия акаунт, също ще бъдат засегнати, тъй като споделят един и същ ресурсен пул.

Тази статия ще ви помогне да идентифицирате и отстраните прекомерната употреба на ресурси.

Проверка на текущото използване на ресурсите 

За да проверите използването на ресурсите на вашия хостинг акаунт в cPanel, погледнете секцията Статистика, показана вдясно:

ЗАБЕЛЕЖКА: Ще получавате и известия за лимитите на ресурсите на хостинг акаунта във вашия Spaceship акаунт. За по-пълна информация, моля, вижте менюто "Използване на хостинг" във вашия cPanel акаунт.

А нарушенията на нашата Политика за допустима употреба ще бъдат изброени в менюто „Мениджър на хостинг“ > кликнете „Управление“ до съответния хостинг пакет > секцията Използване на хостинг > подраздела Дневник на отчетите.  

Нека разгледаме основните ресурсни метрики и как те влияят на производителността на вашия сайт:

Използване на процесор (CPU)

Използването на процесор (CPU) показва колко от предоставената процесорна мощност се използва във всеки един момент. Показва се като процент от общия капацитет на вашия хостинг акаунт.

Ако използването на процесора достигне 100%, акаунтът ви използва всички предоставени ресурси. В резултат на това всички нови процеси ще бъдат забавени (поставени в изчакване), докато текущите приключат. Това може да доведе до забележимо забавяне, а в екстремни случаи сайтът ви може да изтече времето за отговор.

Използване на виртуална памет

Това се отнася до количеството памет, което процесите могат да заявят във вашата LVE (лек виртуален среда).

Когато процес се опита да задели памет, CloudLinux проверява дали общото използване на виртуалната памет остава в зададения лимит. Ако лимитът бъде надвишен, новото разпределение на паметта се блокира, което обикновено води до неуспех на процеса.

Използване на физическа памет (RAM)

Физическата памет представлява реалната RAM, предоставена на вашия акаунт. За разлика от виртуалната памет (която често използва дисково пространство като swap файлове), физическата памет обработва активните задачи в реално време. 

Например, публикуването на голям пост може временно да изразходва цялата налична физическа памет. Това може да причини краткотрайно забавяне, но обикновено използването се връща към нормалното след приключване на задачата.

Ако използването на физическата памет достигне лимита, може да срещнете PHP грешки на вашия уебсайт. В редки случаи може да се появи страница с грешка от CloudLinux. Тези проблеми обикновено са краткотрайни и се разрешават автоматично, когато използването спадне под прага.

Входящи процеси

Входящите процеси представляват броя на едновременните процеси, които влизат във вашия акаунт. Всеки PHP или CGI скрипт, стартиран от потребител, инициира входящ процес. Често се бърка с "броя на позволените посетители", но процесите обикновено се изпълняват и приключват толкова бързо, че дори с много потребители е малко вероятно да достигнете лимита - освен ако сайтът ви не получи внезапен скок на трафика.

Брой процеси

Тази метрика включва всички процеси, генерирани от вашия акаунт, не само PHP, SSH или cron задачи. Това е по-широк лимит, който отразява цялостната активност.

Дори при голямо натоварване този брой обикновено остава нисък, тъй като повечето не-PHP процеси са кратки и приключват бързо.

Използване на I/O (вход/изход)

Използването на I/O измерва колко дискова активност генерира вашият акаунт. Всяка операция, включваща четене или запис на данни – като архивиране или качване на файлове – се брои към този лимит.

За да се гарантира справедлива производителност за всички потребители, всеки акаунт има ограничена скорост на диска. Ако достигнете този лимит, процесите ви ще продължат да работят, но по-бавно.

В повечето случаи няма да забележите използването на I/O, освен ако не извършвате задачи, изискващи много дискови операции, като например създаване на голям архив на сайта.


Определяне на активните процеси, работещи по акаунта

Ако вашият хостинг акаунт достигне определени лимити на ресурсите, първата стъпка е да идентифицирате кои процеси допринасят за прекомерната употреба.

Чрез SSH

Ако проблемът продължава повече от няколко минути, можете да прегледате активните процеси, работещи във вашия акаунт по време на пика, чрез SSH:

  1. Уверете се, че SSH е активиран за вашия хостинг акаунт, като проверите статуса на връзката в менюто „Управление на shell“ в cPanel. Ако SSH е деактивиран, следвайте стъпките в тази статия за да го активирате.

  2. Отидете в менюто Терминал във вашия cPanel и изпълнете една от следните команди, за да идентифицирате активните процеси във вашия акаунт:

    - ps faux
    - top -c

    След това ще видите списък с процеси, които използват най-много ресурси на вашия хостинг акаунт (CPU, виртуална памет и др.). Ще се покажат и броят на задачите, както и техните статуси (дали са активни, в изчакване или спрени) в изхода на командата.

    Бихме искали да ви покажем как изглежда изходът на командата „top -c“ и да предоставим инструкции как да го разчетете правилно:


    Ето кратко ръководство как да четете този тип изход:

    1. Първият ред - посочва текущото време, времето от последното стартиране, сесията на влезлия потребител и средното натоварване на системата (за последната минута, 5 и 15 минути).

    2. Вторият ред - изброява всички процеси в хостинг акаунта: работещи, в изчакване, спрени и зомби (тези, които са прекратени, но не са премахнати правилно).

    3. Третият ред - дава информация как се използва процесорът в %, където:

      • us = потребителски процеси

      • sy = системни процеси

      • ni = приоритетно повишаване nice

      • wa = време в изчакване за завършване на I/O

      • hi = хардуерни прекъсвания

      • si = софтуерни прекъсвания

      • st = време, отнето от виртуалната машина от задачата на хипервайзора

    4. Четвърти и пети ред - показват използването на памет (RAM): общо, използвано, свободно и буфери.

    5. Следващите редове предоставят подробности за текущите процеси:

      • PID - идентификатор на процеса

      • USER - cPanel потребител, който е собственик на процеса

      • PR - приоритет на процеса

      • NI - nice стойност на процеса

      • VIRT - виртуална памет, използвана от процеса

      • RES - физическа памет, използвана от процеса

      • SHR - споделена памет, използвана от процеса

      • S - статус на процеса (S - в изчакване, D - непрекъсваемо изчакване, R - работещ, T - спрян, Z - зомби)

      • %CPU - процент от процесора, използван от този процес

      • %MEM - процент от физическата памет, използвана от този процес

      • TIME+ - общо време на процесора, използвано от процеса

      • COMMAND - името на процеса


  3. Преди да прекратите процеси при подозрение за хак, прегледайте съществуващите cron задачи в менюто Cron задачи на вашия cPanel акаунт. Ако намерите подозрителни записи или cron задачи, за които не сте сигурни, най-добре е да ги премахнете, за да предотвратите изпълнението на потенциално опасни скриптове.

    След като идентифицирате конкретен процес, който причинява проблеми, можете да го прекратите чрез kill -9 PID SSH команда в менюто „Терминал“, където PID е идентификаторът на процеса от предишната стъпка.

    За да прекратите всички процеси, освен основните системни, можете да използвате следната команда:

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

  4. След това идентифицирайте кои MySQL процеси работят в момента.

    Можете да проверите всички MySQL процеси за вашия cPanel акаунт (1) или да ги проверите по MySQL потребител (2).

    За целта отворете Терминала във вашия cPanel и изпълнете една от следните команди:

    За да проверите MySQL процесите за целия хостинг акаунт:
    mysql -u $CPANEL_USER -p -e "SHOW PROCESSLIST;"

    За да проверите MySQL процесите за MySQL потребител:
    mysql -u $MYSQL_USER -p -e "SHOW PROCESSLIST;"

    Не забравяйте да замените “CPANEL_USER” с вашето потребителско име за cPanel, за да проверите процесите за хостинг акаунта (1), и “$MYSQL_USER” със съответното потребителско име за MySQL базата данни, за да ги проверите за всеки отделен MySQL потребител (2).

    След това въведете паролата за cPanel акаунта (1) или паролата за конкретния потребител на базата данни (2):


  5. Последната стъпка е прекратяване на MySQL процесите за конкретен потребител на базата данни. Това може да бъде извършено само от нашия екип за поддръжка. Не се колебайте да се свържете с нас и ще се радваме да ви помогнем.

Чрез менюто „Използване на ресурси“ 

Ако проблемът трае само няколко секунди, може да е трудно да се идентифицират процесите, които го причиняват, тъй като данните не се записват за толкова кратки периоди. 

Но винаги можете да проверите менюто Използване на ресурси в cPanel, за да видите исторически тенденции. Това може да ви помогне да идентифицирате модели или да определите кои ресурси се доближават до лимитите си:


Съобщение за често достигнатите ресурси ще се покаже веднага след отваряне на менюто > под секцията „Табло“ с препратка към точните лимити: 

В секцията Текущо използване на менюто използвайте падащото меню Период , за да изберете период и да проверите как са били използвани ресурсите на акаунта през това време:


След като изберете, ще видите диаграми и таблици с подробна статистика:



Ето кратко ръководство за стойностите, изброени в таблицата по-горе:

  • CPU – лимит на процесора

  • vMEM/vM – лимити на виртуалната памет

  • pMEM/pM – лимити на физическата памет

  • EP – входящи процеси

  • nPROC/nP – брой процеси

  • IO – лимити на вход/изход

  • A – средно използвано

  • L – лимит, зададен за акаунта

  • F – неуспех

Потенциални проблеми при прекратяване на активни процеси в cPanel

Спирането на активни процеси в cPanel може да помогне за решаване на проблеми с производителността, но бъдете внимателни – това може да създаде нови проблеми. По-долу са изброени някои ключови аспекти, които трябва да имате предвид:

  • Интегритет на данните: Принудителното прекратяване на процес може да компрометира целостта на данните. Особено ако този процес включва запис или актуализация на данни в акаунта. Най-добре е да проверите дали процесът не е свързан с критични операции с бази данни, преди да го прекратите.

  • Недовършени транзакции: Спирането на процес по време на операция може да остави транзакциите незавършени и да причини проблеми със състоянието на базата данни. В екстремни случаи това може да доведе до повреда или загуба на данни.

  • Прекъсване на услугата: Някои процеси, като тези, свързани с MySQL, са изключително важни за основните услуги. Прекратяването им може да причини временни прекъсвания на услугите и да повлияе на функционалността на вашия уебсайт.

  • Незаписани промени: Ако процес, управляващ конфигурации или настройки, бъде прекратен преди записване на промените, това може да повлияе на работата на функциите или приложенията.

  • Разпределение на ресурсите: Докато прекратяването на процеси може да освободи системни ресурси, това не решава основните причини за високото използване. За да се предотврати повторение на проблема, е необходим по-задълбочен анализ.

  • Стабилност на приложенията: Прекъсването на процеси, свързани с уеб приложения, може да ги направи нестабилни. Важно е да разберете как работят процесите, преди да предприемете действия.

  • Логване и мониторинг: Някои процеси участват в логване или системен мониторинг. Прекратяването им може да прекъсне тези функции, затова се уверете, че критичните логове и инструменти за мониторинг остават активни.

    В критични ситуации (например при прекомерна употреба на ресурси или подозирана злонамерена дейност), прекратяването на процеси може да е необходимо въпреки рисковете. Но винаги преценявайте потенциалното въздействие, преди да действате.

Най-добри практики за намаляване на риска при прекратяване на процеси

  • Архивирайте вашите данни: Винаги създавайте архивно копие, преди да правите големи промени, особено когато работите с бази данни.

  • Използвайте контролирано изключване, когато е възможно: Опитайте се да изключвате процесите постепенно, за да намалите риска от загуба или повреда на данни.

  • Деактивирайте злонамерени компоненти: Ако подозирате, че определена част от вашия уебсайт (например плъгин или тема) генерира злонамерени процеси, деактивирайте я незабавно, за да предотвратите допълнителни щети. Ако не сте сигурни, проверете всяка подозрителна активност със специалист.

  • Използвайте режим на поддръжка: Временното поставяне на сайта ви в режим на поддръжка може да помогне да се определи дали определени процеси се създават автоматично.

  • Наблюдавайте внимателно: След прекратяване на процеси внимателно наблюдавайте поведението на системата и бъдете готови да отстраните неочаквани проблеми.

Как да намалите използването на ресурси след идентифициране на проблемния процес

След като сте установили кои процеси карат акаунта ви да достига лимитите на ресурсите, опитайте следните често срещани начини за намаляване на използването:

  • Пикове на трафика: За да видите кога акаунтът ви е имал твърде много активни процеси, отворете менюто Използване на ресурси > Снимки > раздел HTTP заявки:


    Ако видите в изхода, че има много заявки, например към страницата index.php, това може да е причинено от висок трафик към уебсайта (например от посетители или ботове).

    Проверете Awstats и Visitors менютата в cPanel за подробна аналитика на посетителите, за да откриете точната причина. Внезапното увеличение на трафика може да е причината за по-високото използване на ресурси. Ако броят на посетителите ви постоянно расте и все още изпитвате ограничения, може би е време да прегледате и надградите текущия си хостинг план.

    Секцията Статистика в менюто Awstats може да ви помогне да идентифицирате източника на високото CPU натоварване. Можете да го намерите, като натиснете бутона „Преглед“ срещу името на домейна:


    ЗАБЕЛЕЖКА: Имайте предвид, че данните в менюто Awstats не се обновяват в реално време и са налични само месечни статистики. Уверете се, че проверявате кога е обновена статистиката, за да сте сигурни, че информацията е свързана с вашия случай. Ще намерите тази информация на реда „Последна актуализация“.

    След като влезете, ще видите подробна статистика за това колко трафик използват конкретни елементи на уебсайта, включително:

    • Неизвестни ботове:  Ако такъв трафик не се очаква, ботовете могат да бъдат блокирани чрез robots.txt файла, ограничени по честота (например за Googlebot), или напълно блокирани чрез .htaccess файла и User-Agent стринга.

      ЗАБЕЛЕЖКА:  Тези промени могат да повлияят на SEO на уебсайта. Ако не сте сигурни дали да продължите, по-добре се консултирайте със SEO специалист.

    • Изображения: Ако има много заявки към едно изображение, това може да означава DDoS или self-DoS атака към това изображение.

    • Страници:  Страница на уебсайт или продукт, поставен на нея, също може да бъде засегнат от DDoS атака.

    • файлове.

    • Изтеглени файлове и др.

  • Скорошни промени по уебсайта: Ако за първи път срещате проблеми с използването на ресурси, прегледайте всички скорошни актуализации или промени по вашия уебсайт. Те може да допринасят за увеличеното натоварване.

  • Нови плъгини или теми: Ако наскоро сте инсталирали нов плъгин или тема, опитайте да го деактивирате и наблюдавайте производителността на сайта си поне 10 минути.

    Също така можете да намерите бавно зареждащи се плъгини в GTmetrix отчета > раздел Waterfall.

    ЗАБЕЛЕЖКА: Промените може да не влязат в сила веднага. Препоръчваме да наблюдавате поведението на уебсайта си до един час за по-точни резултати.

  • Оптимизация на уебсайта: Оптимизирайте производителността на уебсайта си с инструменти като Google PageSpeed Insights.

    Освен това следните плъгини ще ви помогнат да наблюдавате използването на ресурси и цялостната производителност на уебсайта – което е изключително полезно при откриване на вътрешни тесни места:

Ако все още срещате проблеми с ресурсите, моля, свържете се с нашия Екип за поддръжка чрез Live Chat или имейл. Тук сме, за да ви помогнем да идентифицирате и разрешите всички проблеми.

Изисква се валиден имейл