我有一台带有16GB RAM的生产服务器,配有32位CentOS安装。
托pipe在这台服务器上的网站每天的stream量越来越大,这导致了一些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 ***
我可以用32位操作系统来存活吗?还是我需要安装64位版本?
你可以在32位的CentOS安装中生存下来。 但是,正如警告所说,使用32位操作系统意味着MySQL实际上不能使用系统中安装的所有(甚至大部分)RAM。
对我来说似乎是一种浪费。 如果硬件支持64位,我肯定会replace64位的32位操作系统,是的。 您可能首先需要做一些testing,并且/或者使用第二台服务器来查明当您切换操作系统时会发生什么事情,因为总会有这样的事情发生。
严格来说,你不需要安装一个64位的操作系统,但你绝对应该。 也许更快,而不是稍后,在32位操作系统的RAM限制开始导致您的问题之前。
32位二进制的最大虚拟地址空间是2 ^ 32(4GB) – 一旦你达到这个限制,你就无处可去。
你应该切换到64位? 绝对。
不仅不会再遇到内存障碍,通用的64位指令集的性能通常比通用的32位(由于x86的年龄大)更好,因此,切换到x64将会使内存和计算速度。
很明显,如果你自己编译x86二进制文件到你的确切CPU的arch目标上,你可以发现与x64相比,性能并没有那么不同,但是,因为你使用了预先打包好的CentOS二进制文件,显然这不是案件。
尽pipe答案已被接受,但这里讨论的内容却有很多缺失。
第一:Alexandru没有提到在这台机器上运行的是什么数据库引擎,也没有提到它是专用的DBMS服务器,还是运行其他的东西,数据的大小以及物理I / O / VFS使用情况。
对于一个专用的基于MyISAM的服务器来说,你不会从增加内存寻址中获得很多好处。 VFS和MySQL一样可以cachingI / O。 如果是OTOD,那么通过golly,是的:在专用机器上的innodb缓冲池应该是专用机器上80%的物理内存。
无论使用哪种DBMS,在对DBMS进行比较操作时,切换到64位具有显着的性能优势 – 多less取决于您是在执行大量基于哈希或基于B树的查找。
如果使用同一个盒子进行networking处理,那么,如果你在盒子上使用了大量的SSL,那么最大的区别就是 – SSL是关于计算大数量的 – 所以即使没有近期英特尔芯片的AES加速,也有一个改进那里也是。