BT

Java 9はDockerで実行する際のメモリ制限を調整する

| 作者: Abraham Marín Pérez フォローする 8 人のフォロワー , 翻訳者 阪田 浩一 フォローする 1 人のフォロワー 投稿日 2017年2月23日. 推定読書時間: 2 分 |

原文(投稿日:2017/02/21)へのリンク

最初の実験的変更がOpenJDK 9に追加された。JVMがコンテナ内で実行していることを理解しメモリ制限を適切に調整できるようにするためだ。ここ数年でコンテナの人気が高まっているにも関わらず、JVMを含む多くのツールは利用できるリソースの判断にまだホストパラメータを頼っている。それでしばしばout of memoryとなり、エラーメッセージに悩まされる。この変更はJava 9が一般リリースされれば利用できるはずだ。こういったシナリオの多くを防ぐよう努める。

DockerHerokuKubernetesのようなコンテナ技術はLinuxのオペレーションシステムをベースにしたとくに軽量な仮想マシンの一形態である。フットプリントを減らすことでより早くそしてより少ないリソース消費にする、とても類似した機能を提供できることを意味する。しかし不便な点もついてくる。本格的な仮想マシンが専用ハードウェアのスタック全体をシミュレートし、これが既存のソフトウェアがたいていは期待通りに動作することを意味する一方、コンテナ技術はホストのハードウェアとOSを使い、これはホストの情報を当てにするソフトウェアがコンテナが課するさらなる制約に気づかず動作するかもしれないことを意味する。Fabio Kung氏は、ネットフリックスのLinuxコンテナサービスの開発者だが(Titusとしてまた知られている)、氏は2014年にこれらの影響を説明するよい記事を書いた。この記事のいくつかの内容は現在では古くなっているが、まだこのトピックへのよい導入として役立つ。

JVMはこれに不慣れではない。もし最大メモリ制限が-Xmxで指定されていれば、JVMは物理メモリの一部分としてそれを設定する(一般的に4分の1だが、変わるかもしれない)。これはコンテナによって課せられた制限を考慮しないかもしれない。提案された変更はこの問題をJVMがLinux技術のコントロールグループまたはcgroup内で動作しているかチェックすることによって防ぐことを目標にしている。ほとんどのコンテナ技術は以前ハードウェアと他のリソースの使用において制限を強制していた。もしJVMがcgroup内で動作していることを検出すると、定義されたメモリ制限を見つけ、そのような制限を利用可能な物理メモリとして考慮しようとする。他すべてのパラメータをこの機能として設定する。これはまだ実験的で、それゆえに-XX:+UseCGroupMemoryLimitForHeapオプションを有効にしたときのみ適用される。

cgroupsは2008年にLinuxカーネルに組み入れられ2013年に再設計された。これはリソースの使用を分離しアプリケーションがとくにメモリとCPU、IO、ネットワークへのアクセスを制御できるようにする。異なるアプリケーションはそれぞれのコントロールグループ階層をグループごとに異なる制限で作成できる。アプリケーションは実行グループを事前に知らないこととなる。これがJVMが適切にcgroupsと潜在的なメモリ制限に関する見当をつけることだけができる理由である。

Rate this Article

Relevance
Style

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

誤訳 by 茂亨 安土


もし最大メモリ制限が-Xmxで指定されていれば、JVMは物理メモリの一部分としてそれを設定する(一般的に4分の1だが、変わるかもしれない)。


もし最大メモリ制限が-Xmxで指定されていなければ、JVMは物理メモリの一部分としてそれを設定する(一般的に4分の1だが、変わるかもしれない)。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

1 ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT