- PR -

32bit と 64bit の差異

1
投稿者投稿内容
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2006-11-10 00:06
お世話になります.

調べていたのですが,明快に「こう」という答えに行き着かなかったので,
ご存じの方,ご教示ください.

RHEL3 と RHEL4,あるいはそれぞれの AS と ES では,
実際に使える実 memory の容量はどのくらいになるのでしょうか?
あるいは kernel 2.4 と 2.6 の差異という認識で良いのでしょうか?

また,件名のとおり,32bit と 64bit では明確な差はあると思うのですが,
これは Distribution によって拡張されたりしているのでしょうか?

これらについて有益な情報源などありましたら是非ご教示ください.
Console
ベテラン
会議室デビュー日: 2005/09/10
投稿数: 65
お住まい・勤務地: 石川県金沢市
投稿日時: 2006-11-10 00:55
こんばんわ。

引用:

RHEL3 と RHEL4,あるいはそれぞれの AS と ES では,
実際に使える実 memory の容量はどのくらいになるのでしょうか?
あるいは kernel 2.4 と 2.6 の差異という認識で良いのでしょうか?



CPUアーキテクチャにも依存しそうですね。
kernel 2.6 では、CONFIG_HIGHMEM64G なるオプションが存在します。
(実際に4G以上のメモリを使ったことはありませんが)

つまり、kernel の version とパッチがどこまで適用されているによって
異なるのではないでしょうか?

2.4 から 2.6 への変更時に devfs から udev に変わった事以上の認識がありません。
深く検証してみるのも面白いかも知れませんね。

また、 2.5 の変更を調べてみるのもありかも知れません。

引用:

また,件名のとおり,32bit と 64bit では明確な差はあると思うのですが,
これは Distribution によって拡張されたりしているのでしょうか?



単純に int が 64bit になるとアドレス空間が広くなりそうな気がします。
32bitでは、ファイルオフセットに2Gの壁が一応存在しますし、
linux自体が1Gの壁があるという噂(デマ?)も存在します。
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2006-11-10 01:01
「使えるか」という観点で言えば、32bit版ではカーネルがPAEオプションを
有効にしてコンパイルされているかどうか、という点にしか違いがないので。
・PAE無効なら4GB
・PAE有効なら64GB
ただし、これは物理アドレス空間のサイズなので、実際にメモリのマッピングに
利用できるサイズはもっと小さい:具体的な数字はハードウェア構成次第。
PAE無効なら、3.5GB前後になるのが普通です。

64bit版の場合、ボトルネックになるのはOSではなくハードウェアのほう。
現状のx86_64では物理アドレスは40bitに制限されているので最大1TBまで。
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2006-11-10 01:07
引用:

Consoleさんの書き込み (2006-11-10 00:55) より:
kernel 2.6 では、CONFIG_HIGHMEM64G なるオプションが存在します。


それは 4/4 split のオプションです。
利用できるメモリのサイズには違いはありません。
パフォーマンスには違いが出る可能性があります。

引用:

linux自体が1Gの壁があるという噂(デマ?)も存在します。


1GBに壁は存在します。現在、1GB超えのオプションが有効になっていない
ディストロはまず無いでしょうけど。
ただし、有効になっていても1GBを超えるとメモリアクセス性能は
やや低下します。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2006-11-10 08:39
おはようございます.

お二人ともありがとうございます.
引用:

ぽんすさんの書き込み (2006-11-10 01:01) より:

・PAE無効なら4GB
・PAE有効なら64GB


とすると,hardware 構成という制約を無視すると
「とりあえず 64GB まで使うことはできる」という認識で良いのでしょうか?
引用:

64bit版の場合、ボトルネックになるのはOSではなくハードウェアのほう。
現状のx86_64では物理アドレスは40bitに制限されているので最大1TBまで。


