Февруари 24, 2026

Какво представляват LVE лимитите в CloudLinux OS

 

CloudLinux използва система за контрол на ресурсите, наречена LVE (Lightweight Virtual Environment). Тя е създадена, за да гарантира, че един потребител не може да “счупи” целия сървър, като изразходи всичките му ресурси.

🔒 Какво може да се ограничи?

Лимит Единица По подразбиране Какво ограничава
SPEED % от ядро или в Hz 100% Скоростта на CPU – относително спрямо едно ядро
PMEM KB 1024MB Реална (физическа) RAM памет
VMEM KB 0 Виртуална памет – не се препоръчва да се ползва
IO KB/sec 1024KB/s Четене + запис към диска
IOPS Операции в секунда 1024 Брой I/O операции в секунда
NPROC Брой 100 Максимален брой процеси за акаунт
EP Брой 20 Входящи процеси (напр. едновременни заявки към Apache/PHP)

⚠️ Забележка:
Ограниченията за VMEM (виртуална памет) са отживелица и често водят до проблеми – затова се препоръчва да се оставят на 0.

 

🧾 Примерни настройки за типичен акаунт

✅ Стандартен хостинг акаунт:

 

SPEED=100%

PMEM=1GB

VMEM=0

IO=1024KB/s

IOPS=1024

NPROC=100

EP=20

 

🚀 Премиум акаунт:

 

SPEED=200%

PMEM=2GB

VMEM=0

IO=4096KB/s

IOPS=1024

NPROC=150

EP=40

 

🛠️ Как работи LVE

Технологията е интегрирана в ядрото на CloudLinux и използва cgroups (контейнери). Работи заедно с Apache чрез модула mod_hostinglimits.

Какво прави:

  1. Улавя коя заявка към сайта от кой виртуален хост идва.

  2. Ако е към PHP/CGI скрипт – поставя процеса в LVE на конкретния потребител.

  3. Огражда му ресурсите.

  4. След края на заявката – премахва процеса от LVE.

📌 Ако един сайт опита да използва прекалено много ресурси:

  • Ще получи грешки 508 (too many entry processes)

  • Или грешки 500/503 (ако RAM или процеси са изчерпани)

  • Или просто ще се забави, ако е ограничен по CPU/IO

 

🔍 Проверка дали LVE е активен

Провери дали ядрото е LVE:

uname -r

 

Трябва да виждаш нещо като:
3.x.x-xxxx.lve.x.x.el7.x86_64

 

Провери дали модулът е зареден:

lsmod | grep lve

 

Примерен изход:

lve   46496  0

 

🧩 Управление на LVE лимити

💻 През контролния панел:

Ако използваш cPanel, Plesk или DirectAdmin, можеш да използваш LVE Manager.

🖥️ От команден ред:

Можеш да използваш:

lvectl

 

Или редактирай директно:

/etc/container/ve.cfg

 

Пример:

<lve id=”532″>

  <cpu limit=”30″/>

  <ncpu limit=”5″/>

</lve>

 

📈 Наблюдение на натоварването

Можеш да следиш натоварването с:

lvetop

 

Или:

cat /proc/lve/list

 

За CPU използвай:

lveps

 

⚡ SPEED лимит – как работи?

От версия lve-utils 1.4+, лимитът за CPU може да се задава като:

  • % от едно ядро – напр. –speed=50% означава половин ядро

  • Честота в MHz – напр. –speed=2000mhz

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

 

🔁 Активиране / деактивиране на LVE и IO лимити

Файл: /etc/sysconfig/lve

LVE_ENABLE=yes

Файл: /etc/sysconfig/iolimits

IO_LIMITS_ENABLED=yes

 

След промени: рестартирай сървъра.

 Ограничения на паметта в CloudLinux OS

В CloudLinux можеш да контролираш колко RAM може да използва всеки хостинг акаунт. Това става чрез два вида лимити:

  • PMEM (Physical Memory) – реалната физическа памет, която се ползва

  • VMEM (Virtual Memory) – виртуалната памет, която се заявява

 

🔹 Виртуална памет (VMEM) – не се препоръчва

Виртуалната памет показва колко RAM приложенията биха искали да използват. Тя се вижда в колоната VIRT в командата top.

📌 Важна бележка:
Ограниченията за виртуална памет (VMEM) са отживелица в CloudLinux 6 и 7 и могат да създадат странни грешки. Затова се препоръчва напълно да ги изключиш като зададеш VMEM=0.

Когато VMEM лимитът се достигне:

  • CloudLinux блокира нови заявки за памет.

  • Скриптовете (напр. PHP/CGI) започват да връщат грешки 500 или 503.

 

🔸 Физическа памет (PMEM) – препоръчван вариант

Физическата памет (PMEM) показва реалната RAM, която се ползва в момента. Вижда се в колоната RES в top.

Тази стойност включва:

  • реално използваната памет,

  • споделена памет между процесите (напр. PHP),

  • дисков кеш (който може да не се брои, виж по-долу).

📌 Обикновено реално използваната физическа памет е по-малко от виртуалната.

