750 MBのRAMで64ビットLinuxを実行する:それだけの価値はありますか?


13

DebianサーバーVPSがあり、プロバイダーは64ビットDebian 5をインストールしました。750MBのRAMしかなく、変数が64ビットシステムでより多くのRAMを使用すると聞いた場合、32ビットインストールを要求する必要がありますか?


2
実際に実行する内容に依存します。負荷を試して、RAMが十分かどうかを確認します。
レナン

実行:Postgres、Apache、Tomcat。
Jhonnytunes

1
注:後でより多くのRAMにアップグレードすることに決めた場合、32ビットで問題が発生する可能性があります(4GBの制限を超える棒高跳びのPAEがありますが、それ自体にオーバーヘッドがあります)。
Piskvorは、

ハイパーバイザー用にインストールしたカスタムカーネルを使用したVPSホストは両方とも、OSのバージョンに固執する必要がある可能性があります。
ラップ

回答:


16

短い答え

64ビットソフトウェアと32ビットソフトウェアでは、変数が2倍のスペースを取ることはありません。32ビットOSへの切り替えによる潜在的なメモリゲインは、努力する価値はありません。

長い答え

数字は大きくてもかまいませんが、だからといって数字が大きくなるわけではありません。また、これは文字列ではなく数値に適用され、文字列は(一般的に)アプリケーションで最も多くのメモリを消費します。

さらに、多くのアプリケーションは、Cなどの言語のようにint、32ビット未満を含む任意のサイズにすることができるため、使用する数値のサイズを明示的に指定します。さらに、64ビットLinuxマシンでは、C intは32ビットです。したがってlong long、64ビットの数値を取得するように明示的に要求する必要があります。

そのため、基本的に、アプリケーションは64ビット用にコンパイルされたという理由だけで、より多くのメモリを使用することはありません。

編集
64ビットのFirefoxは2倍のメモリを使用するというGillesの主張に応えて、システムで32ビットと64ビットのFirefoxを比較しました。http://acid3.acidtests.org/に
開いている5つのタブを起動してテストし、テストを3回実行しました(32ビットで1回、64ビットで1回、その後2回繰り返します)。このサイトを選択したのは、JavaScriptを集中的に使用し、静的コンテンツを使用しているためです(ページの各レンダリングは同じデータを提供します)。

最終実行時:

  • 32ビット:173,244kb rss / 918,348kb virt

  • 64ビット:184,588kb rss / 966,624kb virt

はい、より広範なテストを行うことはできますが、この2つの間のサイズの違いはわずかであることを十分に実証していると思います。


1
これは非常に誇張されています。一部のプログラムは、64ビットモードでほぼ2倍のメモリを使用します。これは、操作するデータの種類によって異なります。FirefoxとChromeが2倍以上のメモリを消費することに気付きました(理由は調査したことがありません:コードサイズ?)。Apacheの場合、余分なメモリ消費量は少ないと思われます(ただし、測定していません)。
ジル「SO-悪であるのをやめる」

@gilesはほとんどありません。32ビットと64ビットのFirefoxを起動しました。32ビットは、起動後に133,340kbを使用します。64ビットは、起動後に133,412kbを使用します。
パトリック

最近改善されたかもしれません。Firefox4で最後に確認したと思います。そうでなければアイドル状態のシステム(64ビットプログラムのみを実行し、共有ライブラリの一部が既に読み込まれているため64ビット実行可能ファイルを優先します)いくつかのタブ(一部のJS、Flashなし)を読み込んだ後の空きメモリの量を比較:(free_memory_with_ff_64-free_memory_without_ff)> 2 *(free_memory_with_ff_32-free_memory_without_ff)が見つかりました。
ジル 'SO-悪であるのをやめる

4
@Gillesテストにはいくつか欠陥があったと思います。firefoxが最後の小さなデータをすべて整数として保存し(サイズを変更しない文字列なし)、すべての整数が32ビットから64ビットに変更されたとしても、サイズは最大で2倍になります。2倍以上の説明はありません。
パトリック

2
「はい、数字を大きくすることはできますが、それは数字が大きくなるという意味ではありません。」-ただし、以前は32であったすべてのポインターが確実に64ビットになります。
Rup

5

RAMが4ギガバイト未満のシステムには、64ビットではなく32ビットのインストールを選択します。

64ビットDOESは、ポインターの性質により、より多くのメモリを使用します。これは、バニラLAMPインストールの場合、約10〜50メガバイト余分になります。

RAMが制限されているシステム(たとえば256meg)では、これはかなりのチャンクになる可能性があります。

技術的には、PAEでも同じことが64gigまで適用されますが、アプリケーションのアドレス可能なスペースはいずれにしても4gigに制限されます。したがって、4gigを超えるものでは、特にPAEのオーバーヘッドに関連するパフォーマンスの向上を活用するために、64ビットをお勧めします。

一言で言えば:<4gig = 32bit | > 4gig = 64ビット。


3

プロバイダーが64ビットDebian 5をインストールした場合、このバージョンを使用することをお勧めします。

64ビットと32ビットの違いは、メモリマネージャーだけではありません。


2

64ビットシステムの利点は、より高速に実行されるいくつかの数値演算アプリケーションを除き、4GBを超えるメモリに対応できることです。一部のアドレス空間はカーネルに予約されているため、プロセスは約2GBまたは3GBのアドレス空間のみを取得します(カーネル構成に応じて多かれ少なかれ)。データベースとWebサーバーのユースケースでは、スワッピングをあまり計画しておらず、多くの数値計算を実行しません。したがって、750MBのRAMのみでは、64ビットシステムを使用する利点はありません。

コードサイズは、i386(32ビット)コードとamd64(64ビット)コードでほぼ同じです。64ビットプログラムで使用されるデータメモリはいくらか大きくなります。どのくらい大きくなるかは、アプリケーションによって異なります。あなたのユースケースには大きな違いは見られないと思いますが、大きな違いはありません。

64ビットを使用しても少しのコストがかかり、メリットがないことを考えると、32ビットシステムを使用することをお勧めします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.