2017年02月11日
gnupackのcygwinでヒープメモリのサイズを変更する【Win32 error 487】
この記事ではgnupackのcygwinでヒープメモリのサイズを変更する方法を紹介します。
そもそもなぜ変更するのかということですがcygwinをしばらく使っているとトップ画像のようなエラーが発生するからです。
cygwinターミナルを起動してから作業してると突然なります。エラー内容はこんな感じ。
lsとかcdとか頻繁に使用するコマンドで毎回こんな表示がでます。動作自体は問題なさそうなのですが鬱陶しい。
正直なんのことかよくわからなかったのですが検索してみるとヒープメモリが不足している様子。なのでヒープメモリを大きくすれば解決するというわけです。
まず以下のコマンドで現在のヒープメモリのサイズを確認してみます。ここでは
するとどうやら結果がでました。
とりあえずヒープメモリのサイズを倍にしようと思います。
cygwinターミナルをいったん閉じて、Windowsのエクスプローラーから
そして以下のコマンドを実行。
なぜか1回目と2回目はうまくいかずに3回目でうまくいきました。なんでだろう。コマンド間違ったりはしてないと思うのですが。
ちなみに同じ動作をするコマンド
変更が完了したらgnupackのcygwinを再起動して
しっかり2倍になっています。
改善されました。いまのところエラーは出ていません。解決したといっていいかも。
もしまた同じエラーが出たらヒープメモリをもう少し増やしてみるとか。
ヒープサイズを変更する理由
そもそもなぜ変更するのかということですがcygwinをしばらく使っているとトップ画像のようなエラーが発生するからです。
cygwinターミナルを起動してから作業してると突然なります。エラー内容はこんな感じ。
382505160 [main] bash 9372 fhandler_disk_file::fixup_mmap_after_fork: requested x0 mem alloc base 0x0, state 0x10000, size 131072, Win32 error 487
382505405 [main] bash 9372 C:\gnupack\app\cygwin\cygwin\bin\bash.exe: *** fatal process - recreate_mmaps_after_fork_failed
382506549 [main] bash 9372 cygwin_exception::open_stackdumpfile: Dumping stack te.stackdump
382612153 [main] C:\gnupack\app\cygwin\cygwin\bin\bash 9516 fork: child -1 - for2 died unexpectedly, retry 0, exit code 0x100, errno 11
C:\gnupack\app\cygwin\cygwin\bin\bash: fork: retry: No child processes
383634678 [main] bash 5136 fhandler_disk_file::fixup_mmap_after_fork: requested x0 mem alloc base 0x0, state 0x10000, size 131072, Win32 error 487
383634902 [main] bash 5136 C:\gnupack\app\cygwin\cygwin\bin\bash.exe: *** fatal process - recreate_mmaps_after_fork_failed
383636036 [main] bash 5136 cygwin_exception::open_stackdumpfile: Dumping stack te.stackdump
383742073 [main] C:\gnupack\app\cygwin\cygwin\bin\bash 9516 fork: child -1 - for6 died unexpectedly, retry 0, exit code 0x100, errno 11
C:\gnupack\app\cygwin\cygwin\bin\bash: fork: retry: No child processes
385761321 [main] bash 7180 fhandler_disk_file::fixup_mmap_after_fork: requested x0 mem alloc base 0x0, state 0x10000, size 131072, Win32 error 487
385761617 [main] bash 7180 C:\gnupack\app\cygwin\cygwin\bin\bash.exe: *** fatal process - recreate_mmaps_after_fork_failed
385762703 [main] bash 7180 cygwin_exception::open_stackdumpfile: Dumping stack te.stackdump
385861264 [main] C:\gnupack\app\cygwin\cygwin\bin\bash 9516 fork: child -1 - for0 died unexpectedly, retry 0, exit code 0x100, errno 11
C:\gnupack\app\cygwin\cygwin\bin\bash: fork: retry: No child processes
C:\gnupack\app\cygwin\cygwin\bin\bash: fork: No child processes
lsとかcdとか頻繁に使用するコマンドで毎回こんな表示がでます。動作自体は問題なさそうなのですが鬱陶しい。
正直なんのことかよくわからなかったのですが検索してみるとヒープメモリが不足している様子。なのでヒープメモリを大きくすれば解決するというわけです。
現在のヒープメモリのサイズを確認する
まず以下のコマンドで現在のヒープメモリのサイズを確認してみます。ここでは
/bin/bashのヒープメモリのサイズが不足しているみたいなのでこれを確認します。
peflags -x /bin/bash
するとどうやら結果がでました。
ヒープメモリのサイズを増やす
とりあえずヒープメモリのサイズを倍にしようと思います。
cygwinターミナルをいったん閉じて、Windowsのエクスプローラーから
gnupack\app\cygwin\cygwin\bin\ash.exeを起動します。
そして以下のコマンドを実行。
/bin/peflags -x0x400000 /bin/bash
なぜか1回目と2回目はうまくいかずに3回目でうまくいきました。なんでだろう。コマンド間違ったりはしてないと思うのですが。
ちなみに同じ動作をするコマンド
peflags -x0x400000 /bin/bashをgnupackのcygwinで実行しても
/bin/bash: skipped because could not openとなりうまくいきません。
変更が完了したらgnupackのcygwinを再起動して
peflags -x /bin/bashで再びサイズを確認すると
しっかり2倍になっています。
ヒープメモリを増やしてから一日つかってみた
改善されました。いまのところエラーは出ていません。解決したといっていいかも。
もしまた同じエラーが出たらヒープメモリをもう少し増やしてみるとか。
中古価格 |
タグ:gnupack
【このカテゴリーの最新記事】
-
no image
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/5932167
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック