google-app-engine - 服务 0 个请求后超过 1024 MB 的软内存限制
问题描述
在有人将此问题标记为重复之前,有一些问题使它与我不同。
- 看到这个错误报告表明零请求令人震惊!有1024 MB(1GB !!)但我发出了一个带有文本有效负载的发布请求,甚至无法达到 1KB。
错误: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 作业,没有守护进程,我不希望消耗内存。之前,我对这台服务器做了很多代码优化,实际上一直处于空闲状态。仅在应用程序中提供来自我的手机的按钮单击请求而没有后台服务(一个用户一个应用程序)。
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
问题:
有什么问题?
如果我将其投入生产(鉴于问题已解决),它能否处理 5000-10000 个用户每天发出 20-30 个请求?如果没有,我将非常感谢为这么多用户提供示例配置。这是我第一次在谷歌应用引擎/谷歌云上托管
编辑:端点代码:
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
});
});
解决方案
在本地运行时消耗多少内存?如果您无法发布所有代码,请在内存配置文件运行时发布结果我知道 stackdriver 有一个测试版的分析器,这可能有助于追踪正在发生的事情https://cloud.google。 com/分析器/
推荐阅读
- java - 如何将 lambda 表达式转换为 sql 字符串
- php - usesort 在由explode函数抓取的区分大小写的字符串中不起作用
- javascript - 为什么“if”语句没有正确检查变量的值?
- python - 无法安装诅咒(python/windows 10)
- security - 保护 ftpclient 登录凭据
- cuda - 如何使用 Thrust 减少数组中不连续的数字段
- youtube-api - 如何使用 Youtube API 按日期获取数据?
- ios - 在分页滚动视图中将 TapGesture 添加到 ImageViews
- rxjs - 添加事件监听器,并使用 `scan` 保持缩减状态,然后移除事件监听器
- asp.net-web-api - 从 WebApi 中的 post 请求中获取数据