Strategy:linear、free、host_pinned
Play がホストを処理する方法を変更します。
「Strategy:linear、free、host_pinned」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
Strategyがペースを決める
strategyプラグインは、playのタスクをホストがどのように進めるかを決めます。すべてのホストが足並みをそろえるのか、それぞれのペースで進むのかを制御します。
linearがデフォルト
デフォルトのlinear戦略では、すべてのホストで1つのタスクを実行し、全ホストの完了を待ってから、次のタスクへ一斉に進みます。
- hosts: web
strategy: linearlinearが遅くなる理由
linearでは、各タスクで最も遅いホストが全体の進行を遅らせます。速いサーバーも、遅いホストが完了してplayが進むまで待機します。
freeでホストを自由に走らせる
free戦略では待ち合わせがなくなります。各ホストは、他のホストが追いつくのを待たず、自分のペースでタスクをできるだけ速く進めます。
- hosts: web
strategy: freefreeは順序と引き換えに速度を得る
freeでは、ホストごとに完了するタイミングが異なり、出力も混在します。速度を得られる一方で、タスク単位で足並みをそろえる整然とした同期は失われます。
freeが有効な場面
ホスト同士が独立していて、一部のホストが大幅に遅い場合はfreeを選びます。あるホストがステップを完了してから別のホストを開始する必要がある場合は避けてください。
host_pinnedを知る
host_pinned戦略では、ワーカーがそのホストの処理完了まで1台のホストに割り当てられ続けます。フリート全体をラウンドロビン方式で処理することはありません。
- hosts: web
strategy: host_pinnedPinningが役立つ理由
新しいホストを処理する前に現在のホストを最後まで完了させることで、host_pinnedは同時に処理するマシン数を抑えます。これにより、ライセンスサーバーなどのバックエンドへの負荷を軽減できます。
Playごとに設定する
Strategyはplayレベルのキーです。そのため、1つのファイル内でもplayごとに異なる戦略を使用できます。各作業フェーズに最適な戦略を選んでください。
デフォルトを設定する
ansible.cfgのstrategyキーで、プロジェクト全体のデフォルトを選択できます。playごとの設定で上書きした場合は、そちらが優先されます。
[defaults]
strategy = freeStrategyとforksの組み合わせ
Strategyはホストの進み方を決め、forksは同時に実行するホスト数の上限を決めます。望むスループットを得るには、両方を組み合わせて調整します。
クイックチェック
バッチ内の1台のホストだけが他より大幅に遅く、playの進行を止めています。
まとめ
linearはホストの足並みをそろえ、freeはホストを独立して進ませ、host_pinnedは1台のホストを完了してから次を開始します。playごとに選択してください。🏁
よくある質問
「Strategy:linear、free、host_pinned」レッスンは無料ですか?
はい。「Strategy:linear、free、host_pinned」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「Strategy:linear、free、host_pinned」で何を学びますか?
Play がホストを処理する方法を変更します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「Strategy:linear、free、host_pinned」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- forks と並列実行のチューニング
- Strategy:linear、free、host_pinned
- SSH Pipelining と接続の再利用
- serial とローリングバッチ実行