アリは、オープンソースDragonwell JDKリリースGAバージョンをヘビー級:本番環境で利用可能

今年3月には、アリババアリババDragonwellのの重い長期サポートOpenJDKのオープンソース版の時間の非常に長い期間でのニュースはGithubの番号スター上のプロジェクトの議論の開発者の焦点はすぐに1400を突破しています。最近、Dragonwell JDK 8.0.0 GAバージョンは、それがすでに本番環境の公式で実行する能力を有していることを意味し、発表しました。


2019年3月には、Dragonwell JDK正式にオープンソースは、プレビュー(プレビュー)版をリリースしました。最近、アリババは重いDragonwell JDK 8.0.0-GAを発表Dragonwell JDKが完全に本番環境で実行する機能が装備されて意味し、発表しました。過去3ヶ月の間に、Dragonwellはコミュニティメンバーからのフィードバックをたくさん受けました。だから、今回は新しい機能を追加したGAバージョンをリリースするには?それは誰が開発者にとって何を意味するのでしょうか?

龍井8.0.0-GAの新しい変更

仕事の目的8.0.0-GAはDragonwellはできるだけ早く本番環境で使用することができますようにすることです。このバージョンでは、我々はまた、我々は上流の最新のセキュリティアップデートやパッチを同期させることを意味し、上流のOpenJDKコミュニティ最新の更新プログラムjdk8u212-B04を、同期させます。

上流の同期に加えて、Dragonwell8もアリババのJavaシーンで見つかったいくつかのいくつかの非常に重要なバグを修正し、アリババ内部シーンのテストに耐えました。我々はまた、我々が更新し、維持するデフォルトのセキュリティ証明書を提供します。

身近Dragonwell少し友達がDragonwellは、上流と比較して、知っているかもしれないとOpenJDKのは、次のようないくつかの排他的な機能を提供していますようにJFR、JWarmUpと。アリババ内のこれらのプロパティは、広く使用されてきた、それはユニークな武器のDragonwell言うことができる、アリババのJava事業の安定動作のために多くのことを達成しています。8.0.0-GAでは、我々はJFRのためにいくつかの改善と修正互換性プロパティを作りました。だから、それらを安全に使用することができ、パートナーの小さなコミュニティのDragonwell新機能などがあります。私たちはしっかりと、これらの新機能は、アリババに価値をもたらすだけでなく、生態系の価値をもたらすためにJavaコミュニティを与えることができないだけと考えています。

具体的な内容8.0.0-GAリリースgithubのあなたは、リリースノートを参照することができ、ここで突きます

新しい旅を龍井

龍井8.0.0-GAの新しい変化への導入は、多くの小さなパートナーは熱心でした。我々は龍井ファミリーとして2以上のおしゃべりを使用する前に、上のホールド、成長するどのように赤ちゃん、私たちはたくさんのアイデアを持っていますが、コミュニティの龍井の子どもたちが、小さなコミュニティのパートナーはそれらに変更を支援することを、私たちも非常に多くの希望成長。だから我々は、将来変更される可能性があり、それらの龍井と話します。

龍井の誕生の初め以来、それは、ユーザーがビジネス上の課題に直面してより多くの選択肢を持って支援するための新機能の特にDragonwell JDK、社会の注目を集めました。ISCA2019ランタイムでは、今年クラウドチュートリアルでは、私たちは地域社会や学界にDragonwell新機能の作業の進捗状況を報告し、我々はまた、肯定的な反応を得ました。ダイナミックなコミュニティからのフィードバックは、私たちは小さなパートナーが助言を与えることを願って、私たちの次のステップです。本講演では、ここで紹介し... www.cs.utah.edu/cloudruntimここからPPTダウンロードwww.cs.utah.edu/cloudruntim ...
興味のパートナーが小さい見ることができます。

Dragonwellが現在存在し、いくつかの機能が安定でJavaアリババ巨大なシーンは非常に信頼性が高いテストされています。ここでは、これらのプロパティについて、具体的話をしてきます。

JWarmUp

