32ビットのCentOSインストールに付属する16GBのRAM)の本番サーバーがあります。
このサーバーでホストされているWebサイトは、毎日トラフィック量が増加しているため、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ビットOSで生き残ることはできますか、それとも64ビットバージョンをインストールする必要がありますか?
32ビットのCentOSインストールで問題なく生き残ることができます。ただし、警告にあるように、32ビットOSを使用すると、MySQLはシステムにインストールされているRAM)のすべて(またはほとんど)を実際に使用できなくなります。
私には無駄のようです。ハードウェアが64ビットをサポートしている場合は、確かに32ビットOSを64ビットOSに置き換えます。おそらく、最初にいくつかのテストを実行するか、2番目のサーバーを使用して、OSを切り替えたときに何が壊れるかを調べる必要があります。これは、常に何かが行われるためです。
厳密に言えば、64ビットOSをインストールする必要はありません必要ですが、絶対にインストールする必要があります。そして、おそらく、32ビットOSのRAM制限が問題を引き起こし始める前に、後でではなく、より早く。
32ビットバイナリの最大仮想アドレス空間は2 ^ 32(4GB)です。この制限に達すると、どこにも行きません。
64ビットに切り替える必要がありますか?絶対に。
メモリバリアにぶつからないだけでなく、汎用64ビット命令セットは一般に汎用32ビットよりもパフォーマンスが優れているため(x86の時代が長いため)、x64に切り替えると両方のメモリが向上します。と計算速度。
明らかに、正確なCPUのArchターゲットを使用してx86バイナリを自分でカスタムコンパイルした場合、x64と比較したパフォーマンスはそれほど変わらないことがわかりますが、事前にパッケージ化されたCentOSバイナリを使用しているため、明らかにそうではありません。場合。
回答は受け入れられましたが、ここでの議論には多くの欠落があります。
まず、Alexandruは、このマシンで実行されているデータベースエンジン、専用のDBMSサーバーであるかどうか、他のものも実行されているかどうか、データのサイズ、物理I/O/VFSの使用状況に関する統計については言及していません。
専用のMyISAMベースのサーバーの場合、より多くのメモリをアドレス可能にすることで大きなメリットは得られません。 VFSは、MySQLと同じようにI/Oをキャッシュするのに適しています。 OTOHがinnodbだった場合、それならうれしいことです。専用ボックスのinnodbバッファープールは、専用マシンの物理メモリの約80%である必要があります。
使用するDBMSに関係なく、64ビットに切り替えると、DBMSで比較操作を実行するときに、パフォーマンスが大幅に向上します。これは、ハッシュベースのルックアップとBツリーベースのルックアップのどちらを実行するかによって異なります。
同じボックスがWebサービスに使用されている場合、大きな違いは、ボックスで多くのSSLを使用している場合です-SSLはすべて大きな数を計算することです-したがって、最近のIntelチップでAESアクセラレーションがなくても、改善がありますそこにも。