Какую нагрузку выдерживает пререндеренный сайт на Next.js
Мартин Холс задумался: если статья из его блога на Next.js попадёт на Hacker News, сайт упадёт или всё будет хорошо?
Напомню, Next.js позволяет генерировать и SSR, и SSG (pre-rendered). При этом фреймворк очень многое автоматизирует и не то чтобы разрешает сильно влиять на то, как доставляются ресурсы на клиент. В итоге одна страница блога Мартина генерировала уже 60+ запросов за раз. А быстрое нагрузочное тестирование показало, что его VPS выдерживает всего 193 запроса в секунду. Получается, четыре посетителя блога в принципе могут положить сайт, если синхронизируются.
В статье есть интересные замеры и разные подходы, как выкрутиться из такой щекотливой ситуации. Есть в том числе отличное замечание, что для личного блога держать 193 RPS на самом деле нормально, грустно бывает только во внезапные пики популярности.
А ещё SSR работает медленнее на 80–90%. Причём вам ещё и CPU хороший понадобится для вычислений. Поэтому если у вас SSR для статических лендингов — лучше сразу денежку сжигайте в топке, хоть воздух нагреете.
Год назад, кстати, фронтендеры в моей команде тоже провели замеры RPS для Next.js-приложения. Нам надо было выдерживать высокую нагрузку буквально в течение одной минуты, пока на большой сцене показывали QR-код на сайт. И тогда тоже выбрали SSG для главной страницы, хотя весь остальной сервис на SSR. Сработало. Но числа для меня были удивительными. Developer Experience, конечно, в современном фронтенде очень высокий, но вот ради одной простой странички столько всего генерировать… Эх.
https://martijnhols.nl/blog/how-much-traffic-can-a-pre-rendered-nextjs-site-handle
Post #319
4.89K