Как да откриете акаунтите, които натоварват сървъра: история на използването, CPU профили и планове според данните

Административният интерфейс на SPanel (Admin Interface) има четири инструмента, с които да откриете акаунтите, които натоварват сървъра. Списъкът с акаунти показва квотата, заетия диск и inodes на всеки акаунт спрямо плана му. Седмичната история (Usage History) показва CPU на всеки акаунт спрямо собствения му лимит и колко пъти го е достигал. Историята на CPU потреблението за отделен акаунт показва натоварването му по дати, а мониторът на процесите показва текущите процеси и позволява да ги спирате. Заедно те превръщат месечната проверка в рутина от 5 минути. Всички са включени във всеки управляван VPS план на NS1.

Когато клиент ви пише, че „сайтът е бавен“

„Сайтът напоследък е бавен“ е изречението, с което най-трудно се работи в хостинга. Без данни разговорът се върти в кръг: може би е плъгин, може би планът е малък, а може би е бил просто един лош момент. Всеки гадае, някой все пак минава на по-голям план и никой не научава нищо ново.

Данните вече са налични, защото SPanel ги записва през цялото време. Седмичната история (Usage History) показва кои акаунти са опирали до тавана си за CPU и колко често. Историята на CPU за отделен акаунт показва натоварването му по дати, така че „напоследък“ се превръща в конкретна дата и час. Плъгин за бекъпи, който всеки следобед натоварва акаунта до тавана му, се вижда ясно на графиката, а откриването му отнема по-малко от 5 минути.

Това е месечният преглед на ресурсите: кратко минаване през четири екрана в Admin Interface, което показва кои акаунти натоварват сървъра, колко и какво да направите. Лимитите държат всеки акаунт в неговите граници, а честите проверки ви помагат да следите тези граници. Така определяте плановете по данни, а не на око, и откривате акаунта, който постепенно е надраснал плана си, преди това да се отрази на останалите акаунти на сървъра.

Четири инструмента, четири въпроса

Всеки екран отговаря на един въпрос. Минете през тях в този ред.

Инструмент в SPanelНа какъв въпрос отговаряКакво правите с него
Списък с акаунтиКой е близо до лимита си в момента?Сравнявате квотата, диска и броя inodes с плана на всеки акаунт
Седмична история (Usage History)Кой е натоварвал сървъра през последната седмица?Сравнявате използвания CPU с лимита на всеки акаунт и проверявате CPU Limit Hits
История на CPU за отделен акаунтКога точно е бил натоварен акаунтът?Виждате натоварването на всеки акаунт по дати на графика
Монитор на процеситеКакво работи на сървъра в момента?Проверявате или спирате отделен процес

SPanel следи CPU и паметта на всеки акаунт през целия ден и ги записва по дати, така че историята е налична, когато ви потрябва.

Как да откриете акаунтите, които натоварват сървъра: стъпка по стъпка

Стъпка 1. Прегледайте списъка с акаунти. Отворете Accounts Management → Manage Accounts. Колоните показват Quota, Disk Usage и Inodes за всеки акаунт, заедно с пакета, собственика и статуса му. Сортирайте по Disk Usage и акаунтите, които са най-близо до лимита си, ще излязат най-отгоре.

Как да откриете акаунтите, които натоварват сървъра: история на използването, CPU профили и планове според данните, Как да откриете акаунтите, които натоварват сървъра: стъпка по стъпка

Стъпка 2. Прегледайте седмичната история. Отворете Resource Usage → Usage History и вижте таблицата Weekly Usage By Users. За избраната седмица тя показва използвания CPU на всеки акаунт спрямо собствения му лимит, колко пъти акаунтът е достигнал лимита (колоната CPU Limit Hits) и същите две стойности за RAM. Обърнете внимание на акаунтите, които се доближават до лимитите си.

Как да откриете акаунтите, които натоварват сървъра: история на използването, CPU профили и планове според данните, Как да откриете акаунтите, които натоварват сървъра: стъпка по стъпка 2

Стъпка 3. Отворете историята на CPU потреблението за акаунт, който е привлякъл вниманието ви. Кликнете View на реда на най-натоварения акаунт, за да видите как е използвал сървърния процесор. Графиката показва CPU (и RAM) потреблението на акаунта по дати за избрания период, а лимитът му е отбелязан с пунктирна линия. Равна и ниска линия означава, че акаунтът е в добро състояние. Ако линията всеки следобед стига почти до лимита, има конкретна причина: cron задача, бот, който обхожда сайта, или плъгин, който натоварва твърде много.

Как да откриете акаунтите, които натоварват сървъра: история на използването, CPU профили и планове според данните, Как да откриете акаунтите, които натоварват сървъра: стъпка по стъпка 3

