【KNIME】メモリが足りない…。ちょっと待って!がっかりするその前に!
みなさん、お元気ですか。
私は、ちょっと用事があって、昨日は久しぶりに都内に出かけました。田舎暮らしが長くなってきたせいなのか、単純に頭が老化しているのかはわかりませんが、
「都心の景観は、情報量が多い!」と感じました。
学生の頃は、都内で暮らしていました。そんなこと考えたことなかったんですよね。田舎からの"おのぼりさん"だったわけですが、あんまりこういう感覚を持ったことはなかったんですよね。やっぱり年のせいですかね。
さて先日、KNIMEフロー内でのエラー回避について、1例をあげて記事を書きました。
記事を投稿した後、その他に予定外の何かでフローが止まってがっかりする場面ってないかなーと考えていたら、1つ紹介しておくと良さそうな事柄がありました。それはKNIMEのメモリ不足問題です。
そうなんです。KNIMEは結構メモリを食うんです!
なので、重めの処理・loopの多い処理などをしていると、「おいおい旦那、もうメモリがいっぱいだぜ。悪いんだけど、もう働けねぇや」と言ってKNIMEが止まっちゃうことがあります。
その対応として
- ちょっとメモリ不足になりにくくする!
- メモリ不足になる前に気がつけるようにする!
の2つについて紹介します。
ちょっとメモリ不足になりにくくする
これはKNIMEの設定ファイルをいじります。KNIMEは設定ファイルに「使用する最大メモリ量」を指定する部分があります。これが、初期設定だと結構少ない。なので、この部分を増やしちゃいます。KNIMEの設定ファイルは"knime.ini"です。
mac
デフォルト状態でインストールを進めたのならば、finder > アプリケーション > knimeX.X.X.app と進んで、右クリックのメニューから"パーケージの内容を表示"を選択します。その中に、Eclipseというフォルダの中に入るとknime.iniを発見できると思います。
windows
こちらもインストーラに従って、特にカスタムせずにインストールしたならば、C > Program Files > KNIMEと進めばknime.iniがいると思います。
linux
KNIMEのフォルダに行けばあるよ。釈迦に説法だと思いますが、knime-workspaceじゃないよ。
まあ、他の探し方でも、とにかくknime.iniにたどり着ければOKです。では中身を開いてみます。するとその中に
-Xmx???m (数字は各々のマシンにより異なる)
という行があると思います。ここに記載されている数字がKNIMEが使用できる最大メモリ量です。ここを増やせば上限が増えるので、メモリ不足になる可能性が下がります。「KNIME以外の作業はしない、ブラウジングすらしない」という方は結構攻めた設定にしてもいいかもしれませんが、私は自分のマシンメモリの半分を指定しています。具体的には、今使用しているマシンのメモリは16 GBなので、Xmx8192mにしています。8Gと記入してOKみたいです。
メモリ不足になる前に気がつけるようにする
KNIMEの画面上で、今どのくらいメモリを使ってるのか表示しておきます。
こんな感じです。KNIMEで、File > Preferences と進み、立ち上がった画面のGeneralを選択すると、"Show heap status"ってのがあるので、これにチェックを入れます。
これで、OKするとキャプチャのようなメモリのステータスバーが表示されます。マウスオンするとmaxの値も確認できるので、「aaa M of bbb M」のbbbがmaxの値になってきたら要注意です。*1ゴミ箱アイコンをクリックするか、一旦ワークフローを保存して、KNIMEを再起動するなどして、少しKNIMEをリフレッシュしてあげるとよいと思います。*2
やっておいて、損はない設定かなと思います。是非お試しください!
ではまた次回!