icon
Personal Website

Кодить каждую неделю 8 часов • 2026-06-28

Всем здравствуйте. Настало время моего еженедельного отчёта. На прошлой неделе я активно улучшал мой персональный веб-сайт, а на этой неделе я решил провести нагрузочный тест для моего персонального веб-сайта. Предыстория такая: я частенько удивляюсь ценам на облачные сервисы 🌧️💸, и мысленно спрашиваю сам себя: почему нужно столько платить за хостинг для сайтика, который уберётся на одном ARM-компьютере размером со спичечный коробок? И вот в воскресенье я решил проверить, а реально ли мой ARM-компьютер что-то может, или это самообман?

Нагрузочный тест веб-сервера Orange Pi 🍊📊

Провёл такой тест:

  • Сценарий: пользователь заходит своим бразуером в мой блог и по очереди читает каждый пост
    • Всего 61 постов, в каждом посте по несколько картинок
  • HTTP-кэш отключен
  • Изначально загружаем всё: HTML, CSS, JavaScript, иконки
  • После этого загружаем текст каждого блога и картинки к нему
    • Это соответствует реальности, ибо SPA не будет загружать CSS и JS повторно, когда переходим между постами

Результаты получились такие:

  • Блоги: 97 просмотров в секунду
    • Запросы: 310 HTTP-запросов в секунду
  • Нагрузка на Orange Pi
    • Процессор: 90%
      • Caddy: 30% (прокси веб сервер)
      • hinst-website: 30% (моя прога на Go)
      • PostgreSQL: 10% (база данных)
      • Остальное: 20% (системные процессы и Kubernetes)
    • Память: 50% (из 4 ГБ)
    • Температура: 75 градусов

Выводы:

  • Сайт может выдержать примерно 90 пользователей которые будут одновременно активно кликать на посты каждую секунду
    • Нагрузка зависит от поведения пользователей. Они могут отдыхать: ничего не кликать, а могут напрячься и кликать ещё чаще.
  • Настройки сжатия в Caddy отчасти влияют на производительность
    • Если поднять уровень сжатия c fastest до default, то получим вместо 310 всего лишь 290 запросов в секунду

Такой получился тест. Если буду делать какое-нибудь значительное обновление для моего персонального веб-сайта, то можно будет повторить нагрузочный тест и сравнить: до и после.