我们最近为数据库服务器购买了一些新硬件,我们打算将其专用于 PostgreSQL 的运行。但是现在我们还需要运行 MySQL,因为我们想要使用的某些软件仅支持该数据库。由于这台机器上的存储最适合托管数据库,而且我们目前没有购买更多硬件的预算,因此我们考虑在同一台服务器上运行它们。
有哪些注意事项或最佳做法是我们应该注意的?
答案1
这实际上取决于您的负载。MySQL 和 PostgreSQL 之间的最大区别在于,MySQL 在启动时预先分配其数据缓冲区,然后自行管理它们,而 PostgreSQL 则依赖于 OS 文件缓存。想象一下,当 OS 文件缓存变得太小时,PostgreSQL 性能就会下降。同一主机上的几个活动 MySQL 数据库“知道”彼此,因为它们共享相同的内部数据结构,但 PostgreSQL 通常不希望在同一主机上并发 RDBMS。我在相当重的负载下在同一台主机上运行 PostgreSQL 和 MySQL,最终出现 OS 文件缓存不足的情况,不得不将 PostgreSQL 移至单独的主机。
答案2
关于这个问题,我唯一有用的建议是:将 Postgres 事务日志文件放在与 Pg 和/或 MySQL 数据存储区不同的物理磁盘上,它们可能可以共存。事务日志是巨大的顺序写入块,而 Pg 将执行很多很多如果您可以通过隔离保持该 IO 连续性,而不是让它与所有其他数据存储 IO 随机化,那么效果会更好。
答案3
我使用这两种数据库引擎运行过中等规模的数据库,发现它并不比同一引擎上两个或多个活动数据库差。无论是哪个使用内存缓存或磁盘带宽,还是只有一个使用量很大,似乎都无关紧要。
答案4
如果不知道您期望的负载类型,就很难给出真正有意义的答案,但简而言之:
在同一台机器上运行两个系统并没有真正的技术问题,事实上许多(大多数?)共享主机提供商正是这样做的。