# LXC контейнеры для отдельных сервисов

**URL:** <https://forum.samohosting.ru/t/lxc-kontejnery-dlya-otdelnyh-servisov/626>\
**Category:** Proxmox\
**Created:** [28.Июль.2025 08:04:03 UTC](https://forum.samohosting.ru/t/lxc-kontejnery-dlya-otdelnyh-servisov/626 "2025-07-28T08:04:03Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![KRom](https://forum.samohosting.ru/user_avatar/forum.samohosting.ru/krom/32/362_2.png) [@KRom](https://forum.samohosting.ru/u/KRom)\
**Post date:** [28.Июль.2025 14:10:35 UTC](https://forum.samohosting.ru/t/lxc-kontejnery-dlya-otdelnyh-servisov/626/2 "2025-07-28T14:10:35Z")

</div>

Я уже отвечал на данный вопрос тут: [LXC vs VM для докера и не только](https://forum.samohosting.ru/t/lxc-vs-vm-dlya-dokera-i-ne-tolko/488)

## Если кратко, то особой разницы нет, но есть несколько, моментов

## Внимание! Дальше идет лонгрид:

Вот мой кластер с 42 запущенными LXC контейнерами и еще 15 потушенными

 ![image](https://forum.samohosting.ru/uploads/default/original/1X/3f37c3da6202e7b9744e3f82efb53f119f36562b.png)

Начнем с того, что Proxmox не рекомендует LXC как таковые, обоснование почитать по ссылке выше

## По ресурсам

- CPU - современные системы контейнеризации и паравиртуализации практически не накладывают доп. нагрузки, особенно, если основное вычисление происходит в юзерспейсе с минимальным количеством системных вызовов
- ФИЧИ CPU и Ядра - тут надо учитывать, что не все можно запихнуть нормально в матрешку (PVE → LXC → DOCKER) например, Podman у меня не захотел работать без привилегированного режима. Поэтому, 1 вариант самый надежный, 3 может потребовать снижения безопасности, 2 посерединке - можно отключать точечно.
- RAM - в целом, я бы не сказал, что сильно влияет, особенно если это не VM, то оверхеда и резервирования нет практически
- Сеть - `docker-proxy` снижает производительность, насколько, + проблемы с мультикастом + с IPv6, перевод traefik и consul на `network_mode: host` сразу решило все мои проблемы, далее кластеризируемые сервисы типа openbao я сразу запускал в этом режиме. OST вот с [такими результатами](https://openspeedtest.com/results/show?&d=2305.373&u=2179.900&p=1.5&j=0.1&dd=3851.460&ud=3056.484&ua=Mozilla/5.0%20(X11;%20Linux%20x86_64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/138.0.0.0%20Safari/537.36) на 1 Ядре с проксированием выдал 32% CPU, с `network_mode: host` 25%, но это на 2.5 гигабитах
- HDD - сложный вопрос, я бы не сказал, что имеет значение, но испортить при желании можно. Там и с LXC уже слоеный пирог, а если добавить докер, то добавляется немного, но в Linux работает довольно таки быстро, в MacOS очень долго работало из рук вон плохо, сейчас вроде обещают на уровне Windows, т.е. на 2 головы хуже, чем в Linux
- Гостевая OS - надо понимать, что она LXC контейнер не работает сам по себе, там есть куцая, но система, пусть и без ядра, но init все равно работает, в 1 и 2 варианте при большом количестве сервисов это может иметь место, например переезд с Ubuntu на Alpine для одного из моих сервисов позволило
  - CPU в простое 2% → 0.2%
  - RAM 350MB → 120MB
  - HDD 3.5ГБ → 1.5ГБ

## По типам развертывания

**Отдельные контейнеры без докера**

- В теории производительность на уровне 99-100%, но обслуживать сложнее в плане разворачивания и обновления, в репозиториях не всегда есть актуальные версии, если ставить руками, то надо обновлять как-то, тот же Proxmox-Helper-Scripts это самостоятельно делает, но что если скрипт упадет? Что он делает там? Где когфиги? Откуда и куда качает?
- Надо понимать, что сам LXC контейнер что-то да и весит, я лично пока перешел на alpine как раз таки для минимального оверхеда, пытался еще уйти с docker на podman еще для снижения издержек, но не завелось

**Отдельные контейнеры с докером**

- При использовании alpine оверхед минимальный, производительность чуть ниже, за счет дополнительных слоев контейнеризации
- Удобно управлять средствами самого Proxmox, есть тулзы типа [Pulse](https://forum.samohosting.ru/t/pulse-proxmox-monitoring/440)
- Не используется переиспользование системных файлов и слоев в docker, это значит, что если используется `ubuntu:latest`, в качестве базового образа то тут она будет скачана каждый раз, а в 3 случае только 1
- Можно использовать `network: host`

**Один LXC контейнер с кучей докеров**

- Оверхед операционки контейнера минимальный
- Переиспользование слоев докера
- Легко добавлять новые сервисы
- Без кубера и подобных сложно разворачивать на нескольких серверах
- Proxmox тут не особо то и нужен уже

## Я бы расставил рейтинг следующим образом

1. много Alpine LXC без докера
2. 1 ubuntu/alpine LXC + много docker
3. много alpine LXC + docker
4. много ubuntu LXC + docker

## Итого

- Высоконагруженные сетевые и дисковые лучше на хосте или в одном LXC без докера, типовые приложения в докере будут терять меньше фоновой нагрузки самой операционки
  - _Qbittorrent_ я развернул в LXC + Alpine (alpine еще хороша тем, что там как правило, самый свежий софт, особенно в edge + ее очень легко обновлять), не не скажу в числах, но больше стал раздавать.  
 ![image](https://forum.samohosting.ru/uploads/default/original/1X/493145970b86b22bc4d46f6fe2a66f249e7f9184.png)
  - Основную доп. нагрузку при множестве LXC контейнеров будет иметь сама операционка внутри LXC контейнера, она может быть более существенной, нежели потери при “обматрешкивании” самого приложения

- Множество LXC контейнеров надо как-то поддерживать, у меня для этого используется связка Ansible (Semaphore UI) и Komodo поверх Forgejo (GIT репозиторий), однозначно с 1 контейнером и кучей docker управлять будет проще
- Если выбирать 3 вариант, то можно посмотреть в сторону [runtpi](https://runtipi.io/) или приложений внутри самого TrueNas
- Актуальные версии софта чаще всего есть в docker, далее идет alpine, потом ubuntu и замыкает debian, ну можно еще федору рассмотреть, но меня тошнит от центоса и федоры.
- Я топлю за Alpine еще и потому, что там сам оверхед очень маленький и обновление с одной версии на другую очень быстро происходит, есть и rolling версия. С кучей LXC контейнеров на ubuntu тот еще гемог обновлять с одгого LTS релиза на другой - время обновления выше, а шанс словить проблему больше.

UPD:  
По поводу alpine linux хочется добавить несколько моментов

1. musl вместо glibc имеет свои тонкости
2. плохо работает с cgroups2
3. Воловина консоли на busybox

В итоге podman у меня не завелся, внутри контейнера большая часть программ не показывает ограничения ресурсов самого контейнера, а показывает ресурсы хоста.

---

_[View the full topic](https://forum.samohosting.ru/t/lxc-kontejnery-dlya-otdelnyh-servisov/626)._