この話の筋からすると,32bit の場合は 4GB を超える memory を搭載している場合,
OS の動作に何らかの制約やボトルネックが生じるんでしょうか?
それらしい話はいくつか散見しましたが,
具体的に「こうだから」と説明されているものが見あたりませんでした.
MyTime
常連さん
会議室デビュー日: 2003/01/29
投稿数: 40
お住まい・勤務地: 静岡県
投稿日時: 2006-11-10 19:02
 Red Hat,Inc.が提供しているkernelでは以下のようになっています。

(1) AS,ESの違いについて
 AS,ESはバイナリーレベルで同一のkernelが提供されていますので、
同じタイプのkernelを使用すれば、同じ容量のメモリを使用するこ
とは可能です。
 ただし、ESについては、以下の上限を超えると、Red Hat,Inc.の
サポート外になり、起動時に警告メッセージが表示されます。

RHEL2.1 4GB
RHEL3 8GB
RHEL4 16GB

(2) kernelのタイプによる違いについて

x86版の場合以下のようになっています。
1) RHEL2.1
kernel 4GB
kernel-smp 4GB
kernel-enterprise 16GB(PAE対応kernel,ASのみ)
2) RHEL3
kernel 4GB
kernel-smp 16GB(PAE対応kernel)
kernel-hugemem 64GB(PAE対応kernel)
3) RHEL4
kernel 4GB
kernel-smp 16GB(PAE対応kernel)
kernel-hugemem 64GB(PAE対応kernel)

注意:
1) 1プロセスが認識可能なメモリは4GBになります。

2) kernel-hugememでは、ユーザスペースが約3.8GBです。
kernel/kernel-smpでは、ユーザスペースが約3GB使用可能です。
つまり、kernel-hugememでは、より多くのメモリを消費する
プロセスを起動可能です。

3) PAE対応のkernelはそうでないkernelを使用した場合よりも、
最大で50%の性能低下があります。これは、PAE対応のkernel
では、PTEの階層が1つ多いために、TLBがミスヒットした場合の
ペナルティーが大きいためです。また、メモリを大量に管理し
ているため、TLBのヒット率そのものがあまり高くありません。
(特にIntel製CPUを使用している場合)
もっとも、スワップが動作することにより性能低下するような
環境では、大量の物理メモリを搭載して、PAE対応のkernelを
使用することによりスワップを回避した方が高性能になります。

4) PAE対応のkernel-smp/kernel-enterpriseは、64GBのメモリを
認識しますが、PTEの領域が巨大になり、lowmemのリソース不
足が発生するため、正常に64GBのメモリを管理できません。
現実的には、システムを安定動作させるには、12GB未満のメモ
リで運用することになります。
実際、富士通などのベンダーは12GB未満のメモリで運用する
ことを要求しています。

AMD64/Intel64版の場合(あまり自身がないが・・・)
1) RHEL3
kernel 64GB/128GB (実装しているCPUのソケット数に依存)
2) RHEL4
kernel 64GB
kernel-smp 64GB/128GB (実装しているCPUのソケット数に依存)
kernel-largesmp 64GB〜1TB (実装しているCPUのソケット数に依存)

 注意:
1) Intel製CPUを使用している場合には、64GBが上限になります。

ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2006-11-10 19:54
すでに詳しく説明されているので、一点だけ補足を。

kernel-hugemem が、上に書いた 4/4 split オプションを有効にしたカーネルです。
lowmemが圧迫されるのを回避した代償として、システムコール発行に約2msかかる
(ユーザ空間/カーネル空間の切り替え時にTLBフラッシュが必要となるため)
という巨大なペナルティが生じます。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2006-11-10 21:41
[/quote]
MyTimeさんの書き込み (2006-11-10 19:02) より:
[/quote]
引用:

ぽんすさんの書き込み (2006-11-10 19:54) より:


丁寧にご説明いただいて大変感謝しております.
理屈も含めて非常によくわかりました.

結局「使える」ことと「安定している」とか「application まで含めて対応」
という点は一致しないのですね.
やはり,対応している限りは素直に 64bit を使うのが幸せだと理解できました.

ありがとうございました.
1

スキルアップ/キャリアアップ(JOB@IT)