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

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

負荷分散技術は現在ではどこにでもありますが、基本的にはまだ使用段階であり、その核心は十分に理解されていません。実際に問題が発生した場合、何が原因なのかを知ることは難しく、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年は人類の墓掘り元年となるのか?人工知能のせいではない

ブログ    
ブログ    
ブログ    

推薦する

...

馬化騰氏は「人工知能の4つの主要な発展傾向が今後10年間で世界を変えるだろう」と述べた。

今後10年間で世界を変える人工知能の4つの主要な発展トレンドの分析61歳のビル・ゲイツ氏は大学卒業生...

数学的パラドックスが人工知能の限界を証明する

人間は一般的に何かが間違っていることを認識するのが得意ですが、AI システムはそうではありません。新...

梅雨から台風シーズンまで、ドローンが再び活躍

最近、静かに梅雨の季節が去り、猛烈な台風の季節が勢いよくやって来ています。 [[336317]] 8...

IDSにおける機械学習アルゴリズムの応用

[[267184]] [51CTO.com クイック翻訳] 近年の機械学習技術の急速な発展により、ネ...

間違い:2017 年に人工知能分野で何が起こったか

今年、AIプロジェクトのAlphaGoとLibratusが、それぞれ人間の最強の囲碁プレイヤーとポー...

MITはAIを活用して3Dプリント用の新素材の発見を加速

[[430184]]さまざまなアイテムの製造における 3D プリントの人気が高まるにつれ、特定の用途...

C# データ構造とアルゴリズム スタックの簡単な分析

コンピュータ サイエンスでは、スタックは、テーブルの末尾での挿入または削除操作に制限された線形テーブ...

...

顔認識ブームは沈静化すべきでしょうか?

北京地下鉄は昨年11月から、セキュリティチェックに顔認識技術を使用する試験運用を開始し、ブラックリス...

...

巨大企業の障壁の中で、人工知能のサブセクターでリーダーが出現している。これはAIにとって真の新しいチャンスである。

ディープラーニングと機械学習を中核とするAI技術は、主にコンピューティング能力とアルゴリズムのブレー...

...

GPT-4 は人間よりも資金調達を理解しています。 AIビジネスプランがベンチャーキャピタルを熱狂させる

AI が作成した資金調達計画が、実際に VC を熱狂的に追いつめたと信じられますか? GPT-4 に...