我正在尝试使用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能否更有效地管理数据库的RAM /缓存?我不清楚Linode PostgreSQL实例是否会自动使用可用的1GB RAM,或者是否需要自定义设置以确保数据库加载到RAM中。
如果Heroku DB的性能不太好,但由于安全,备份和管理得到了解决,这是一个更好的交易,这可能是可以接受的,我只想了解权衡。
感谢您提供的任何信息。我是DB管理员的新手,并且一直在使用安装了PostgreSQL的Linode 1GB实例进行开发和测试,但现在我要开始生产,我是否要转移到Heroku Crane。此外,不确定这是否重要,但我的服务器是通过Heroku Web实例托管的。
答案 0 :(得分:2)
较低的Heroku计划位于使用LXC分区为容器的共享服务器上。详情为on Heroku's site。你的计划似乎就是其中之一。
如果你碰巧遇到其他用户没有对服务器施加太多负担的实例,那么这实际上可能是一个胜利as discussed in this question。它会让你的表现更难以预测。
表征性能的唯一好方法是通过模拟生产工作量进行基准测试。
RAM是否真正重要取决于您的数据。如果您经常访问的数据和索引适合一台机器上的RAM而不是另一台机器上的RAM,则RAM差异将产生巨大差异。如果数据适合两台主机的RAM,那么添加RAM几乎没有什么好处。如果热数据不适合任何一台机器上的RAM,则磁盘I / O性能变得比RAM更重要,主要是随机读取I / O和fsync()刷新率。
因此。使用您的预期数据大小模拟工作负载的基准,并查看。
Heroku discusses cache in more detail here。
(根据我的个人资料,我在与Heroku相同的空间工作,所以我不愿意以某种方式表达强烈意见。)