Google App Engine 自动随机重启

2023-11-30

我们在 GAE 上运行节点服务器,由于某种原因,我们的服务器每天会离线几次(有时可能需要几分钟才能恢复在线)。

全天的请求都是相同的,也没有例外会导致重新启动。没有请求激增或任何可能导致这种情况的特殊请求。

发生时记录:

2020-04-18T23:48:51.881806Z [GET /v1/util/example [36m304 [35.262 ms - -[ A 
2020-04-18T23:50:17.119906Z [start] 2020/04/18 23:50:17.119185 Quitting on terminated signal A 
2020-04-18T23:50:17.175632Z [start] 2020/04/18 23:50:17.175267 Start program failed: user application failed with exit code -1 (refer to stdout/stderr logs for more detail): signal: terminated 
2020-04-18T23:51:38.772388Z GET 304 173 B 3.3 s Example-V2/3.1.13 (com.example.app; build:1; iOS 13.4.0) Alamofire/5.1.0 /v1/util/example GET 304 173 B 3.3 s Example-V2/3.1.13 (com.example.app; build:1; iOS 13.4.0) Alamofire/5.1.0 5e9b928a00ff0bc9244f94194c0001737e737065616b2d76322d32613166310001737065616b2d6170693a323032303034303374303630343431000100
2020-04-18T23:51:38.786760Z GET 404 324 B 2.4 s Unknown /_ah/start GET 404 324 B 2.4 s Unknown 5e9b928a00ff0c014898f5c27f0001737e737065616b2d76322d32613166310001737065616b2d6170693a323032303034303374303630343431000100
2020-04-18T23:51:39.529080Z [start] 2020/04/18 23:51:39.511828 No entrypoint specified, using default entrypoint: /serve 
2020-04-18T23:51:39.529642Z [start] 2020/04/18 23:51:39.528742 Starting app 
2020-04-18T23:51:39.529968Z [start] 2020/04/18 23:51:39.529100 Executing: /bin/sh -c exec /serve 
2020-04-18T23:51:39.590085Z [start] 2020/04/18 23:51:39.589751 Waiting for network connection open. Subject:"app/invalid" Address:127.0.0.1:8080 
2020-04-18T23:51:39.590571Z [start] 2020/04/18 23:51:39.590347 Waiting for network connection open. Subject:"app/valid" Address:127.0.0.1:8081 
2020-04-18T23:51:39.764383Z [serve] 2020/04/18 23:51:39.763656 Serve started. 
2020-04-18T23:51:39.764935Z [serve] 2020/04/18 23:51:39.764544 Args: {runtimeName:nodejs10 memoryMB:1024 positional:[]} 
2020-04-18T23:51:39.766562Z [serve] 2020/04/18 23:51:39.765904 Running /bin/sh -c exec node server.js 
2020-04-18T23:51:41.072621Z [start] 2020/04/18 23:51:41.071895 Wait successful. Subject:"app/valid" Address:127.0.0.1:8081 Attempts:296 Elapsed:1.481194491s 
2020-04-18T23:51:41.072978Z Express server started on port: 8081 
2020-04-18T23:51:41.073008Z [start] 2020/04/18 23:51:41.072411 Starting nginx 
2020-04-18T23:51:41.085901Z [start] 2020/04/18 23:51:41.085451 Waiting for network connection open. Subject:"nginx" Address:127.0.0.1:8080 
2020-04-18T23:51:41.132064Z [start] 2020/04/18 23:51:41.131572 Wait successful. Subject:"nginx" Address:127.0.0.1:8080 Attempts:9 Elapsed:45.911234ms 
2020-04-18T23:51:41.170786Z [GET /_ah/start [33m404 [11.865 ms - 61[

始终有超过 70% 的可用内存,因此这不可能是问题。仅在重新启动时才注意到 CPU 利用率非常高(比正常情况高 10 倍)。

In the bottom picture you can clearly see when the restarts happen: CPU utilization

这是我的app.yaml

runtime: nodejs10
instance_class: B4
service: example-api

basic_scaling:
  max_instances: 1
  idle_timeout: 30m

handlers:
  - url: .*
    secure: always
    script: auto

这正在发生在我们的生产服务器,因此非常欢迎任何帮助。

Thanks!


读这篇文章document,有人提到,尽管他们尝试让基本和手动扩展实例无限期地运行,但有时会重新启动以进行维护,或者可能由于其他原因而失败。这就是为什么将最大实例数保持为 1 并不被认为是最佳实践,因为它很容易出现所有这些故障。正如另一个答案中提到的,我还建议增加实例的数量,这样更多失败或同时重新启动的可能性就会降低。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google App Engine 自动随机重启 的相关文章

  • 如何在nodejs中处理xhr blob post

    客户端代码 var xhr new XMLHttpRequest xhr open POST frame true xhr send blob 服务器代码 app use bodyParser urlencoded extended fal
  • 对于向 XSS 漏洞开放 JWT,我应该有多担心?

    我正在构建一个 Node js Web 应用程序 该应用程序使用用于 GUI 的 React 和由 Apollo 提供的 graphQL 用于连接到 AWS 上的 RDS MySQL 实例的后端 我正在对用户进行身份验证 然后返回 JWT
  • 使用空子文档集合保存 Mongoose 文档会导致重复键错误

    我有两个猫鼬模式 var productSchema new Schema name type String required true unique true var categorySchema new Schema products
  • Underscore 克隆 Mongoose 对象并删除属性不起作用?

    我正在使用 Mongoose 我想删除 id在将 JSON 响应发送到客户端之前 从 Mongoose 实例获取属性 Example var ui clone userInvite delete ui id console log JSON
  • 为什么 npm install 失败并出现与 node-sass 相关的错误?

    我正在使用我继承的 Rails 应用程序 我正在尝试运行npm install命令但我不断收到errors以下 我尝试跑步npm rebuild node sass正如输出中所建议的 但它没有帮助 我遇到这个问题乌班图16也OS X gt
  • 数据存储区中的一对多关系和 Google App Engine 中的取消引用

    我在两个实体之间有一对多关系 第一个是卫星 第二个是频道 卫星表单返回一个卫星名称 我希望该名称出现在另一个 HTML 页面中 并带有频道数据 您可以在其中表示该频道与该卫星相关 我怎样才能做到这一点 这听起来像是使用 ReferenceP
  • 护照 Facebook 注销无法使用

    我试图实现 Passport Facebook 我在 server js 中的代码如下所示 用户点击 Facebook 登录时使用的路由 router get auth facebook passport authenticate face
  • cookie 未在跨域上设置 - AngularJS 和 NodeJS/Express

    跨域请求时未设置 cookie 我的服务器在 localhost 8000 中运行 客户端在 localhost 9000 中运行 服务器nodejs express上的cors设置是 app use function req res ne
  • 错误:活动导致多个 Skype 活动机器人 FrameWork

    我正在尝试使用主动消息传递将附件发送到频道 下面是我的代码 async function sendToChannelWithImage message channelId img MicrosoftAppCredentials trustS
  • 从文件中抓取随机行

    我不知道该怎么做 我应该从哪里开始 我用谷歌搜索了这个 但没有找到关于如何从文本文件中提取随机行的结果 我唯一发现的是https github com chrisinajar node rand line https github com
  • node-mongodb-native MongoClient 意外关闭连接

    我一直在 mongodb 中搜索大量意外关闭的连接 但只能找到希望关闭连接的人提出的问题 我正在使用 node mongodb native 连接到数据库 但我不断收到看似随机的 错误 连接已关闭 消息 如果我手动重试请求 浏览器刷新 则请
  • 将数据从 javascript/html 页面发送到 Express NodeJS 服务器

    我正在使用 html5 和 javascript 开发 cordova 应用程序 该架构如下 电话应用程序向服务器请求某些内容 服务器请求 firebird 数据库 数据库回答服务器 服务器将所请求的数据提供给电话应用程序 在 html5
  • npm 不起作用,总是出现此错误 -> 错误:找不到模块 'are-we-there-yet'

    我尝试在 Mac 上使用 Yosemite 安装 grunt 节点已经安装在最新版本中 如果我在终端中输入 node v 我会得到 v0 12 5 行 那挺好的 但是当我想用 npm 安装某些东西时 我只得到一个错误 我尝试了 sudo n
  • Gitlab CI/CD 管道给出 Dockerfile 错误

    晚上好 我正在尝试将我的nodeJS应用程序部署到我的Digital Ocean Server 它说找不到我的Dockerfile 我确实检查过 Dockerfile 没有 txt 扩展名 任何指导表示赞赏 我在 Gitlab 项目中设置了
  • Google AppEngine 的替代品?

    我最近必须在 Google AppEngine 上实现一个项目 一开始我持怀疑态度 但 Appengine 上有一些非常好的方法 没有服务器设置 一切都开箱即用 Gzip 库等 一键部署 在 Mac 上启动 GAE Launcher 并单击
  • 在原子操作中测试和递减?

    我刚刚发现了一个恼人的错误 它基本上是一个竞争条件 为了便于论证 我们假设一个非常简单的文档结构 例如 id XXX amount 100 集合中存在数百个这样的文档 并且由多个编写器访问 这些编写器有效地尝试将数量降低任何值 但绝不会低于
  • 使用 Sequelize.js 和 PostgreSQL 查询关联模型上的 JSONB 字段

    我有我的两个模型Foo and Bar Foo有一个字段barId 因此有一个Bar与其关联的对象 我可以查询我所有的Foo对象并包括它们的关联Bar对象如此 我正在使用 TypeScript续集打字稿 https github com R
  • 节点持久-NodeJS

    谁详细向我解释了如何操作以下说明 var storage require node persist var account username Morris password test storage initSync storage set
  • Electron Auth0Lock“原始文件://不允许”

    尝试让 auth0 与我的电子应用程序一起使用 当我按照默认教程并尝试使用用户名 密码 身份验证进行身份验证时 锁定失败并显示 403 错误 并响应 不允许使用 Origin file 我还在 auth0 仪表板中客户端设置的允许来源 CO
  • 如何在nodejs中处理大量对象

    我想处理长度约为 100 000 的数组 而不会给 CPU 带来太多负载 我研究了流并偶然发现了 highlandjs 但我无法使其工作 我也尝试过使用 Promise 和分块处理 但它仍然给 CPU 带来很大的负载 如果需要 程序可能会很

随机推荐