Превышен предел мягкой памяти в 1024 МБ после обслуживания 0 запросов. - PullRequest
0 голосов
/ 08 февраля 2019

Прежде чем кто-либо пометит этот вопрос как дубликат , есть несколько вопросов, которые делают его другим для меня.

  1. Это шокирует , чтобы увидетьэто сообщение об ошибке, указывающее Ноль запросов !! с 1024 МБ (1ГБ !!) , но я сделал запрос с текстом с полезной нагрузкой, который не может даже достичь 1 КБ .

Ошибка: Exceeded soft memory limit of 1024 MB with 1059 MB after servicing 0 requests total. Consider setting a larger instance class in app.yaml

Примечание: больше ничего не использует этот сервер !! Нет заданий cron, нет deamons, ничего, что я ожидаю использовать память.Раньше я выполнял много оптимизаций кода для этого сервера, и он фактически простаивал.Только обслуживающие запросы нажатия кнопок с моего телефона без фоновой службы в приложении (одно приложение от одного пользователя).

YAML-файл: Я использую;

# [START gae_quickstart_yaml]
runtime: nodejs8
instance_class: F4_1G
# [END gae_quickstart_yaml]
automatic_scaling:
  max_instances: 11
  target_cpu_utilization: 0.9

Вопрос:

  1. В чем проблема?

  2. Если я перенесу это в производство (если проблема решена), сможет ли он справиться с 5000-10000 пользователей, делающих 20-30 запросов в день?в противном случае я был бы очень признателен за пример конфигурации для этого количества пользователей.Я впервые размещаю на движке приложений Google / облаке Google

РЕДАКТИРОВАТЬ: Код конечной точки:

router.post('/endP', (req, res) => {
    let options = req.body.userdata;
    let isResponded = false;
    //simply inserting to DB with knex
    db_helper.insert(con.knex, options).then(async (s) => {
        isResponded=true;
        let reply = JSON.stringify(s);
        const message_content = {
                data: {
                body:reply
                },
                android: {
                    ttl: 3600 * 1000 * 24 * 28, // 4 weeks
                    priority: 'high',
          
                },
                topic:"myTopic"
            };
            //FCM notification
            await firebase.sendMessage(message_content);
            res.status(200).send(encryptor.encrypt(reply)).end();
    }).catch(err => {
        if (!isResponded) {
            let errr = err;
            res.status(500).send('Failed').end();
        }
        return null
    });
});

1 Ответ

0 голосов
/ 08 февраля 2019

Сколько памяти он использует при локальном запуске?Если вы не можете опубликовать весь свой код, пожалуйста, опубликуйте результат профиля памяти, когда он работает. Я знаю, что в stackdriver есть профилировщик в бета-версии, который может быть полезен для отслеживания происходящего https://cloud.google.com/profiler/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...