JWarmUpこの機能は、デュアル11シーンアリババの購買シーンのJavaシステムのウォームアップの痛みのポイントを解決することです。通常のJavaアプリケーションは、例えば、JVMは解釈実行(通訳)を介してホットスポットを見つける必要がある、その後、JITコンパイラによって加速するホットメソッドを実行します。並行性の高いシナリオでは、アプリケーションが開始された後にホットスポットを探して、長い時間があるだろう、ホットスポットは状態をコンパイルし、(CPUの使用率は、TPSのスループット、RTの応答時間)は理想的な性能の多くではありません。つまり、Javaがサービスを提供することができますが、Javaアプリケーションは、ウォームアップの状態で、この時間を長時間のサービスを開始し、提供する際に、この段階では、ユーザと、サービスの質は、比較的貧弱です並行処理は、それは多くの場合、サービス低下の品質、さらにはサービスがクラッシュにつながる、比較的高いです。


このプロセスを最適化するためには、Javaでこのステップは、ウォームアップが完了する前に、事前に熱の適用を可能にするために、人工のインポートによっていくつかのデータを開始した後、ユーザーの要求がネットワークによって制御されていない一般的な業界慣行は(ウォームアップ)「をウォームアップ」するために導入されていますこれは、Javaが実際にサービスを提供するようにウォームアップが完了した後に、それは流れの制限を開き、Javaプロセスに送信されます。このアプローチは、部分的にこれらの問題を軽減することができますが、そこにこのプログラムは、多くの場合、高品質のプリデータを取得することは非常に困難であるためである、多くのシーンでいくつかの制限となります。データの正しさは、直接、このようなウォームアップを欠場する一般的な状況として、時にはそれが負の効果を持つことになりますされていない場合、の品質を向上させることができ、データをコンパイルする実際の状況に合わせて、ウォームアップウォームアップの効果に影響を及ぼしいくつかの重要なメソッドが呼び出されません。さらに悪い状況が原因実際の状況に起因してコンパイル方法、コンパイラが再起動矛盾JVM「後退の最適化」にあるが、状況を悪化しました。このように、どのようにウォームアップのデータを準備するためには、実際の運用・保守には良い解決策はありません、実際には非常に複雑な問題です。

Dragonwellは、基本的な原理はメソッドを使用して、ホットJavaクラスの情報を検索する前に実行する場合、最後のウォームアップに次の情報を使用することができますJVMインスタンスを実行して、あなたが人為的にデータする必要はありませんで、この痛みのポイントに対処するためのJVMレベルからJWarmup技術を提案しています予熱。ホットスポットのコレクションとしては、例えば、クラスタアプリケーション内のノードを選択するなど、さまざまなオプションを持つことができ、あなたが収集するために、発行プロセスにベータリリースの段階を選択することができます。「ヒトのデータ」の前の道に比べて、いくつかの利点があります。

  1. 実際のデータとのホットスポットを収集する場合、より良い結果を達成するためにコンパイル。
  2. 予熱のプロセスを加速します。ので、ホットスポットの方法は解釈、プロファイリングおよび他のプロセスを保存し、ロード後に直接コンパイルすることができます。

この機能specjvm2008ベンチマークは、いくつかのテストケースのために、クラブを実行すると、大幅に改善されました:

# 标准OpenJDK在specjvm2008的xml.validation测试用例上的跑分
Score on xml.validation: 268.07 ops/m
# Dragonwell在specjvm2008的xml.validation测试用例上的跑分
Score on xml.validation: 294.95 ops/m复制代码

これは、実行点xml.validation Dragonwellを10%増加約294.95 OPS / Mに268.07 OPS / Mまで増加することが分かります。

この機能は、デュアル11の大多数に検証されているアリババシーンを買う秘密兵器Dragonwellであると言うことができます。現在、我々はまた、コミュニティを促進しようとしている、上流のOpenJDKコミュニティに進めるために、この機能を置くためJEPの道を期待しています。すべての有用なものの後だけでなく、私たちは私たち自身を持って、我々は共通の繁栄に持っている王はあります。あなたはこの機能はDragonwell音に開発者に代わって中国ですることもできますOpenJDKのメーリングリストコミュニティ、使いやすいと感じる場合には、このコミュニティは、現在、JEP下書きレビュー段階、ジュニアパートナーです。

