3

我正在尝试在使用 Heroku Crane PostgreSQL 数据库(每月 50 美元 - https://postgres.heroku.com/pricing)或设置安装了 PostgreSQL 的 Linode 1GB Ram / 8 CPU / 48GB 存储 / 2TB 传输实例之间做出决定(20 美元/月 - https://www.linode.com/)。

我知道从管理的角度来看,使用 Heroku Crane PostgreSQL 会容易得多,因为一切都通过安全和备份进行管理。

我很好奇的是这两个数据库的性能将如何比较。使用 Linode 1GB / 8 CPU 实例,将只使用我的数据库。我看到 Heroku Crane 说它只有 400 MB RAM。Heroku Crane 也不清楚我得到了多少 CPU 以及它是否是专用实例。

Heroku DB 是否更有效地管理 DB 的 RAM/Cache?我不清楚 Linode PostgreSQL 实例是否会自动有效地使用可用的 1GB RAM,或者是否需要我进行自定义设置以确保将数据库加载到 RAM 中。

如果 Heroku DB 的性价比会降低,但由于安全性、备份和管理得到了照顾,这是一个更好的交易,那可能是可以接受的,我只是想了解权衡。

感谢人们提供的任何信息。我是数据库管理的新手,并且一直在使用安装了 PostgreSQL 的 Linode 1GB 实例进行开发和测试,但现在我要投入生产,我正在质疑是否转移到 Heroku Crane。另外,不确定这是否重要,但我的服务器是通过 Heroku Web 实例托管的。

4

1 回答 1

3

较低的 Heroku 计划位于共享服务器上,该服务器使用 LXC 分区到容器中。详细信息在 Heroku 的网站上。你的计划似乎就是其中之一。

如果您碰巧在其他用户没有在服务器上施加太多负载的实例上,那么这实际上可能是一个胜利,正如这个问题中所讨论的那样。但是,它使您的表现难以预测。

表征性能的唯一好方法是通过模拟生产工作负载进行基准测试。

RAM 是否真正重要取决于您的数据。如果您经常访问的数据和索引适合在一台机器上的 RAM 中,而不是在另一台机器上,那么 RAM 差异将产生巨大的差异。如果数据适合两台主机上的 RAM,那么添加 RAM 几乎没有什么好处。如果热数据不适合任何一台机器上的 RAM,那么磁盘 I/O 性能就变得比 RAM 更重要,主要是随机读取 I/O 和 fsync() 刷新率。

所以。使用您的预期数据大小模拟您的工作负载并进行基准测试。

Heroku在这里更详细地讨论缓存

(根据我的个人资料,我在与 Heroku 处于同一领域的另一家公司工作,因此我不愿意以一种或另一种方式表达强烈的意见)。

于 2013-08-23T03:05:01.290 回答