この記事は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 パフォーマンスの最適化は難しいと聞きました。今日試してみました!
>>: 面接官は私に尋ねました。「分散トランザクションとは何ですか?」
過去を遡ると、10年以上前、企業は従業員を募集するために主に現場での就職説明会や求人広告の掲示、また...
1. 劉強東は李国清に挑戦するために賭けを設定した:JD.comは少なくとも60億の現金を持っている...
sugarhosts から最新ニュースが届きました。スコットランドが英国から離脱せず、英国に留まると...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています何もない状...
ローカル ポータルを運営している多くの Web マスターにとって、ローカル ポータルはメンテナンスさ...
今や SEO は特別な秘密でも、神秘的なものでもありません。SEO チュートリアルはどこにでもありま...
anynode は特別な VPS (KVM 仮想、1Gbps、SSD ハード ドライブ) をリリース...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています毎日 13...
9月4日、Lenovo ThinkAgile SX for Microsoft Azure Stac...
2017 年のクラウド コンピューティング市場を振り返ると、この年はクラウド コンピューティングがさ...
オンラインマーケティングの発展と成長に伴い、従来のマーケティング手法は衰退し始めており、個人も企業も...
マーケティングは何に依存しているのでしょうか? 人間性です! ソフト記事の読者は誰でしょうか? 人間...
2012年、CITIC Pressは、ハーバード大学の学者で元米国外交官のジェイ・テイラー氏の著書『...
locvpsは中国の老舗VPSブランドで、10以上のデータセンターや回線でVPS事業を展開しているこ...
[[427099]]導入トランザクションはプログラム実行単位であり、その中ですべての操作が正常に実行...