Ошибка ENOMEM при запуске приложения Next.js на сервере общего хостинга

Вкратце: у меня возникла ошибка при попытке собрать и запустить приложение Next.js на сервере общего хостинга, на котором на тот момент было доступно более 900 МБ ОЗУ и более 70 процессов. Журнал показал, что размер RSS был 50814976, когда ошибка была обнаружена.

Я не совсем уверен, ошибка вызвана просто нехваткой памяти или она возникает из-за неправильных настроек или конфигов. Не могли бы вы дать мне несколько советов?

==========Подробности ниже============

Я создаю приложение Next.js с помощью Node.js, и оно создано с помощью специального сервера (моя точка входа: server.js). Я могу запустить свое приложение в локальной среде на локальном хосте:3000. Затем я пытаюсь развернуть его, чтобы проверить, все ли в порядке в сети.

Я подписался на план общего веб-хостинга DRIVE от A2 Hosting, который оптимизирован для поддержки среды Node.js. В плане они предлагают 1 ГБ физической памяти и 75 доступных процессов.

Мое приложение было создано с помощью функции приложения Setup Node.js в cPanel и клонировало мой проект на сервер с помощью git через SSH. Пакеты NPM также были установлены на сервер с помощью команды . Версия узла была и версия npm была .

Мои сценарии npm были определены для запуска пользовательского сервера. Вот скрипты npm, определенные в моем файле package.json :

      "scripts": {
    "dev": "node server.js"
    "build": "next build",
    "start": "NODE_ENV=production node server.js"
}

Затем я использовал команду создать производственное приложение в папке .next, но ошибка подошёл сразу.

Я погуглил, что это проблема, связанная с использованием памяти. Некоторые говорят, что эта ошибка возникает из-за нехватки памяти, и обходным путем для ее обхода является локальное создание рабочей папки и ее загрузка на сервер. Поэтому я скопировал шаги.

Однако результат разочаровал, когда я запустил команду . Ошибка все еще была здесь, появившись менее чем через секунду после того, как я ввел команду.

Очистка кеша npm и переустановка модулей npm тоже не помогли.

Я попытался увеличить лимит памяти, добавив опцию в команде и побежал ; но, к сожалению, это не сработало, и все еще выскакивало.

я добавил чтобы показать использование, когда была обнаружена ошибка, и это было результатом:

      {
    rss: 50814976,
    heapTotal: 34107392,
    heapUsed: 23076064,
    external: 1632450
}

Общий размер rss был намного меньше лимита. Или я использовал неправильный метод для проверки потребления памяти?

Как я могу решить проблема? Чем именно вызвана ошибка? Действительно ли это только потому, что доступная оперативная память не соответствует требованиям приложения next.js?

Я не уверен, применил ли я неверные настройки, упустил из виду некоторые важные конфигурации или неправильно написал какие-либо коды, которые вызывают эту ошибку. Я хочу понять, что происходит внизу. Импульсивное обновление плана без надлежащего понимания не очень хорошо для меня как для начинающего разработчика, и я обязан рационально использовать бюджет.

Не могли бы вы дать мне несколько советов?

Спасибо за внимание.

0 ответов

Другие вопросы по тегам