生产服务器有 16GB 内存和 32 位操作系统。替换为 64 位操作系统?

Ale*_*lin 7 mysql 64-bit centos 32-bit

我有一台带有 16GB RAM 的生产服务器,它安装了 32 位 CentOS。

该服务器上托管的网站每天的流量都在增加,这导致了一些 MySQL 性能问题。我运行mysqltuner.pl并收到以下消息:

[!!] Switch to 64-bit OS - MySQL cannot currently use all of your RAM
  *** MySQL's maximum memory usage is dangerously high ***
  *** Add RAM before increasing MySQL buffer variables ***
Run Code Online (Sandbox Code Playgroud)

我可以使用 32 位操作系统,还是必须安装 64 位版本?

Hop*_*00b 24

安装 32 位 CentOS 后,您可以继续生存。但是,正如警告所说,使用 32 位操作系统意味着 MySQL 无法实际使用系统中安装的所有(甚至大部分)RAM。

对我来说似乎是一种浪费。如果硬件支持 64 位,我肯定会用 64 位操作系统替换 32 位操作系统,是的。您可能想先进行一些测试,和/或使用第二台服务器来找出在您切换操作系统时会出现什么问题,因为总会有一些事情发生。

严格来说,您不需要安装 64 位操作系统,但您绝对应该。在 32 位操作系统的 RAM 限制开始给您带来问题之前,可能很快,而不是更晚。


Oli*_*pro 13

32 位二进制文​​件的最大虚拟地址空间为 2^32 (4GB) - 一旦达到此限制,您将一事无成。

你应该切换到 64 位吗?绝对地。

您不仅不会再遇到内存障碍,通用 64 位指令集通常比通用 32 位指令集具有更好的性能(由于 x86 的时代),因此,切换到 x64 将在内存方面获得收益和计算速度。

显然,如果您使用您的确切 CPU 的架构目标自己自定义编译 x86 二进制文件,您很可能会发现与 x64 相比的性能并没有什么不同,但是,由于您使用的是预先打包的 CentOS 二进制文件,显然这不是案件。

  • @HopelessN00b 是的,使用 PAE,内核可以处理所有 16GB 的 RAM,但任何特定进程仍然限制在小于 4GB 的范围内。 (5认同)
  • IIRC 您也可以在应用程序级别实现 PAE;并且在 x86-64 硬件普及之前,它曾经在 DB 和其他需要内存的服务器应用程序中相当普遍。然而,现在无处不在的 PAE 代码分支正在被弃用/放弃,因为缺乏足够的使用来证明继续开发工作是合理的。 (4认同)