Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 低Postgres缓存命中率-数据大小还是其他?_Postgresql_Heroku_Postgresql 9.1_Postgresql 9.2_Heroku Postgres - Fatal编程技术网

Postgresql 低Postgres缓存命中率-数据大小还是其他?

Postgresql 低Postgres缓存命中率-数据大小还是其他?,postgresql,heroku,postgresql-9.1,postgresql-9.2,heroku-postgres,Postgresql,Heroku,Postgresql 9.1,Postgresql 9.2,Heroku Postgres,我刚刚将我的Heroku postgres数据库从Kappa计划(800MB内存,postgres 9.1)升级到Ronin计划(1.7GB内存,postgres 9.2),但性能有所下降 按照指南,我检查了一下,缓存命中率甚至比我们的Kappa数据库更低(现在约57%,以前约69%)。我们的应用程序设计应该还行,因为我们以前看到缓存命中率约为99% 我们的建议是,数据集应该能够放入内存,这现在应该不是问题了——我们的数据大小是1.27GB(至少大部分应该适合) 缓存命中率低是因为数据大小,还是

我刚刚将我的Heroku postgres数据库从Kappa计划(800MB内存,postgres 9.1)升级到Ronin计划(1.7GB内存,postgres 9.2),但性能有所下降

按照指南,我检查了一下,缓存命中率甚至比我们的Kappa数据库更低(现在约57%,以前约69%)。我们的应用程序设计应该还行,因为我们以前看到缓存命中率约为99%

我们的建议是,数据集应该能够放入内存,这现在应该不是问题了——我们的数据大小是1.27GB(至少大部分应该适合)


缓存命中率低是因为数据大小,还是我可以研究其他方面?或者仅仅是数据库缓存未完全预热的情况?(已经快2天了)

如果您有足够的内存,并且没有在数据库上运行太多其他内容,那么共享的\u缓冲区可能会发生变化。共享缓冲区所做的是缓存频繁使用的数据,以便在并非所有数据库都适合内存的情况下,使数据始终最大化

不幸的是,此缓存的性能不如操作系统缓存。如果您的数据很容易放入内存,请确保
有效缓存大小足够大,然后尝试减少
共享缓冲区


请注意,这不是一个神奇的子弹。
shared_buffers
的适当大小取决于您拥有的数据量、占用的空间、查询类型、用于排序等操作的内存量。您可以随时尝试使用此功能,以找到当前设置和数据库的最佳位置。

有效缓存大小的旧值和当前值是多少?还有,你的统计数据是最新的吗?(导入/转换后是否运行了
VACUUM ANALYZE
)@berylium effective\u cache\u size 900000kB/1170000kB,work\u mem 50MB/10MB(before/after)@wildplasser我认为heroku有一个自动真空守护程序,但很好,你打开了它-检查了last\u VACUUM和last\u autovacuum,发现只有几个表有它。现在运行它,将看到它是如何运行的。编辑:完成,缓存命中率仍然大致相同。因此它不是有效的缓存大小。你试过增加工作量吗?