Go for it!

モーターサイクルと自転車とキャンプの日々。

FreeBSD 6.4Rでメモリが足らなくなる

おしごとで久しぶりにFreeBSDを触りました。ハマったのでメモ。

経緯。

  1. CPANからImageMagick(PerlMagick?)を入れようとする
  2. OpenMPがないと怒られる
  3. portsからgcc44入れようとする
  4. gcjコンパイル時にout of memoryでストップ

limitでdatasizeを確認すると512MB。

%limit
cputime      unlimited
filesize     unlimited
datasize     524288 kbytes
stacksize    65536 kbytes
coredumpsize unlimited
memoryuse    unlimited
vmemoryuse   unlimited
descriptors  11095 
memorylocked unlimited
maxproc      5547 
sbsize       unlimited

これを変更するにはsysctlをつついてもダメで、カーネルオプションを変更しなければならないらしい。カーネルオプションの変更はloaderから行うので要再起動。リモートマシンなのに…。

/boot/loader.confに以下を追加して、祈りながらreboot.

kern.maxdsiz="2G"

数分後にping応答があったので無事に復活。

いまはこんなかんじ。

%limit
cputime      unlimited
filesize     unlimited
datasize     2097152 kbytes
stacksize    65536 kbytes
coredumpsize unlimited
memoryuse    unlimited
vmemoryuse   unlimited
descriptors  11095 
memorylocked unlimited
maxproc      5547 
sbsize       unlimited

無事にgcc44もコンパイルが通りましたとさ。

で、CPANからImage::Magickを入れようとしたらやはりopenmpがないと言われる。

ウーンと悩みながらportsのImageMagickを覗いてみるとUSE_PERL5=yesって書いてあるし、ひょっとしてgcc44をコンパイルしたのって無駄足だったのかも…。まあいいか。

[ad#text_wide]