検索
ホームページJava&#&面接の質問Alibaba ターミナル: 1 日あたり 100 万回のログイン リクエスト、8G メモリ、JVM パラメータを設定するにはどうすればよいですか?

数年後、私は 100 件以上の履歴書を修正し、200 件以上の模擬面接を実施しました。


Alibaba ターミナル: 1 日あたり 100 万回のログイン リクエスト、8G メモリ、JVM パラメータを設定するにはどうすればよいですか?

つい先週、Alibaba Cloud との最終技術面接でクラスメートが次の質問をされました。 1 日あたり 100 万回のログイン リクエストと 8G メモリを備えたサービス ノード JVM パラメータを設定するにはどうすればよいですか? 答えが理想的ではないと思われる場合は、見直しのために私のところに来てください。

履歴書の修正、履歴書の美化、履歴書の梱包、模擬面接なども必要な場合は、私に連絡してください。


#以下は、一石二鳥となる面接の質問の形で誰にでもわかるように整理したものです:

  • 実用的な参考のために
  • インタビューの参考にもなります
JVM 構成計画に加えて、誰もが学ぶ必要があるのは、問題を分析し、問題を考える視点。これらのアイデアや視点は、誰もがさらに前進するのに役立ちます。

次に、本題に入ります。

1 日あたり 100 万回のログイン リクエストと 8G メモリに対応する JVM パラメータを設定するにはどうすればよいですか?

1 日あたり 100 万回のログイン リクエストと 8G メモリに対応する JVM パラメータを設定する方法は、次の 8 ステップ に大別できます。

ステップ 1: 新しいシステムがオンラインになったときに容量を計画するにはどうすればよいですか?

1. ルーチンの概要

新しいビジネス システムでは、オンラインにする前に、サーバー構成と JVM メモリ パラメータを見積もる必要があります。この容量とリソースの計画は、は、システム設計者による単なるランダムな見積もりではなく、システムが配置されているビジネス シナリオに基づいて、システム運用モデルを推測し、JVM パフォーマンスや GC 頻度などの指標を評価して見積もる必要があります。以下は、ダニエルの経験と私自身の実践に基づいてまとめたモデリングのステップです:

  • # 業務システムが作成したオブジェクトが 1 秒あたりに占有するメモリ空間を計算し、次にクラスタ配下の各システムが 1 秒あたりに占有するメモリ空間 (オブジェクトの作成速度) を計算します。
  • マシン構成を設定し、新しい世代のスペースを見積もり、さまざまな新しい世代のサイズで MinorGC がトリガーされる頻度を比較します。
  • 頻繁な GC を回避するために、必要なマシン構成の数、デプロイされるマシンの数、JVM に与えられるメモリ領域の量、およびその量を再見積もりできます。新しい世代にスペースが与えられます。
  • この一連の構成に基づいて、基本的にシステム全体の動作モデル、1 秒あたりに作成されるオブジェクトの数、1 秒後にゴミになるオブジェクトの数、実行時間などを計算できます。システムの実行回数、および新しい世代が GC をトリガーする頻度。

2. ルーチンの実践 - システムへのログインを例にします

一部の学生は、これらの手順を見てもまだ混乱しています。そう言われているようですが、実際のプロジェクトではどうすればいいのかまだわかりません。

トリックを練習せずにただ話してください。ログイン システムを例として、推理プロセスをシミュレートします。
  • 1 日あたり 100 万のログイン リクエストがあり、ログインのピークが午前中にあると仮定すると、ピーク期間中は 1 秒あたり 100 のログイン リクエストがあると推定されます。
  • 3 台のサーバーがデプロイされ、各マシンが 1 秒あたり 30 のログイン リクエストを処理すると仮定します。ログイン リクエストを 1 秒間処理する必要があると仮定すると、新世代の JVM は 30 のログインを生成します。 1 秒あたりのリクエスト数。ログイン オブジェクト、リクエストが 1 秒後に完了すると、これらのオブジェクトはガベージになります。
  • ログイン リクエスト オブジェクトは 20 フィールドを想定し、オブジェクトは 500 バイトと推定され、RPC および DB 操作、ネットワーク通信、データベースの書き込み、キャッシュと書き込み 1 回の操作で 20 ~ 50 倍に拡張でき、約 1 秒で数百の k ~ 1M データを生成できます。
  • 2C4G マシンがデプロイされ、2G ヒープ メモリが割り当てられていると仮定すると、新しい世代はわずか数百 M です。1s1M のガベージ生成レートによると、MinorGC は 1 回トリガーされます数百秒以内に。
  • 4C8G マシンがデプロイされ、4G ヒープ メモリが割り当てられ、新しい世代に 2G が割り当てられると仮定すると、MinorGC をトリガーするまでに数時間かかります。

したがって、1 日あたり 100 万リクエストのログイン システムは、3 インスタンス クラスタに従って 4G ヒープ メモリと 2G 新世代 JVM を割り当てることでシステムを保証できると大まかに推測できます。通常負荷の4C8Gの構成。

基本的には新しいシステムのリソースを評価するため、新しいシステムを構築する場合、各インスタンスにどれだけの容量と構成が必要か、クラスター内にいくつのインスタンスが構成されるかなどは評価されません。頭と胸をなでるだけで、決断が下されます。

ステップ 2: ガベージ コレクターを選択するにはどうすればよいですか?

スループットまたは応答時間

最初に、スループットと低遅延という 2 つの概念を紹介します

スループット = ユーザー アプリケーション実行時の CPU 時間 / (ユーザー アプリケーション実行時の CPU 時間、CPU ガベージ コレクション時間)

応答時間 = 時間当たりの平均 GC 消費時間

通常、JVM ではスループットとレスポンスのどちらを優先するかがジレンマになります。

ヒープメモリが増えると、gcが一度に処理できる量が増えてスループットが高くなりますが、gcが一度に処理する時間が長くなり、処理時間が長くなります。後からキューに入れられたスレッドの待ち時間; 逆にヒープメモリが少ないとgc時間が短くなり、キューに入れられたスレッドの待ち時間が短くなり遅延は減りますが、一度のリクエスト数は少なくなります(完全に一致しているわけではありません)。

両方を同時に考慮することは不可能であり、スループットとレスポンスのどちらを優先するかは、よく検討する必要があります。

ガベージ コレクターの設計における考慮事項

  • JVM では、GC 中にガベージ コレクションと新しいオブジェクトの作成は許可されません (ガベージのクリーニングとスローを同時に行うのと同じです)。 。
  • JVM には Stop the world の一時停止時間が必要であり、STW によりシステムが一時停止し、リクエストを処理できなくなります。新しい世代の収集頻度は高く、パフォーマンス優先で、一般的に使用されるコピー アルゴリズムです。古い世代の収集頻度は低く、スペースに敏感で、コピー方法を避けます。
  • すべてのガベージ コレクターの目標は、GC の頻度を減らし、時間を短縮し、システムに対する GC の影響を軽減することです。
  • CMS と G1
  • 現在の主流のガベージ コレクター構成は、新世代では ParNew を使用し、旧世代では CMS を組み合わせて使用​​するか、完全に G1 コレクターを使用することです。

将来の傾向から判断すると、G1 は公式に維持され、より尊敬されているガベージ コレクターです。

業務システム:

以上がAlibaba ターミナル: 1 日あたり 100 万回のログイン リクエスト、8G メモリ、JVM パラメータを設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はJava后端技术全栈で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール