Hacker News Digest

Тег: #qemu

Постов: 1

Booting 5000 Erlangs on Ampere One 192-core (underjord.io)

Ampere One 192-ядерный сервер, 1 ТБ ОЗУ, цель — запустить максимум виртуальных IoT-устройств на Nerves.

Прошлый раз добрались до 500 экземпляров; теперь с KVM и новым загрузчиком little_loader от Frank Hunleth удалось 5000 одновременных виртуальных ARM64-машин.
little_loader — минимальный ARM64-бутлоадер, читающий переменные u-boot, загружающий ядро Linux и сохраняющий механизмы A/B-обновлений Nerves.

Что изменилось

  • KVM/HVF ускоряет старт до 1-2 с и экономит ≈ 500 МБ ОЗУ на гость.
  • EL1 вместо EL2: EL2 нужен для вложенной виртуализации, нам не требуется.
  • Баг компиляции: release-сборка зависает, debug-версия работает (GCC 15, вероятно, чинит).

Команда запуска (упрощённый пример):

qemu-system-aarch64 \
  -machine virt,accel=kvm \
  -cpu host -smp 1 -m 150M \
  -kernel little_loader.elf \
  -netdev user,id=eth0 \
  -device virtio-net-device,netdev=eth0 \
  -drive if=none,file=disk.img,format=raw,id=vdisk \
  -device virtio-blk-device,drive=vdisk \
  -nographic

Итог: 5000 «эрлангов» на 192 ядрах, 1 ТБ ОЗУ, стартуют за секунды, потребляют по 150 МБ RAM.

by ingve • 10 августа 2025 г. в 11:41 • 207 points

ОригиналHN

#erlang#arm64#kvm#qemu#nerves#iot#cloud#gcc

Комментарии (38)

  • Речь идёт о запуске 5000 узлов BEAM (Erlang-машин), а не процессов — каждая BEAM может держать миллионы лёгких процессов.
  • Сервер с 192 Ampere-ядрами позиционируется как «облачный» или «edge» для телекомов; Hetzner предлагает 80-ядерный Ampere за ~200 $/мес.
  • Пользователи сомневаются в полезности без тестов под нагрузкой и обсуждают, как масштабировать память и шину при таком числе ядер.
  • Всплыли исторические примеры (Azul для Java) и шутки про «ручное ткачество» Erlang-потоков и «фермерский» байт-код.