この記事はWeChatの公開アカウント「Mu Xiaonong」から転載したもので、著者はMu Xiaonongです。この記事を転載する場合は、穆小農の公式アカウントまでご連絡ください。 JVM のチューニングを学習するには、JVM のパラメータのいくつかを事前に知って、より効果的に使用できるようにする必要があります。 JVM共通コマンドラインパラメータJVM コマンドライン パラメータ リファレンス: https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html 1. パラメータリストを表示する 仮想マシン パラメータは、基本カテゴリと拡張カテゴリに分かれています。基本パラメータのリストを取得するには、コマンド ラインに JAVA_HOME\bin\java と入力します。拡張パラメータ リストを取得するには、コマンド ラインに JAVA_HOME\bin\java-X と入力します。 2. 基本パラメータの説明:
3. 拡張パラメータの説明:
仮想マシンパラメータ分類標準: - で始まり、すべてのホットスポットでサポートされます。非標準: -X で始まり、特定のバージョンの HotSpot が特定のコマンドをサポートします。不安定: -XX で始まり、次のバージョンではキャンセルされる可能性があります。 例: java -version、java -X
チューニング前の基本概念1. スループット: ユーザーコード時間 / (ユーザーコード実行時間 + ガベージコレクション時間) 2. 応答時間: STW (Stop The World) が短いほど、応答時間は短くなります。 いわゆるチューニングに関しては、まず、スループットなのか応答時間なのか、あるいは特定の応答時間を満たすにはどの程度のスループットが必要なのかなど、何を求めているのかを明確にする必要があります。一般的には、ビジネスの種類に応じて適切なチューニング方法を選択します。たとえば、Web サイトで応答時間を優先する必要がある場合は、JDK1.8 の場合は G1 を選択してください。データマイニングの場合は、スループットを使用する必要があります。 チューニングとは何かチューニングに触れる前は、JVM チューニングは OOM 問題を解決するものだと理解していました。 OOM は JVM チューニングの一部にすぎません。
まず、ビジネスシナリオからチューニングが始まります。ビジネス シナリオなしでの JVM チューニングは信頼できません。たとえば、実際のプロジェクトでは、多数のクラスや数千のコードが存在する場合があります。どのコードに問題があるかをどのように知るのでしょうか?コードの一部が頻繁にフル GC されることがわかっていても、しばらくすると OOM になる可能性があります。 チューニング手順:
応答時間、一時停止時間 [CMS G1 ZGC] (ユーザーに応答する必要がある) スループット = ユーザー時間 / (ユーザー時間 + GC 時間) [PS]
1.-Xloggc:/opt/xxx/logs/xxx-xxx-gc-%t.log - XX:+GCログファイルのローテーションを使用 -XX:GCログファイルの数=5 - XX:GCLogFileSize=20M -XX:+PrintGCDetails - XX:+PrintGCDateStamps -XX:+PrintGCCause 2. または毎日ログファイルを生成する 実稼働環境では、ログ ファイルの後にはログ名が続き、システム時間に従って周期的に生成されます。ログは5本あり、それぞれサイズは20Mです。これの利点は、全体のサイズが 100M であるため、全体のファイル サイズを制御できることです。 ログの状況を観察する チューニングケースケース1 1 日あたり最大 100 万件の注文を処理する垂直型電子商取引の場合、注文システムを処理するにはどのようなサーバー構成が必要ですか? この質問は、多くの異なるサーバー構成がサポートできるため、あまり役に立ちません。 たとえば、注文が 100 万件ある場合、毎時間同時実行性はそれほど高くなりません。ピーク時間を調べ、100 万件の注文のうち 72 万件がピーク時間に生成されると仮定します。たとえば、1 時間あたり平均 36 万件の注文が生成されます。そのため、ピーク時間に応じてメモリサイズが選択されます。ほとんどの場合、ストレステストを実施することがあります。動作しない場合は、CPUとメモリを追加します。 ケース2 12306は春節期間中の大規模なチケットラッシュにどのように対応すべきでしょうか?注文情報は毎日固定され、キャッシュに投入できます。ビジネス ロジックが異なれば、ビジネス デザインも異なります。 12306 は中国で最大の同時実行性を誇るフラッシュ セール Web サイトのはずです。100 万の同時実行性を誇ると主張しており、これはビジネス ロジックが 1 秒間に数百万回処理されることを意味します。 Taobao の最高同時アクセス数は年間 54 万件と推定されています。 この問題を解決すると、次のようになります。 CDN -> LVS -> NGINX -> ビジネス システム -> マシンあたり 10,000 人の同時ユーザー 一般的な電子商取引の注文プロセスは、次のようになります。 注文 -> 注文する -> 注文システムが在庫を減らす -> ユーザーが支払うのを待つ このトランザクションが同期的に完了すると、TPS はそれを長期間サポートできなくなります。 ただし、12306 のモデルは、注文する -> 在庫を減らして非同期で注文する -> 支払いを待つというものです。非同期とは、注文後、1 つのスレッドが在庫を減らし、別のスレッドが注文情報を直接 kafka または redis にスローして OK を返すことを意味します。ご注文が正常に完了したら、お支払いをお待ちいただきます。お支払いが完了すると、後続の注文処理スレッドがデータを取得し、処理後に Hbase または MySQL に保存されます。一般的な大規模トラフィック処理方法の核となる考え方は、分割統治です。 JVMの最適化たとえば、500,000 PV のデータ Web サイト (ディスクからメモリにドキュメントを抽出) があるとします。元のサーバーは 32 ビットで、ヒープ サイズは 1.5G です。ユーザーからウェブサイトが遅いという報告があります。 16G ヒープ メモリを搭載した 64 ビット サーバーにアップグレードしても、Web サイトが停止したままになっているという報告がユーザーからあり、状況は以前よりもさらに悪化しています。その理由は何でしょうか?一般的に、多くのユーザーがデータを閲覧すると、大量のデータがメモリにロードされ、メモリ不足、GC の頻繁化、STW 時間の長引くことになり、応答時間が遅くなります。それで私たちは何をすべきでしょうか? PS-> PN+CMS または G1 を使用します。 もう 1 つの問題は、システム CPU が 100% になることが多いことです。これを最適化するにはどうすればよいでしょうか? まず、CPU が 100% の場合、システム リソースを占有しているスレッドが存在すると考えられます。 どのプロセスのCPU使用率が高いか調べる(topコマンド) このプロセス内のどのスレッドの CPU が高いか (上位 -Hp) スレッドのスタックをエクスポートする どの方法(スタック稼ぎ)がより時間がかかるか調べる ワーカー スレッドの割合が高い |ガベージコレクションスレッドの割合が高い 要約する今日は基本的な操作についてのみ説明しました。具体的にはどのように行うのでしょうか?この部分については次の部分で説明します。今日は主に、よく使用されるいくつかのパラメータを理解し、それらの使用方法といくつかの前提知識を説明します。以下ではこれらの問題について実践的な説明をします。興味のある友人は、3つのボタンを一度にクリックすることを忘れないでください。皆様ありがとうございました。 |
<<: JVM パフォーマンスの最適化は難しいと聞きました。今日試してみました!
>>: 面接官は私に尋ねました。「分散トランザクションとは何ですか?」
中国には 860 億のウェブページ、230 万のウェブサイト、5 億 1,300 万人のインターネッ...
buyvm は最近プロモーションを行っていますが、実際にはいくつかの IP が配布されるだけです (...
Raksmartの「情熱的な初夏、5月の特別オファー「Gポート/無制限の超低価格1699は引き続き売...
最近、RongCloud はリアルタイムオーディオとビデオの全面的なアップグレードを正式に発表し、イ...
記者が公安部門から入手した情報によると、2012年4月15日以来、公安当局と工商当局は共同で統一行動...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますSEO 最...
2009 年に設立された興味深いロシアの VPS 業者 vpshoster (virtualdc.r...
[51CTO.com クイック翻訳] サーバーレステクノロジーはオンデマンドコンピューティングの最新...
実生活でも、インターネットでも、その他の分野でも、中小企業には独自の目標、開発計画、プログラムがあり...
原題:アリババクラウドが再びダウン、修復はすべて完了したと回答アリババクラウドは補償の詳細を明らかに...
企業のネットワーク管理者にとって、IT の最大の焦点はクラウド コンピューティングとソフトウェア定義...
今日の企業は、かつてないほど多くのデータにアクセスできます。これらのデータは、量と変動性の両面で驚く...
中国にインターネットが導入されてから25年目を迎え、トラフィックは「デジタル基盤」として、インターネ...
高速シンガポール VPS、最速シンガポール VPS、最速シンガポール VPS。シンガポールの VPS...
10億人以上のユーザーと毎日数億人のアクティブユーザーを抱える大規模なトラフィックアプリとして、We...