Ако един акаунт премине лимита на физическа памет:

  1. Първо се изчиства дисковия кеш (без да спира процесите).

  2. Ако това не помогне – CloudLinux убива някои процеси и връща грешки 500/503.

 

🚫 Спиране на броенето на дисковия кеш (Page Cache)

След версия kmod-lve 2.0-53 (CL8) и 2.1-17 (CL9) можеш да изключиш броенето на дисковия кеш от общата използвана памет с тази команда:

 

sysctl -w kernel.memstat_nocache=1

 

📌 Това помага на клиентите, защото след края на някой PHP скрипт, кешът може да остане в паметта и да изглежда, че акаунтът още ползва RAM.

⚠️ По новите инсталации тази опция вече е активна по подразбиране.

 

🧪 Проверка: защо се отчита RAM, но няма активни процеси?

Понякога lveinfo или панелът може да показва, че даден акаунт използва RAM, но няма активни процеси. Това обикновено е заради дисков кеш.

👉 Как да провериш:

CloudLinux OS 6:

cat /proc/bc/XXX/meminfo

 

CloudLinux OS 7 / 6 Hybrid:

cat /proc/bc/lveXXX/meminfo

 

CloudLinux OS 8 / 7 Hybrid:

cat /sys/fs/cgroup/memory/lveXXX/memory.stat

 

Търси ред с:

Cached: 67300 kB  (или: cache 1662976)

 

Заместване: XXX е User ID на акаунта. Можеш да го намериш с:

id потребителско_име

 

🛑 Важно за kernel memory accounting

По подразбиране, kernel memory accounting е изключено в CloudLinux OS 7/8/9, защото:

  • Създава забавяния при натоварени сървъри

  • В някои случаи може дори да срине ядрото

В CL8/CL9 се използва параметър:

cgroup.memory=nokmem

 

Може да го промениш, но е по-добре да създадеш собствен tuned профил за да не бъде презаписан след ъпдейт.

 

IO, IOPS, EP, NPROC и други лимити в CloudLinux OS

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

 

⚙️ IO лимит (Input/Output)

  • Какво е: Контролира скоростта на достъп до диска – колко бързо един сайт може да чете/пише на диска.

  • Единици: KB/s (килобайта в секунда)

  • Какво става при достигане на лимита: Процесите не се спират, а се забавят (временно „заспиват“), за да не надвишат ограничението.

  • ВАЖНО: Това засяга само дисковия достъп, не мрежовия трафик.

 

🔁 IOPS (Input/Output Operations Per Second)

  • Какво е: Лимит на броя четения/записи в секунда (независимо от размера).

  • Какво става при достигане: Нови операции чакат до следващата секунда.

  • Пример: Ако лимитът е 1024 IOPS, а сайтът направи 1025 заявки – последната ще се забави.

 

🌐 EP (Entry Processes) – „Входни процеси“

  • Какво е: Лимит на едновременните заявки към сайта (най-често PHP/CGI скриптове).

  • Ползва се за: Защита от DoS атаки (Flood чрез бавни страници).

  • Какво става при достигане: Сайтът започва да връща грешка 508 – Resource Limit Reached.

  • Специално: С LiteSpeed се държи различно от Apache – защото LiteSpeed използва по-малко процеси, което влияе на отчитането.

 

👥 NPROC – Лимит на процесите

  • Какво е: Определя максималния брой процеси (и нишки), които един акаунт може да стартира.

  • Какво става при достигане: Нови процеси не могат да се стартират, а сайтовете връщат 500/503 грешки.

🧠 Важно: Добра практика е NPROC да бъде най-малко с 15 по-голям от EP, за да има място за уеб процеси, SSH сесии и други системни нишки.

 

📦 Inodes – Брой файлове и папки

  • Какво е: Inode = единичен файл или папка.

  • Лимитът на inodes определя колко файла/папки може да има един акаунт.

  • Къде се прилага: Само върху /home дяла.

  • Как работи:

    • Soft limit: може да бъде превишен за определено време (по подразбиране 7 дни).

    • Hard limit: не позволява повече файлове изобщо.

📌 Можеш да управляваш inode лимитите през LVE Manager (в cPanel, Plesk и DirectAdmin) или чрез edquota.

 

🌐 Ограничения на мрежов трафик

  • Какво е: Може да ограничиш скоростта на изходящия трафик за всеки акаунт.

  • Как става: CloudLinux маркира трафика с LVE ID, а с tc команда се налага скоростен лимит.

  • Важно: Работи само с IPv4 и не измерва обем, а само скорост (например 256kbps).

  • Не засяга: Статично съдържание (HTML, изображения), само PHP/CGI, SSH и подобни.

 

🛠️ Проверка и валидиране на лимитите

От lve-utils 3.1-1 насам CloudLinux автоматично проверява дали зададените лимити са логични:

  • Пример: Ако EP = 20, тогава NPROC трябва да е поне 35 (EP + 15).

  • Ако лимитите не са съвместими – ще се покаже предупреждение при задаване или чрез cldiag –check-lve-limits.

 

✅ Добра практика за лимитите

