)に関する取組みをご紹介します。2018-02-27Dockerコンテナで起動するElasticsearchの性能情報を取得した話Dockerブレインズテクノロジーの加藤です。今回は、Dockerコンテナ上で起動するjavaアプリケーションの性能情報の取得方法についてまとめます。例としてElasticsearchを使用しましたが、javaで起動しているアプリケーションであれば何にでも応用が効くはずです。経緯あるお客様の環境で、Dockerコンテナ上にElasticsearchを起動してサービスを提供しているのですが、GC系のERRORが頻発するようになりました。原因の特定と解決策の検討のため、jstatによる性能情報を取得しようとしたのですが、ホストから見たElasticsearchのプロセスIDが異なるからか、ホスト側からは取得ができず。仕方なくDockerコンテナに入って取得しようとしたのですが、今度はDockerコンテナにjdkが入っていないため、インストールするところから始めました。DockerコンテナにログインするElasticsearchが起動していること、およびプロセス名を確認します。今回のプロセス名は"brave_jepsen"のようです。コマンドにより、elasticsearchのコンテナにログインします。bashroot@3596bfd346d4:/usr/share/elasticsearch#ログインできました。Dockerコンテナにjdkをインストールする試しにDockerコンテナの中で、jstatコマンドを実行してみます。found入ってないですね。仕方ないのでインストールします。インストールにはapt-getコマンドを使用します。apt-getを最新化しましょう。Doneちなみに環境によっては、apt-getを実行しても失敗することがあります。その際は、環境変数「http_proxy」にプロキシサーバを設定すれば通るかもしれません。http_proxy=${プロキシサーバのホスト}:${プロキシサーバのポート}続いて、apt-fileをインストールします。cache.apt-fileをupdateしろと言っているので、仰せのままに実行します。them.apt-fileのsearchコマンドにより、jstatが含まれるパッケージを見つけます。/usr/lib/jvm/java-8-openjdk-amd64/man/man1/jstatd.1.gz「openjdk-8-jdk-headless」に含まれるようです。対象のパッケージをインストールします。modejpsコマンドにより、Elasticsearchのプロセスが表示されれば成功です。elasticsearchの場合、プロセスIDは1になるようです。-Xms8mJavaの性能情報取得jstatコマンドにより性能情報を取得します。使用可能なオプションの種類や、出力項目の詳細は、下記のオラクルのページに載っています。gccauseオプションを使用したいと思います。コマンドの意味としては、"-h1000"で1000行ごとにヘッダーを表示。途中の1でelasticsearchのプロセスIDを指定。1000は、1秒ごとに1000回繰り返すことでその間の性能情報を取得することができます。mappingでホスト側と共有しておくと良いです。ちなみにお客様の環境ではdocker-composeを使っています。docker-compose.ymlの設定は以下のような感じです。/home/logs/elasticsearch:/usr/share/elasticsearch/logsこの設定をしておけば、ホスト側の「/home/logs/elasticsearch」ディレクトリにgccause.txtが出力されているはずです。gccauseだと実行時刻が出力されないため、ホスト側で下記のようなコマンドを実行するといい感じです。GC終わりにというわけで、無事にDockerコンテナで起動するElasticsearchの性能情報を取得できました。冒頭でも書きましたが、javaアプリケーションであれば、Elasticsearch以外でもこの方法で取得できるはずです。この記事が誰かの役に立てればいいと思うー。Windows上で使用する準備とファイル読み出しテストの...こんにちは、ブレインズテクノロジーの岩城です。2018年11月末...2019-01-29Dockerコンテナ上で起動したGreengrassとWindowsとの連携で広がる新たなデータ活用...こんにちは、ブレインズテクノロジーの岩城です。2018年11月末...2018-07-31WindowsのDockerで慣れないこと(実践編)Neuron開発チームの木村です。Neuronは、ほとんどの場合Window...2018-05-15WindowsのDockerで慣れないことNeuron開発チームの木村です。Neuronは、ほとんどの場合Window...2017-12-01docker-composeで環境変数を使うこんにちは。エンジニアの中西です。)に関する取組みをご紹介します。Inc.または関連会社の登録商標およびサービス・マークであり、同社の許可に基づいて使用しています。reserved.ガートナーは、ガートナー・リサーチの発行物に掲載された特定のベンダー、製品またはサービスを推奨するものではありません。最高のレーティング又はその他の評価を得たベンダーのみを選択するように助言するものではありません。ガートナー・リサーチの発行物は、ガートナー・リサーチの見解を表したものであり、事実を表現したものではありません。ガートナーは、明示または黙示を問わず、本リサーチの商品性や特定目的への適合性を含め、一切の保証を行うものではありません。はてなブログをはじめよう!brains-techさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。