サーバー上で任意の Java スクリプト コードを実行するスクリプト サーバーがあります。いつでも複数のスクリプトが実行されている可能性があり、1 つの不適切なスクリプトがマシン上のすべての RAM を使い果たすのを防ぎたいと考えています。これを行うには、各スクリプトを独自のプロセスで実行し、市販の監視ツールで各プロセスの RAM の使用状況を監視し、手に負えなくなったプロセスを強制終了して再起動します。これらのスクリプトのいずれかがおかしくなるたびにバイナリを再起動するコストを回避したいので、これはしたくありません。実行中のスクリプトをサンドボックス化するために使用できるコンテキスト/分離メモリ制限を設定する v8 の方法はありますか?
質問する
1646 次
3 に答える
0
これは確実に可能ではありません。このプロセスによるすべての JavaScript コンテキストは、同じオブジェクト ヒープを共有します。
WebKit/Chromium は、コンテキスト OOM の後にコンテキストを無効にするためにいくつかのことを試みます。 http://code.google.com/searchframe#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/bindings/v8/V8Proxy.cpp&exact_package=chromium&q=V8Proxy&type=cs&l=361
ソース:
于 2012-04-25T16:38:28.293 に答える