Лимит Стойност
SPEED 100% – 200% (зависи от плана)
PMEM 512MB – 2GB
VMEM 0 (да се изключи)
IO 1024KB/s – 4096KB/s
IOPS 1024
NPROC EP + 15 или повече
EP 20 – 40
Inodes Според нуждите на акаунта

 

Съвместимост с уеб сървъри и PHP

Уеб сървър / PHP режим CPU RAM EP NPROC IO CageFS PHP Selector
Apache / suPHP
Apache / FCGID
Apache / CGI
Apache / PHP-FPM ✅* ✅*
Apache / mod_php (DSO)
Apache / mod_ruid2
Apache / MPM ITK ✅*
LiteSpeed
NGINX / PHP-FPM ✅*
SSH
Cron jobs
Apache / mod_lsapi

Бележки:

  • * – Има частична или ограничена съвместимост (например с PHP-FPM и CageFS).

  • mod_lsapi не работи, когато е активиран PHP-FPM, защото и двата са “PHP обработчици”.

 

👨‍💼 Reseller лимити – какво представляват?

Reseller лимитите позволяват на хостинг доставчиците да ограничат общото използване на ресурси от всеки реселър и неговите потребители.

📌 Как работят:

  • Можеш да зададеш лимит за реселъра (например 2 CPU ядра, 2GB RAM и т.н.).

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

  • Реселърът няма достъп до ограничаване на inodes и MySQL.

 

🧠 Какво да знаем за Reseller лимитите?

  • Реселърът като потребител (същото потребителско име) е просто обикновен акаунт.

  • Самият реселър като роля не може да надвишава лимитите, които му е задал администраторът.

  • Лимитите се активират, когато всички потребители под даден реселър използват ресурси над зададения му лимит.

 

✅ Изисквания за активиране на Reseller лимити

  • CloudLinux OS 7/8 или Hybrid

  • Ядро: Поддържа се от 3.10.0-714.10.2.lve1.5.3.el7 и нагоре

  • lvemanager версия 3.0-18 или по-нова

 

⚙️ Как да активираш Reseller лимити в cPanel?

  1. Увери се, че използваш правилната версия на CloudLinux и ядро.

  2. При създаване на акаунт:

    • ✅ Избери „Make this account a reseller

    • ✅ Избери „Make the account own itself“ – това е ЗАДЪЛЖИТЕЛНО!

  3. Влез в WHM → Modify Account, ако е нужно промени собствеността.

  4. Отиди в LVE Manager → Users → (реселър) → кликни на ✏️.

  5. Активирай опцията Manage Limits, съгласи се и задай лимитите.

 

⚠️ Бележки

  • Не се поддържа в CloudLinux Solo/Admin изданията.

  • В DirectAdmin, ако местиш потребител от един реселър към друг – ръчно прехвърли пакета му.

  • DirectAdmin създава „DEFAULT виртуален пакет“ с лимитите по подразбиране.

    • За да запазиш inodes лимити, добави:
      cl_quota_inodes_inheritance=1 в /etc/sysconfig/cloudlinux.

 

🔓 Как да изключим лимитите за реселъри (Reseller Limits)

  1. Отиди в LVE Manager → таб „Users“.

  2. Намери съответния реселър и кликни върху иконата с моливчето (редакция).

  3. В изскачащия прозорец премести слайдера „Manage Limits“ в позиция изключено (off).

  4. Ще се появи съобщение: „Are you sure you want to disable limits?“ – натисни AGREE.

  5. След това натисни Save.

📌 Важно:
Деактивирането на лимитите не променя лимитите, зададени от реселъра за неговите клиенти – те се запазват.
Изтриват се само основните (дефолтните) лимити, които са били зададени директно на самия реселър.

 

📚 Допълнителни ресурси и помощ

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

  • 🔍 FAQ разделът в нашата официална база знания

  • 🧭 Обяснение на интерфейса за Reseller Limits (UI)

  • 💬 Можеш също да пишеш директно до CloudLinux Support

 

🧪 Контрол над лимитите при процеси от Уеб Интерфейса (Node.js, Python и Ruby)

CloudLinux позволява да управляваш как точно се прилагат лимитите (CPU, RAM, IO и т.н.) за уеб приложения, стартирани от:

  • Node.js Selector

  • Ruby Selector

  • Python Selector

Това се настройва чрез променлива в конфигурационен файл:

 

web_resource_limit_mode

 

Примерен запис във файл:

 

[custom_section]

web_resource_limit_mode = heavy

 

⚙️ Възможни стойности:

Стойност Какво означава
all (по подразбиране) Всички процеси се стартират в CageFS и с активирани LVE лимити.
heavy Леките процеси работят без лимити, но са все пак изолирани (в CageFS). Подходящо за избягване на грешки при NUMPROC лимити.
unlimited Няма лимити – процесите работят напълно свободно. ⚠️ Не се препоръчва за продукционна среда!

 

📌 Изисквания, за да използваш тази функция:

  • Трябва да имаш инсталиран CloudLinux OS.

  • Пакетите по-долу трябва да са в следните версии (или по-нови):

Пакет Версия
lve-wrappers ≥ 0.7.2
lvemanager ≥ 7.5.9
kmod-lve ≥ 2.0.36
lve ≥ 2.1.2