アシアルブログ

アシアルの中の人が技術と想いのたけをつづるブログです

GeForceと4GBのメモリ

こんにちは。Windowsはゲーム専用な門脇です。
普段はDebian GNU/Linuxを愛用していますが、DirectXが(ry

先日、自宅PC(Athlon64 3800+, GeForce7900GTX, その他割愛)のメモリを増設して4GB(2GBx2 DualChannel)にしました。
最近メモリが安くなって、2GBx2でも6000円程度で買えるようになったのでつい衝動買いを・・・。

さっそくPCに搭載し、ゲーム専用になっているWinXP(32bit)を起動すると正常に動作。
(もちろん、3.4GBしか認識してません w)

次に、普段使い用Debianの方を立ち上げ、free -m の実行結果を見てニヤニヤ。
しっかり4GB認識しています。

とりあえず、メモリを食う作業でもしてみようかと、startxを実行・・・なぜかブラックアウト。
xorg.confを再生成してみてもブラックアウトか、緑色のノイズが表示されだけ。
vesaドライバを使うと正常に表示されるので、GPUが壊れているわけでもない。
Nvidia公式の最新ドライバをインストールしてもかわらず。

しばらく調べてみても解決せず、試しにググってみると・・・
なにやら、4GB以上認識しているとハングアップするらしい。

つまり、メモリの量が問題だったようです。

/boot/grub/menu.lstのkernel行に、


 mem=3900m

を追加してstartxをすると、無事に起動しました。

まさかこんな落とし穴があったとは・・・
これから増設しようとしている人は気をつけてください。
(Windowsな人の場合は3.4GB制限がなくのであまり問題にならなかったようです。もちろん、4GB以上認識させると起こります)


さて、せっかくメモリを4GBに増設したので(実質3900MBですが)、その恩恵を受けるためメモリを消費するプログラムを動かしたいと思います。
一番に思いつくのは画像処理。無駄に8000x6000位の画像を編集とか、レイヤを作りまくるとか・・・メモリは使うがはっきり言って無意味。(それ以前に絵が描けない orz)
あとはディスクキャッシュに・・・無意味ではないが地味。

簡単に思いつくのはramdisk。2.5GBくらい/tmpに割り当てても問題なさそうなので、


mount -t tmpfs -o size=2500m tmpfs /tmp

こんな感じで2500MB分確保します。(tmpfsなので使用した分だけ領域を確保します)
多少は体感速度が上がる・・・かもしれません。


そのうちに、Xenを入れてディスクイメージをramdiskに入れてみる実験をしてみようかと画策中。