- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一台配备 64GB RAM 和 PostgreSQL 9.2 的服务器。它是一个只有 4GB 的小型数据库“A”,大约每小时只查询一次,还有一个大约 60GB 的大型数据库“B”,每秒查询 40-50 次!
正如预期的那样,Linux 和 PostgreSQL 会用更大的数据库数据填充 RAM,因为它被更频繁地访问。
我现在的问题是对小型数据库“A”的查询很关键,必须在 <500 毫秒内运行。日志文件显示每天有几个查询耗时 >3 秒。如果我手动执行它们,它们也只需要 10 毫秒,所以我的索引没问题。
所以我猜那些长跑者发生在 PostgreSQL 必须从磁盘加载小数据库索引 block 的时候。
我已经有了某种“缓存暖机”脚本,它每秒向小型数据库重复“SELECT * FROM x ORDER BY y”查询,但它浪费了大量的 CPU 能力,并且只稍微改善了这种情况。
关于如何告诉 PostgreSQL 我真的希望那个小数据库“粘”在内存中还有更多想法吗?
最佳答案
PostgreSQL 不提供将表固定在内存中的方法,尽管社区肯定会欢迎那些愿意致力于深思熟虑、经过测试和基准测试的提案,以允许那些愿意真正支持这些提案的人代码。
此时您对 PostgreSQL 的最佳选择是为响应时间关键型数据库运行一个单独的 PostgreSQL 实例。给这个 DB 一个足够大的 shared_buffers,整个 DB 将驻留在 shared_buffers
中。
不要在 ramdisk 或其他非持久存储上创建表空间,并将需要不经常但快速访问的数据放在那里。所有表空间必须是可访问的,否则整个系统将停止;如果您丢失了一个表空间,您实际上就丢失了整个数据库集群。
关于PostgreSQL 性能 : keep seldomly used small database in memory while server busy with big database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17704871/
在AWS RDS上运行的Postgres中,有时(每3个月一次)会发生死锁。症状:应用程序停止正常工作,DBLoadCPU比正常增加几倍。应用程序重启没有帮助,数据库重启解决了问题。在应用程序日志中,
我有一台配备 64GB RAM 和 PostgreSQL 9.2 的服务器。它是一个只有 4GB 的小型数据库“A”,大约每小时只查询一次,还有一个大约 60GB 的大型数据库“B”,每秒查询 40-
我是一名优秀的程序员,十分优秀!