The Nameless City

何故か製薬やSAS関連のブログ、の予定。

WORKライブラリをメモリ上に載せる方法。

SSDが安定するのですが。Fusion-IOとかの大容量SSDも出てますし、256GBでも問題ないですし。
メモリだと、大容量メモリに個人用PCだとそれほど対応していないというのもあります。家のマシンだとほぼ16GB積んでいるんですが、これから上になるとレアモノだったりノートPCに刺さらなかったりでして。本当は64GB積みたいです。


MEMLIBシステムオプションをconfigファイルに記述する事で、WORKライブラリをメモリ上に乗っける事が出来ます。
当然ながら、以下のメリットがあります。

起動が早くなる
WORKライブラリをメモリ上に乗っけるので、物理に実際にフォルダを切る事など考えると、早いです。
I/O速度が早くなる
SASはとにかくDISK I/Oが実行時間を決定してしまう為、そこが早い場合には当然ながら早くなります。


デメリットは、「利用ユーザがメモリページをロックする権限を追加しなければいけない」(ローカルセキュリティポリシーの修正)のと「UAC無効化が必要」なのと、まあ、そうやってメモリを使うと当然ながら起動プロセス毎にメモリがその分減ります。
(参考:18274 - When you use the MEMCACHE or MEMLIB system options the following error message occurs "Error: Cannot adjust the token privileges with error 1300."
強制終了後WORKライブラリの中身調査とかはまずしないので消えるのはいいんですが。
この点、特に速度が重要な場合のみ、異なるConfigで実行するような事を想定した方が良いかと思います。あと、この場合プロセス強制終了時にメモリ解放されんのかとか気になりますね。やっぱ別のRAMDISKアプリを使った方が幸せになれそうです。

-config "C:\Program Files\SASHome\SASFoundation\9.4\nls\ja\sasv9.cfg"
-MEMLIB
-MEMCACHE 4
-MEMMAXSZ 500M