我在 FreeBSD 7.1 64 位安装上有一个相对较小且运行良好的 MySQL 5.1 数据库。由于我们的备份软件和 FreeBSD 不兼容,我不得不将数据库移至 Linux 服务器。
由于我们在这里的其他所有东西上都运行 Debian,所以我将满足于此。最大的问题是我应该运行 32 位还是 64 位。这是一个虚拟化环境,因此硬件在其中不起作用。
使用 64 位 Linux + 64 位 MySQL 并分配少量内存(比如说 512M 是极限)是否会获得性能提升(或损失)?我是否应该一直使用 32 位,直到我需要为 MySQL 分配超过 2GB 的 RAM 的那一天(PAE 没有帮助,32 位 MySQL 不能使用超过 2GB 的内存)?
答案1
你自己已经回答了这个问题。
如果您 100% 确定在当前硬件生命周期内 RAM 使用量不会超过 2GB,那么您可以继续使用 32 位,当需要更换硬件时,无论如何您都必须重新考虑。
鉴于目前的硬件市场,我认为没有理由不使用 64 位,在出现不可预见的增长时,这将是安全的一面,这对于缓存和实际数据大小都是如此。毕竟,完全迁移所需的时间会比仅仅拆除机箱并添加一些 RAM 要长一些。
缺点可能是 64 位系统上的指针会多使用大约 30% 的内存,但如果您真的保持内存使用量较小,这不会对您造成太大伤害,但另一方面,如果您增长,您将能够更快地增长(至少只要您可以保持在同一硬件盒上)
答案2
64 位。如果出于某种原因,您收到的请求使数据库需求超出 512,您只需添加一些便宜的 RAM 即可。无需重新安装等。
答案3
由于数据库内部使用了 64 个整数,因此无论使用多少内存,在 64 位操作系统上运行 Mysql 5 或更高版本通常都是值得的。除非您尝试将安装装入极小的 RAM 中,否则几乎没有理由选择 32 位 Mysql 安装。
答案4
我认为比选择32位还是64位更重要的是:
- 确保您使用的是 LVM 或某种允许您通过快照备份数据的存储技术。(是的,即使使用 MyISAM,您也可以使用锁定、快照、释放来刷新)
- 我可以将 32 位系统上的活动数据库移动到 64 位系统上更强大的数据库,停机时间为 0-5 分钟。
- 有了这种灵活性,我会选择从 32 位开始。如果没有,我可能会选择 64 位以确保安全。
- 考虑一下系统上还需要运行什么。您可能会发现您想要运行的其他一些程序只能在 32 位上运行。
这就是我做出决定的方式。我不会“选择”一种架构。我会将我的案例与这样的逻辑树进行比较。