Фон. Я пришел из мира Microsoft, в котором у меня были сайты, хранящиеся в IIS. Опыт научил меня перерабатывать мой пул приложений один раз в день, чтобы устранить странные проблемы из-за фрагментации. Утилизация пула приложений в основном означает перезапуск приложения без перезагрузки всего IIS. Я также смотрел лекцию, в которой объяснялось, как Microsoft значительно сократила фрагментацию в .Net 4.5.
Теперь я развертываю приложение Node.js в производственной среде, и я должен убедиться, что он работает безупречно все время. Первоначально я думал, что мое приложение перезапускается один раз в день. Затем я провел некоторое исследование, чтобы найти некоторые подсказки о проблемах фрагментации в Node.js. Единственное, что я нашел, - это абзац из статьи, описывающей GC в V8:
Чтобы обеспечить быстрое распределение объектов, короткие паузы в сборке мусора и "без фрагментации памяти V8" используется стоп-мир, генератор, точный сборщик мусора.
Этот оператор действительно недостаточно для того, чтобы отказаться от создания механизма перезагрузки для моего приложения, но, с другой стороны, я не хочу выполнять какую-либо работу, если нет проблем.
Итак, мой вопрос:
Должен или не должен перезапускать приложение каждый раз, а затем во избежание фрагментации?