当前位置: 首页 > 知识库问答 >
问题:

Heroku Rails 4彪马应用程序产卵额外实例

拓拔坚
2023-03-14

我正在Heroku上运行一个基本的Rails 4(ruby 2.1.4)应用程序,配置如下:

workers Integer(ENV['PUMA_WORKERS'] || 1)
threads Integer(ENV['MIN_THREADS']  || 6), Integer(ENV['MAX_THREADS'] || 6)

我目前没有设置任何ENV变量,所以我应该默认为1个工人。

问题是,在调查潜在内存泄漏时,至少根据NewRelic的说法,my web.1 dyno的两个“实例”正在运行。

我启用了heroku labs:enable log runtime metrics,它显示了我约400MB的内存占用。在NewRelic上,它显示了我在2个“实例”上的平均容量约为200MB的足迹。

heroku:ps显示:

=== web (1X): `bundle exec puma -C config/puma.rb`
web.1: up 2014/10/30 13:49:29 (~ 4h ago)

那么为什么NewRelic会认为我有两个实例在运行呢?如果我做一个heroku:restart NewRelic会在一段时间内只看到1个实例,然后最多看到2个。这是Heroku正在做但没有向我报告的事情,还是一只美洲狮的事情,即使工人应该设置为1。

共有2个答案

华衡
2023-03-14

这是因为Puma总是有一个主进程,所有的工作人员都是从这个主进程中产生的。

因此,实例计数将来自以下内容:

1(主流程)

寇桐
2023-03-14

请参阅2015年2月17日发布的New Relic 3.10.0.279,该版本在跟踪Puma实例时解决了这一特定问题。我猜既然你的应用程序在Heroku上运行,你就有了preload\u应用程序 在Puma配置中设置,因此这应该适用。

从发行说明中:

Puma主流程不再报告指标。将Puma的群集模式与preload_应用程序一起使用时!配置指令,代理将不再在Puma主进程中启动其报告线程。这将导致更准确的实例计数,以及Ruby VMs页面上更准确的统计数据(因为主进程将被排除)。

我正在测试一个简单问题的项目的更新,它似乎报告得更准确。

 类似资料:
  • 我正试图用imager模块将内容上传到AmazonS3。我一直收到错误信息说, 我已经在我的电脑上安装了imagemagick,但它一直说它未链接,这可能是问题所在吗?我还尝试使用brew link imagemagick进行链接,但由于某些原因无法链接。我在用OSx。有办法吗? 谢谢

  • 我试图按照https://docs.angularjs.org/tutorial的教程操作,但在运行该命令时出错 Angulal-PhoneCat@0.0.0 postinstall c:\git\Angulal-paractions\Angulal-PhoneCat bower install Angulal-PhoneCat@0.0.0update-webdriver C:\git\Angul

  • 我已经启动了一个节点。使用express generator的js应用程序,我遇到了一个奇怪的问题,无法通过浏览器查看页面两次,第一次加载正常,第二次加载不正常,因为节点进程以以下错误结束: 包裹json

  • 就在一周前,我还能在相同的Mac机上运行相同的项目,但在将我的系统android studio升级到3.0稳定版后,这个Cordova项目已经停止了从控制台和通过android studio构建。 请检查下面是控制台运行命令异常日志 Android Studio错误日志: 找不到com.android.tools.build:gradle:2.3.3。在以下位置搜索:https://repo1.M

  • 马上着手开发 iOS 应用程序 给 iOS 开发带来一个完美开局。在 Mac 上,您可以创建在 iPad、iPhone 和 iPod touch 上运行的 iOS 应用程序。本指南四个简短的部分为您构建自己的首个应用程序提供了入门指导,包括需要的工具、主要概念以及助您上路的最佳实践。

  • 我正试图在Google App Engine上从Quarkus连接到PostgreSQL数据库。为此,必须提供额外的JDBC属性“socketFactory”和“cloudSqlInstance”。但我不知道如何在应用程序中指定这些。属性。 根据https://quarkus.io/guides/datasource,有一个属性quarkus.datasource.jdbc.additional。