Найти тему

5 советов, чтобы подготовить NodeJS к высоким нагрузкам

  • Избегайте блокировок: блокирующие операции (вроде fs.readSync) заманчивы, потому что код выглядит чище, но они буквально убивают производительность. Вместо них используйте async/await операции, потому что во время выполнения асинхронной работы ЦП будет доступен и для других задач.
  • Увеличьте лимит памяти: Node по умолчанию настроен на ограничение в 1 ГБ. Если серверу доступно, скажем, 4 ГБ специально под ваше приложение, установить максимальный предел памяти вам придется вручную, используя CLI со следующим флагом: --max-old-space-size
    Пример: node --max-old-space-size=4096 server.js
  • Убедитесь, что вы задействовали все ядра процессора: по умолчанию Node работает в одном треде. Если вы специально не настраивали конфигурацию, которая запускала бы несколько тредов, сэкономьте деньги, выбрав сервер с 1 ядром.
  • Сократите количество обращений к приложению: настройте принудительный HTTPS и все редиректы как можно выше (например, на уровне прокси). Это позволит приложению не отвлекаться на лишнее, а, значит, быть доступнее для запросов, которые действительно важны.