JFR

JFRフルネームは、Javaのフライトレコーダー(のJavaフライトレコーダー)であるDragonwellの機能です。この機能をオンにすると、JVMは、Javaランタイムを実行している様々なプロセスを記録することができ、非常に小さなパフォーマンスオーバーヘッドのデータを生成しました。JFRは、JMC(Javaのミッションコントロール)を分析することができる、様々なデータが微視的詳細JVMランタイムを生成含みます。JMCは、デスクトップアプリケーションで、データJFRを解析することで、JMCは、迅速かつ多様な断層線の生産環境をターゲットに効率的な場合があります。これは、メモリ割り当てのホットスポット、ホットスポットのメソッド呼び出しを分析することができ、この方法は、タイムアウト分析を呼び出し、メモリリーク、IOアクティビティ、スレッドやその他の活動のすべての側面には、Javaユーザーサービスの安定性を確保するのに役立ちます。

日々の開発プロセスで発生した問題のAlibabaの多くが解決さJFRであり、それは、トラブルシューティングのためのJavaのツールになります。JFRこの機能OpenJDKの11以上のバージョンのみ。アリババを促進するための努力では、JFR機能のOpenJDKコミュニティは現在、近い将来、進行神経枝に全体のOpenJDK 8下流の生態系インキュベーター移植コミュニティの仕事ができている、プログラムOpenJDKの8Uメインラインに受け入れられ始めています作業の結果をお楽しみください。

Dragonwell JFRは、コミュニティの仕事OpenJDKの8Uの参加者として、JFRタイムリーな導入Dragonwellの最新の成果物の安定した流れとなり、Dragonwellユーザーが祝福と言うことができます。同時に上流、Dragonwellユーザーを押しながら既存の機能のJFRコミュニティに加えて、JFRのDragonwellも、私たちは積極的に上流のOpenJDKコミュニティにこれらの新機能のJFRのフィードバックを置く一方で、機能強化と革新の数を作りました私たちは、自然にいくつかの特別なメリットを享受します:上流社会では、これらの機能を受け入れる前に、これらの新機能は、最初のオープンソースになりますDragonwell。

ミステリーゲスト:ElasticHeap

最後に、私たちは驚きのゲストElasticHeapアップを導入すべきです。Dragonwellはコミュニティにアリババ内の革新的な機能の無限ストリームになり、ElasticHeapはJFRに従っている、JWarmUp、第三新機能を開くために、完全な誠意計画にDragonwellは、OpenJDKのコミュニティを(次のリリースに行きます)また、私はああしませんでした。

我々はすべて知っているように、プログラムを実行すると、Javaのユーザーが構成されたメモリ徐々にすべてのアウトを使用するに沿って、高レベルの言語としてのJavaは、ガベージコレクタになります。それは、後に、より自由なJavaプロセスは非常に多くのリソースを必要とし、これらがメモリ不足に占有されており、廃棄物の感覚をもたらすリソース使用率の観点から、オペレーティングシステムに返されないことはありませんになっても。ElasticHeapのDragonwellダイナミックG1のGCヒープ弾性伸縮機能に基づいてこのような状況を変更するためには、効果的に実際の物理メモリフットプリントJavaプロセスを節約することができます。Openjdk8は、特定のルールのフルGCに従い、物理メモリの復帰をサポートしています。ElasticHeapのDragonwellがメモリを返すために、より俊敏かつ効果的な方法を提供し、それは次の特徴があります。

  1. フルGCとホールド弾性ストレッチ上の他のSTWヒープに依存していないが、追加のオーバーヘッドSTWは、Javaスレッドのサービスには影響を与えません。
    2.複数のモードをサポートしています。
    。適応ヒープメモリ割り当てGC及び速度圧(自動復帰メモリ)の大きさに応じて調整
    B.(スタックリミット設定可能な限界または世代)jcmd / MXBeanのアクティブコマンドに従ってヒープのサイズを制限します