Стъпка 4. Вижте какво работи в момента. Отворете Resource Usage → Currently Running Users Processes. Това е списъкът с всички текущи процеси на сървъра в Admin Interface. На всеки ред са ID на процеса, акаунтът, на който принадлежи, и колко CPU и RAM използва. Намерете процесите на акаунта, който проверявате. Ако един от тях очевидно е причината и в момента пречи на останалите акаунти, спрете само този процес от панела, без да влизате през SSH.

Как да откриете акаунтите, които натоварват сървъра: история на използването, CPU профили и планове според данните, Как да откриете акаунтите, които натоварват сървъра: стъпка по стъпка 4

Искате ли да направите този преглед за своите акаунти? Всичко описано дотук е част от SPanel и е включено във всички управлявани VPS планове на NS1.

Стъпка 5. Действайте според данните. Вече имате информация, която може да служи като база за по-нататъшни действия. Ако акаунтът е надраснал плана си, изберете го и използвайте Mass Actions → Change Package, за да му увеличите наличните ресурси. Всички лимити се прилагат веднага, без миграция. Ако клиентът не се вписва в нито един от пакетите, задайте индивидуални стойности през Actions → Change Limits с включена опция Use Custom Limits. Ако причината е плъгин, който натоварва сървъра, кажете на клиента, че е нужна оптимизация на сайта.

Как да откриете акаунтите, които натоварват сървъра: история на използването, CPU профили и планове според данните, Как да откриете акаунтите, които натоварват сървъра: стъпка по стъпка 5

Как да четете стойностите за CPU

Има една стойност, която може да обърка потребителите. Ето кратко обяснение: CPU лимит от 100 означава едно цяло ядро, 50 е половин ядро, а 200 са две ядра. Това е дял от ядро, а не от целия сървър, затова сравнявайте историята на CPU потреблението с лимита на самия акаунт.

Важно е да знаете и какво прави лимитът. Когато акаунт достигне лимита си за CPU, SPanel ограничава процесите му, но не ги спира. Сайтът се забавя заради собственото си натоварване, а всички останали акаунти работят с пълна производителност. Ограниченият акаунт не е повреден. Той просто е достигнал максимума на плана, за който плаща. Точно този сигнал е даден от SPanel, а ограничението предпазва сървъра от проблема с шумните съседи (noisy neighbor).

Определяйте лимитите по данни и ги защитавайте с данни. Историята вече е записана. Остава само да я прочетете.

Как прегледът се превръща в реални действия

Когато правите прегледа всеки месец, ще започнете да виждате определени закономерности. Ако едни и същи три акаунта използват най-много ресурси всяка седмица, може би е редно да помислят за по-голям план. Сайт, който е натоварен само между 01:00 и 02:00 ч., има проблем с cron задача, а не с капацитета. След няколко месеца прегледите стават основа за начина, по който разпределяте наличните ресурси.

Често задавани въпроси

В: Как да разбера кои акаунти използват най-много CPU на сървъра?

О: Отворете Resource Usage → Usage History и вижте таблицата Weekly Usage By Users. Тя показва CPU на всеки акаунт спрямо собствения му лимит и броя CPU Limit Hits за избраната седмица. Кликнете View на даден акаунт, за да видите историята на CPU потреблението по дати.

В: Какво означава стойност 100 за CPU?

О: Едно цяло ядро. 50 означава половин ядро, а 200 са две ядра. Това е дял от ядро, а не процент от целия сървър.

В: Какво се случва с акаунт, който постоянно достига лимита си за CPU?

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

В: Мога ли да спра процес, който натоварва сървъра, без да влизам през SSH?

О: Да. Панелът Currently Running Users Processes в Admin Interface показва всички текущи процеси на сървъра и позволява да спрете отделен процес директно от панела.

В: Нужен ли ми е CloudLinux, за да виждам тези данни?

О: Не. Списъкът с акаунти, Usage History, историята на CPU и мониторът на процесите са част от SPanel и са включени във всеки управляван VPS план на NS1. Лимитите за отделните акаунти в SPanel работят с контролните групи (cgroups) на ядрото на Linux.

В: Акаунт е надраснал плана си. Кое е най-лесното решение?

О: Задайте му по-голям пакет от Actions → Change Limits. Всички лимити се прилагат веднага, без миграция и без прекъсване на работата. Ако клиентът не се вписва в нито един от пакетите, задайте индивидуални стойности през опцията Use Custom Limits.

Вижте как работи на реален сървър

Инструментите за следене на потреблението на ресурси в SPanel са създадени отчасти по заявки в Cloud Democracy (на английски), публичната платформа за предложения за нови функции на SPanel. Ако искате нова функционалност, можете да я предложите там. API-то зад тези екрани е описано в документацията на SPanel (на английски), а механизмът на ядрото, на който се основават лимитите, в документацията за cgroups v2 (на английски).

Борислав Тонев

Автор

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

Напишете коментар

Задължително поле*