pkgコマンドでMemoryErrorが発生する
問題
pkgコマンドの操作時に、Traceback後、MemoryErrorが発生する。
理由
OpenSolarisのpkgコマンドはPythonで記述され、メモリを非常に多く消費する傾向があります。
pkgコマンドのMemoryErrorは、Out of Memoryを意味しており、メモリ使用量が多すぎる場合に発生するエラーです。
解決方法
システム全体のMemoryの消費量を下げることにより、動作させることができます。
下記の回避方法を行うことで、pkgコマンドを正常に動作させることことができる場合があります。
- 再起動(init 6)を行った直後に、pkgコマンドを利用する。
- 再起動直後はメモリの使用量が少ないため。
- svcsコマンドで動作してるサービスをチェックし、不要なサービスを落とす(svcadm disable 〜)。
- prstat -s rssでRSSの量を確認し、メモリを多量に使っているサービスを「一時的に」終了する。
- pkg authorityあるいは、pkg publisherコマンドでレポジトリを沢山登録している場合、一時的にunsetして減らす。
- 必要な物を減らしてしまった場合、動作に異常がでることがあるので、ご注意ください。
- unsetの方法は、OpenSolarisのパッケージ管理を参照してください。
- メモリをより多く使用できる、上位のプランに変更する。