我正在寻找为ECS任务分配内存的指导.我正在为希望在服务器成本上尽可能便宜的客户运行Rails应用程序.我看的是具有2个CPU和4 GB内存的中型服务器大小.
大多数时候我只需要一个容器一次运行rails服务器.但是,偶尔会出现峰值,我想扩展另一台服务器并将容器部署到它.当流量减慢时,我想缩减到单个服务器/任务.
这是我需要帮助的地方:
我应该将我的任务记忆设置为什么?4GB?这将是盒子上的总数,但不考虑系统进程.我可以做3 GB,但后来我会浪费一些无情的自由记忆.对于CPU来说同样的问题......我应该100%做到吗?
我不想支付更大的服务器,即16 GB坐在那里,大部分时间只需要1个容器......这样的浪费.
我想要的似乎很简单.每个实例1个任务.当实例达到75%的使用率时,缩放新实例并将任务部署到第二个实例.我不明白为什么我必须设置任务内存和CPU设置,当它是一对一的比例.
谁能给我指导如何做我所描述的?或者当它与实例一对一时,正确的任务定义设置应该是什么?
谢谢你的帮助.
- 编辑 -
根据反馈,这是一个潜在的解决方案:
任务定义=内存预留为3 GB,内存为4 GB.
Ec2中等节点,有4 GB
配置ECS服务自动扩展: - 当服务CPU利用率大于75%时,向上扩展(将任务数增加1).
- 当服务CPU利用率低于25%时缩小(减少任务计数1).
配置ECS群集扩展: - 当群集内存利用率大于80%时,向上扩展(将ec2实例数增加1). - 当群集内存利用率低于40%时,缩小范围(将ec2实例数减少1).
示例:以1个EC2实例启动,运行3 GB预留任务.这是75%的集群利用率.
当服务激增并且服务的CPU利用率跳跃到75%以上时,它将触发服务规模.现在,任务计数增加,新任务再次要求3 GB,这使得它总共6 GB,但只有4个可用,因此群集的利用率为150%.
这会触发群集规模(超过80%),从而为群集添加新的ec2节点以用于新服务.当它在那里,我们回到6GB需求/ 8 GB可用,这是75%和稳定.
缩小规模将发生相同的情况.
根据我的搜索,我遇到了一个似乎相当常见的问题,但是我已按照我遇到的所有说明和/或修复进行操作,但没有一个对我有用,所以我问这个希望有人可以引导我走向正确的方向。
我在 OS X 10.11.2 上通过 Homebrew 安装了 Jenkins 1.644。我按照这些说明如何在 OS X Server 5.0.15 网站内安装和设置它(我相信此版本的 OS X 服务器正在运行 Apache 2.4.16。
问题:当我连接到 Jenkins 中的管理控制台时,收到错误消息“您的反向代理设置似乎已损坏”。以及此詹金斯文档的链接。
点击http://127.0.0.1:8080/manage不会产生错误。
我已将代理设置添加到我的虚拟主机文件中,如下所示:
ProxyRequests Off
ProxyPreserveHost On
AllowEncodedSlashes NoDecode
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/ nocanon
ProxyPassReverse / http://localhost:8080/
ProxyPassReverse / http://jenkins.exampledomain.com/
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"
Run Code Online (Sandbox Code Playgroud)
当我进行测试卷曲时:
curl -iLk -e https://jenkins.exampledomain.com/manage \
https://jenkins.exampledomain.com/administrativeMonitor/hudson.diagnosis.ReverseProxySetupMonitor/test
Run Code Online (Sandbox Code Playgroud)
我得到以下结果:
HTTP/1.1 302 Found
Date: Fri, 22 Jan 2016 06:30:57 …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个没有数据库/ hibernate/gorm/datasource配置的grails应用程序.在Rails中,我可以用'--skip-active-record'命令创建一个新的应用程序,它可以让我创建控制器/模型/等,而不需要任何数据库问题.
我需要这个,因为我的控制器只进行几次休息调用并返回结果,因此不需要数据库.
这可能吗?我看到我可以配置没有数据源的Grails吗?但它似乎不适用于Grails 2.3.我收到此消息:"要删除插件,请从BuildConfig.groovy和/或application.properties中删除它."
这可能吗?谢谢
我在创建一个通过关联保存我的 has_many 的表单时遇到问题。我已经通过发布 json 成功保存了,但表单对我来说还不起作用。表单提交创建的请求参数将无法正常工作。任何帮助我找到解决方案的帮助都会帮助我避免在这方面浪费更多时间。谢谢前面。
编辑 - 添加了 forms_for 尝试和创建的 params json,但在底部效果不佳 -
Json post 请求参数有效:
{
"author": {
"name": "Author Name",
"post_authors_attributes": [
{"post_id":"1"},
{"post_id":"2"},
{"post_id":"3"}
]
}
}
Run Code Online (Sandbox Code Playgroud)
Rails 表单生成的参数不保存。
{
"author": {
"name": "assd",
"post_authors_attributes": [
"",
"2",
"3"
]
}
}
Run Code Online (Sandbox Code Playgroud)
...以及相关的代码示例...
作者模型
class Author < ActiveRecord::Base
has_many :post_authors
has_many :posts, :through => :post_authors
accepts_nested_attributes_for :post_authors
end
Run Code Online (Sandbox Code Playgroud)
帖子模型(目前仅适用于作者有很多帖子,而不是相反)
class Post < ActiveRecord::Base
end
Run Code Online (Sandbox Code Playgroud)
帖子作者模型
class PostAuthor < ActiveRecord::Base
belongs_to :post
belongs_to :author
end …Run Code Online (Sandbox Code Playgroud)