Как динамически устанавливать --max-heap-size и --max-old-space-size в Node.js в зависимости от доступной памяти?Javascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Как динамически устанавливать --max-heap-size и --max-old-space-size в Node.js в зависимости от доступной памяти?

Сообщение Anonymous »

У меня есть веб-сервер Node.js, созданный с помощью Express.js, и я пытаюсь оптимизировать использование памяти и сборщика мусора V8. Насколько я понимаю, увеличение размера кучи позволяет выделить больше памяти перед запуском сборки мусора (GC), что в некоторых случаях может повысить производительность.
Чтобы добиться этого, я написал сценарий Bash. для динамической настройки --max-heap-size и --max-old-space-size на основе доступной памяти в контейнере Docker. Вот скрипт:
/start-node.sh

Код: Выделить всё

#!/bin/sh

# memory limint on Docker container
MEMORY_LIMIT=$(cat /sys/fs/cgroup/memory/memory.limit_in_bytes)

# memory limint in MB
MEMORY_LIMIT_MB=$((MEMORY_LIMIT / 1024 / 1024))

# if memory limint is too bigger (9223372036854771712 is no limit), set to 2 GB
if [ "$MEMORY_LIMIT" -gt 9223372036854771712 ]; then
MEMORY_LIMIT_MB=2048
fi

# heap is 75% of total
HEAP_SIZE_MB=$((MEMORY_LIMIT_MB * 75 / 100))

# Old Generation is 60-80% of heap
OLD_SPACE_SIZE_MB=$((HEAP_SIZE_MB * 70 / 100))

echo "Memory limit: ${MEMORY_LIMIT_MB} MB"
echo "Setting max heap size to: ${HEAP_SIZE_MB} MB"
echo "Setting max old space size to: ${OLD_SPACE_SIZE_MB} MB"

node --max-heap-size=$((HEAP_SIZE_MB * 1024)) --max-old-space-size=${OLD_SPACE_SIZE_MB} ./server.js
Мои вопросы:
  • Правильен ли этот подход для динамической настройки памяти в Node. js в среде Docker?
  • Есть ли какие-либо улучшения или рекомендации, которые мне следует рассмотреть для управления --max-heap-size и --max-old-space-size ?
  • Можно ли предположить, что выделение 75% общей памяти в куче и 70% кучи для старого поколения является хорошим практическим правилом?


Подробнее здесь: https://stackoverflow.com/questions/793 ... e-js-based
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Node.js Javascript выходит из памяти даже при 64 ГиБ --max-old-space-size
    Anonymous » » в форуме Javascript
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • MySQL ошибка: вне памяти - Ulimit или Space Space.
    Anonymous » » в форуме MySql
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • MySQL ошибка: вне памяти - Ulimit или Space Space.
    Anonymous » » в форуме MySql
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Max Heap: поиск k-х наименьших элементов
    Anonymous » » в форуме JAVA
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Что я использую для реализации Max-Heap в Python?
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Javascript»