私は新しいサーバー (64 ビット Debian) をセットアップしていましたが、apache プロセスをできるだけ小さくしようとして、不要なモジュールを無効にしました。次に、より多くのモジュールがオンになっている 32 ビット Debian ボックスで、pmap の出力を apache と比較しました。64 ビット マシンで「最適化された」ものは、はるかに多くのメモリを消費しているように見えて、非常に驚きました。
pmap -d (要約行のみ) は以下を示します。
64bit: mapped: 188584K writeable/private: 14680K shared: 72K
32bit: mapped: 33824K writeable/private: 7304K shared: 888K
出力をさらに詳しく見ていきます。.so ライブラリのメモリ割り当てに違いがあります。libcを例にとると...
64 ビット:
00007f9988e8d000 1380 r-x-- 0000000000000000 008:00001 libc-2.11.3.so
00007f9988fe6000 2044 ----- 0000000000159000 008:00001 libc-2.11.3.so
00007f99891e5000 16 r---- 0000000000158000 008:00001 libc-2.11.3.so
00007f99891e9000 4 rw--- 000000000015c000 008:00001 libc-2.11.3.so
32ビット:
b7501000 1364 r-x-- 0000000000000000 008:00001 libc-2.7.so
b7656000 4 r---- 0000000000155000 008:00001 libc-2.7.so
b7657000 8 rw--- 0000000000156000 008:00001 libc-2.7.so
したがって、違いは 64 ビット出力の 2 行目です。Mode="-----" を使用したこれらの割り当ての説明が見つかりません。すべての .so には 1 つあるようで、サイズは常に 2044 または 2048 です。
これは 64but マシンでのメモリ割り当てと関係がありますか? RAM 1 GB あたりの proc は、32 ビット マシンよりもかなり少なくなりますか?