図は、適応的に調整ElasticHeap GCデュアルスタック11を使用して、アリババ図監視電気供給圧力アプリケーションに適用され


  1. CPU使用率、物理的なメモリ使用下半分の図の上半分
  2. サービストラフィック(トラフィックのピークが始まる)、CPU使用率が大幅に増加したときにデュアル11全体のポイントが来ました
  3. 同時に、オープンElasticHeapヒープメモリ適応調整はすぐにバックアップGCヒープメモリとの圧力が増加します;フローCPU使用率は、物理メモリの少ない、迅速な復帰後小さく、GCの圧力を後退しました
  4. 本実施形態では、物理メモリのリターン約20-30%の低流量で

あなたは少しの友人、それを楽しみにしてください、ElasticHeapは、出版物の次のバージョンで発表されます。

インスト

アリババDragonwellは現在、開発者は以下の手順でアリババDragonwellを使用することができ、Linuxのx86-64のプラットフォームをサポートしています。

インストールアリババDragonwell

  1. オプション1:ダウンロードし、プリコンパイルされたバイナリパッケージDragonwell
  • バイナリパッケージのtarをダウンロードし、のGithubのページアリババDragonwellからのリンクgithub.com/alibaba/dra ...
  • ダウンロードしたtarパッケージは、インストール先のディレクトリを抽出します
  1. オプション2:使用YUMインストールツール

アリババクラウドLinuxの2 YUM倉庫が正式アリババDragonwell JDK、YUM倉庫とAliyunのLinux 17.1をサポートしており、Red Hat Enterprise Linuxに7およびCentOSに7が完全に互換性があります。

アリババクラウドLinuxの2オペレーティング・システムの場合、ユーザーはのみ実行する必要がsudo yum install -y java-1.8.0-alibaba-dragonwell正常にインストールすることができます。

あなたはアリババクラウドLinuxの2を使用しませんが、Linuxディストリビューションを使用して、アリババクラウドLinuxの2 YUM倉庫互換性のある場合は、yum install手動で行くにはアリババクラウドLinuxの2 YUM YUMウェアハウス・ソース・オペレーティング・システムを追加する前にインストールする必要があります。この方法は非常に簡単です追加、ちょうどalilinux-plus.repo /etc/yum.repos.d/年に次のようにインクルードするファイルを追加します。

# plus packages provided by Aliyun Linux dev team
[plus]
name=AliYun-2.1903 - Plus - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/alinux/2.1903/plus/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/alinux/RPM-GPG-KEY-ALIYUN复制代码

アリババDragonwellは、Javaアプリケーションのために有効に

JDK Dragonwellユーザーがバイナリパッケージをプリコンパイルするために、または単にインストールの前のステップにスクリプト環境変数JDKのディレクトリ変数(通常はJAVA_HOME)アリババDragonwellディレクトリポイントを使用しています。その後、アリババDragonwell JDKの設定を使用するようにアプリケーションを再起動してください。

ユーザーはYUM Dragonwell JDKを装着するツールである場合は、YUM JDKは、インストールプロセス中に使用するように求めるメッセージが表示されます、次のようにそれが求められます

=======================================================================
Alibaba Dragonwell is installed to:
    /opt/alibaba/java-1.8.0-alibaba-dragonwell-8.0.0.212.b04-1.al7
You can set Alibaba Dragonwell as default JDK by exporting the
following ENV VARs:
$ export JAVA_HOME=/opt/alibaba/java-1.8.0-alibaba-dragonwell-8.0.0.212.b04-1.al7
$ export PATH=${JAVA_HOME}/bin:$PATH
=======================================================================
复制代码

概要

Dragonwellを宣言龍井8.0.0-GAリリースには、新しい旅に入り、ますます多くの新機能は、オープンソースになります。私は中国の健全な発展は、世界中で聴いていますように、小さなコミュニティパートナーのために多くの支持、龍井JDKは、中国およびJava開発者全体の国内のJavaエコシステムの取り組みの強度を高めるために、一緒になることを願っています。


著者:緑のボート

説明リンク

この記事Yunqiコミュニティのオリジナルコンテンツが許可なく複製することはできません。


おすすめ

転載: juejin.im/post/5d301e78e51d455cd73ba149