賢い負荷分散アルゴリズム: 頭を使って

賢い負荷分散アルゴリズム: 頭を使って

負荷分散技術は現在ではどこにでもありますが、基本的にはまだ使用段階であり、その核心は十分に理解されていません。実際に問題が発生した場合、何が原因なのかを知ることは難しく、Google や Baidu に頼るしか方法がない場合があります。 したがって、いくつかの核となる事柄を理解しておくとよいでしょう。

負荷分散の一般的なプロセスは、各サーバーから随時情報を収集するか、各サーバーが情報を積極的に報告し、それが構成コアによって保存され、重みが計算され、対応するアルゴリズムに従ってサービス マシンが選択されます。 (もちろん、これはこの記事の主題ではありませんし、私が言っていることは正しくないかもしれません)

私が紹介したいのは、重みに基づいてマシンを選択するための次のような巧妙なアルゴリズムです。

  1. int chooseOneRoute ( LB_SvrInfo * & pSvr )
  2. {
  3. ダブルdblTotalWeight = 0.0;
  4. 整数i = 0;
  5. time_t curTime =時間( NULL );
  6. //重みの計算方法はLateメソッドです
  7. ( curTime - calWeightTime >= CAL_WEIGHT_TIME_INTERVAL ) の場合
  8. {
  9. 重量を計算します。
  10. }
  11. //まず各サーバーの重みを合計します
  12. ( i = 0; i < MAX_SERVER_NUM; i++ )の場合
  13. {
  14. if ( !oServerInfo[i].isOkForRoute() )続行します
  15. dblTotalWeight += oServerInfo[i].getWeight();
  16. }
  17. dblTotalWeight *= rand() / ( RAND_MAX + 1.0 );
  18. //減算を行う
  19. ( i = 0; i < MAX_SERVER_NUM; i++ )の場合
  20. {
  21. if ( !oServerInfo[i].isOkForRoute() )続行します
  22. dblTotalWeight -= oServerInfo[i].getWeight();
  23. // 対応するサーバーを探す
  24. dblTotalWeight < 0 の場合、break;
  25. }
  26. pSvr = &(oServerInfo[i]);
  27. 0を返します
  28. }

段階的な説明は次のとおりです。

まず各マシンの重量値を計算して保存します。

[[214964]]

各機械の重量を順番に合計します。これは、各機械が総重量に占める割合に相当します。

乱数を取り、0 から 1 の間のランダムな値を取得し、それを選択したマシンのマークとして合計重量に掛けます。

そして、各機械の重量を順に減算します。選択した機械の重量範囲まで減算すると、機械番号が得られ、機械が選択されます。

アルゴリズム図は次のとおりです。

サーバーの重みが大きいほど、線分上で占める時間が長くなり、乱数によって選択される可能性が高くなります。

最初は数学者が考え出した公式だと思っていましたが、原理は驚くほど単純でした。つまり、良いものは必ずしも複雑ではなく、見た目が素晴らしいものは必ずしも複雑ではありませんが、ほとんどの人の想像を超えていることは間違いありません。

<<:  PaddlePaddleディープラーニングオープンソースプラットフォーム:中国のAI船が皆の漕ぎを待っている

>>:  2018年は人類の墓掘り元年となるのか?人工知能のせいではない

ブログ    
ブログ    

推薦する

マシンビジョンにはどのようなハードウェアが含まれていますか?

画像およびマシンビジョン技術を使用した産業オートメーションとインテリジェンスの需要があらゆる分野で広...

私の国は、送電線の加熱を検出するために初めてAI技術を大規模に使用しました。

8月14日、科技日報によると、国家電網電力宇宙科技有限公司と華北電力大学などが開発した送電線赤外線...

ビール会社がIoTとAIを活用する方法

ワイン、酒類、ビール会社を含むあらゆる業界が、モノのインターネット (IoT) と人工知能 (AI)...

注目すべき中国の創造物:ユビキタス人工知能が夢を現実にする

人工知能はどこから来たのでしょうか? 人工知能は人類をどこへ連れて行くのでしょうか? 人工知能は「見...

...

...

...

大規模マルチビューガウスモデル(LGM):5秒で高品質の3Dオブジェクトを生成、試用可能

メタバースにおける 3D クリエイティブ ツールの需要の高まりに対応するため、3 次元コンテンツ生成...

Zhihuのホットトピック:最近AmazonのAIチームから大量の人材が去った?李牧自ら事実を明らかにした!

[[326634]]最近、「アマゾンAI李牧のチームから大量の人材が抜けたことについてどう思います...

蔡子星院士:オープンソースは人工知能開発の新たなトレンド

[[397103]] 「AIコア技術の躍進は産業の高度化の原動力であり、オープンソースはAI発展の新...

人工知能は気候変動に対する新時代の解決策である

人類が地球環境において行った行為を元に戻すために、人工知能が私たちの手助けをしてくれるでしょう。気候...

深層強化学習における敵対的攻撃と防御

01 はじめにこの論文は、深層強化学習に対する敵対的攻撃に関する研究です。本論文では、著者らは、堅牢...

ChatGPT を助手席に乗せましょう!清華大学、中国科学院、MITが共同でCo-Pilotヒューマン・コンピュータ・インタラクション・フレームワークを提案:乗客の意図を完璧に制御

今年の人工知能分野における最も重要なブレークスルーの一つとして、大規模言語モデルの研究は常に主要な関...

知湖橋プラットフォームにおける大型モデルの応用と実践

1. 事業の状況及び背景まずはブリッジプラットフォームを紹介します。 Bridge は、Zhihu ...