Solaris では ramdiskadm というコマンドで ramdisk を作成できるのだが、デフォルトでは作成できる最大サイズが搭載メモリの25%までになっている。
# mdb -k
> rd_percent_physmem/D
rd_percent_physmem:
rd_percent_physmem: 25
例えば、48GB のメモリを搭載したシステムで、20GB の ramdisk を作成しようとすると、"Resource temporarily unavailable" といわれて失敗する(48GB の 25% なので 12GB までしか作成できない)。ちゃんとメモリが空いてるかどうかも要確認。
# ramdiskadm -a test 20g
ramdiskadm: couldn't create ramdisk "test": Resource temporarily unavailable
この場合、上限を 25% から引き上げてあげればうまくいく。実際には /etc/system に "ramdisk:rd_percent_physmem" のエントリを加えて再起動する。例として50%へ変更する場合は以下のようになる。
set ramdisk:rd_percent_physmem = 50
確認。
# mdb -k
> rd_percent_physmem/D
rd_percent_physmem:
rd_percent_physmem: 50
再実行。
# ramdiskadm -a test 20g
/dev/ramdisk/test
今回はうまくいった♪