SlideShare une entreprise Scribd logo
1  sur  79
SRE本 輪読会 #26
第22章 カスケード障害への対応
2018/11/12 インフラ勉強会
nntsugu @nntsugu
自己紹介
● 名前: んんつぐ @nntsugu
● 職業: SaaSやってるスタートアップのインフラENG
● 特技: 24x365 On-Call対応
● 最近の悩みはchromeのタブを閉じきれないこと
Welcome
● ボイスオン、まさかり、何でもwelcomeです。
著者と名言
- 執筆: Mike Ulrich
- The tech lead of the Gmail SRE (2014年当時)
- https://www.usenix.org/conference/srecon14/technical-sessions/presentation/ulrich
- 写真見つからず
著者と名言
- 最初に成功しなかったら、指数的にバックオフすることだ。
- なぜ人々は少しのジッターを加えることをいつも忘れてしまうのか?
22章の内容
● カスケード障害って何?
● カスケード障害を予防するためにできること
○ サーバー過負荷を回避するための戦略・実装を知ろう
○ 高負荷時、フィードバックという複雑系の中で、自分たちのシステムに何が起こるのかを
予測するのは難しい→実際に障害が起こるまで負荷をかけて確認しよう
● それでもカスケード障害は起こる。起こった時の対処方法を準備しておこ
う
○ エラーバジェットの範囲内でサービスを復旧させるための準備をしよう
カスケード障害って何?
22.1 カスケード障害の原因及び回避のための設計
カスケード障害の大部分を占める典型的なケースは3つ
● 22.1.1 サーバーの過負荷
● 22.1.2 リソースの枯渇
● 22.1.3 利用できないサービス
カスケード障害って何?
22.1 カスケード障害の原因及び回避のための設計
カスケード障害の大部分を占める典型的なケースは3つ
● 22.1.1 サーバーの過負荷
● 22.1.2 リソースの枯渇
● 22.1.3 利用できないサービス
カスケード障害って何?
22.1 カスケード障害の原因及び回避のための設計
● サーバーが過負荷になる
カスケード障害って何?
22.1 カスケード障害の原因及び回避のための設計
● サーバーが過負荷になる
1000QPS
カスケード障害って何?
22.1 カスケード障害の原因及び回避のための設計
● サーバーが過負荷になる
1000QPS
カスケード障害って何?
22.1 カスケード障害の原因及び回避のための設計
● サーバーが過負荷になる
カスケード障害って何?
22.1 カスケード障害の原因及び回避のための設計
● サーバーが過負荷になる
カスケード障害って何?
22.1 カスケード障害の原因及び回避のための設計
● サーバーが過負荷になる
1000QPS
503 503
カスケード障害って何?
22.1 カスケード障害の原因及び回避のための設計
カスケード障害の大部分を占める典型的なケースは3つ
● 22.1.1 サーバーの過負荷
● 22.1.2 リソースの枯渇
● 22.1.3 利用できないサービス
カスケード障害って何?
22.1 カスケード障害の原因及び回避のための設計
● 22.1.2 リソースの枯渇
○ 枯渇しうるリソースは様々(CPU/メモリ/スレッド/ファイルディスクリプタ/ディスクIO…)
○ 枯渇したリソースの種類・原因によって、様々な影響をサーバーに及ぼす
■ 処理遅延によるキューあふれ→新しいリクエストの受け入れを拒否する
■ スローダウンして応答速度劣化→リクエスト元がタイムアウトし、リトライを始める→
リトライの実装次第でさらに状況が悪化する
○ リソース間の依存関係
■ リソースの枯渇は連鎖する
■ そのため、根本原因を特定する事が困難な場合も多い
■ 22.1.2.5の例の場合、バックエンドのリソース枯渇の根本原因が、フロントエンドのGC
チューニングの不味さにあるのだが、そこに辿りつくまでの根本原因っぽい多数の症状
が邪魔をする
カスケード障害って何?
22.1 カスケード障害の原因及び回避のための設計
カスケード障害の大部分を占める典型的なケースは3つ
● 22.1.1 サーバーの過負荷
● 22.1.2 リソースの枯渇
● 22.1.3 利用できないサービス
カスケード障害って何?
22.1 カスケード障害の原因及び回避のための設計
● 22.1.3 利用できないサービス
○ リソースの枯渇などで一部のサーバーがクラッシュすると、残りのサーバーの負荷が増大
し、”22.1.1 サーバーの過負荷”にあったように、連鎖的にサーバーが落ちていく
カスケード障害って何?
22.1 カスケード障害の原因及び回避のための設計
● サーバーが過負荷になる
1000QPS
カスケード障害って何?
22.1 カスケード障害の原因及び回避のための設計
● 22.1.3 利用できないサービス
○ リソースの枯渇などで一部のサーバーがクラッシュすると、残りのサーバーの負荷が増大
し、”22.1.1 サーバーの過負荷”にあったように、連鎖的にサーバーが落ちていく
○ この状態だと、中途半端にサーバーを復旧させても
■ 上がった瞬間にキャパシティ以上のリクエストを受けてまた死ぬ
■ 応答はできるが、キューがたまりすぎて以降の応答を拒否するレイムダック状態に陥る
■ バランサからのヘルスチェックにタイムアウトしてS-outされる
○ →復旧しようとしたサーバーはモグラたたきのように起き上がろうとする度に倒され続け、
復旧できない状態が続く
カスケード障害って何?
22.1 カスケード障害の原因及び回避のための設計
● 22.1.3 利用できないサービス
○ リソースの枯渇などで一部のサーバーがクラッシュすると、残りのサーバーの負荷が増大
し、”22.1.1 サーバーの過負荷”にあったように、連鎖的にサーバーが落ちていく
○ この状態だと、中途半端にサーバーを復旧させても
■ 上がった瞬間にキャパシティ以上のリクエストを受けてまた死ぬ
■ 応答はできるが、キューがたまりすぎて以降の応答を拒否するレイムダック状態に陥る
■ バランサからのヘルスチェックにタイムアウトしてS-outされる
○ →復旧しようとしたサーバーはモグラたたきのように起き上がろうとする度に倒され続け、
復旧できない状態が続く
過負荷を防ぐための戦略。並びは大まかな優先順位順。
● サーバーのキャパシティの上限のロードテストを行い、過負荷時の障害の状
態を調べる
● 品質を落とした結果を返す
● 過負荷時のリクエスト拒否の仕組みをサーバーに用意する
● サーバーを過負荷に陥らせるよりは、より高レベルのシステムでリクエスト
を拒否する仕組みを用意する
● キャパシティプランニングの実施
カスケード障害を予防するためにできること
22.2 サーバーの過負荷の回避 - 戦略の話
過負荷を防ぐための戦略。並びは大まかな優先順位順。
● サーバーのキャパシティの上限のロードテストを行い、過負荷時の障害の状
態を調べる
● 品質を落とした結果を返す
● 過負荷時のリクエスト拒否の仕組みをサーバーに用意する
● サーバーを過負荷に陥らせるよりは、より高レベルのシステムでリクエスト
を拒否する仕組みを用意する
● キャパシティプランニングを実施する
カスケード障害を予防するためにできること
22.2 サーバーの過負荷の回避 - 戦略の話
● サーバーのキャパシティの上限のロードテストを行い、過負荷時の障害の状
態を調べる
○ 高負荷時、フィードバックという複雑系の中で、自分たちのシステムに何が起こるのかを予
測するのは難しい→実際に障害が起こるまで負荷をかけて確認ておこう というお話
● 大きくわけてやることは3つ
○ 22.5.1 テストによる障害の発生とその後の観察
○ 22.5.2 一般的なクライアントのテスト
○ 22.5.3 重要度の低いバックエンドのテスト
カスケード障害を予防するためにできること
22.5 カスケード障害に備えるためのテスト
● 22.5.1 テストによる障害の発生とその後の観察
○ 障害が起きるまで負荷をかけ、カスケード障害耐性の低いコンポーネントをあぶり出す
○ 様々な負荷のパターンでテストし、情報を集める
■ 負荷を徐々に上げた場合、一気に上げた場合
■ 上限を大きく越える負荷をかけた状態から通常の負荷に落とした時、システムはどうな
っているか?
● 自力でデグレーデッドモードから抜けられるか?
● 複数のサーバーがクラッシュした場合、システムの安定を取り戻すまでにどの程
度の負荷をドロップしなければならないか?
○ 本番環境になるべく近い環境でテストする
■ 場合によっては本番環境でのテストも検討する
カスケード障害を予防するためにできること
22.5 カスケード障害に備えるためのテスト
● 22.5.2 一般的なクライアントのテスト
○ サービスがダウンしている間、クライアントが処理をキューイングしておけるか。
○ リトライ間隔はジッタでゆらぎを加えた指数的バックオフを使用しているか。
○ クライアントの一斉アップデートでクライアント側のキャッシュがクリアされ、大きな負荷
をかけてくるような脆弱性はないか。
● を、
○ 外部のクライアント/内部のクライアント共に、振る舞いを可能な限り把握/制御しておく
カスケード障害を予防するためにできること
22.5 カスケード障害に備えるためのテスト
● 22.5.3 重要度の低いバックエンドのテスト
○ 重要度が低い=それがあってもなくてもサービスの品質がさほど変わらないもの
○ そこに問題が置きた場合でも、サービス全体がひきずられないかを確認するためのテスト
カスケード障害を予防するためにできること
22.5 カスケード障害に備えるためのテスト
過負荷を防ぐための戦略。並びは大まかな優先順位順。
● サーバーのキャパシティの上限のロードテストを行い、過負荷時の障害の状
態を調べる
● 品質を落とした結果を返す
● 過負荷時のリクエスト拒否の仕組みをサーバーに用意する
● サーバーを過負荷に陥らせるよりは、より高レベルのシステムでリクエスト
を拒否する仕組みを用意する
● キャパシティプランニングを実施する
カスケード障害を予防するためにできること
22.2 サーバーの過負荷の回避 - 戦略の話
● 品質を落とした結果を返す
○ グレースフルでグラデーション
○ 過負荷時/高負荷時にレスポンスの品質を落とす
カスケード障害を予防するためにできること
22.2.2 ロードシェディングとグレースフルデグラデーション
カスケード障害を予防するためにできること
22.2.2 ロードシェディングとグレースフルデグラデーション
E
P
機能A
機能C
機能N
機能B
︙
平常時のAPI
カスケード障害を予防するためにできること
22.2.2 ロードシェディングとグレースフルデグラデーション
E
P
機能A
機能C
機能N
機能B
︙
平常時のAPI
カスケード障害を予防するためにできること
22.2.2 ロードシェディングとグレースフルデグラデーション
E
P
機能A
機能C
機能N
機能B
︙
平常時のAPI
カスケード障害を予防するためにできること
22.2.2 ロードシェディングとグレースフルデグラデーション
E
P
機能A
機能C
機能N
機能B
︙
平常時のAPI
カスケード障害を予防するためにできること
22.2.2 ロードシェディングとグレースフルデグラデーション
E
P
機能A
機能C
機能N
機能B
︙
平常時のAPI
カスケード障害を予防するためにできること
22.2.2 ロードシェディングとグレースフルデグラデーション
E
P
機能A
機能C
機能N
機能B
︙
平常時のAPI
カスケード障害を予防するためにできること
22.2.2 ロードシェディングとグレースフルデグラデーション
E
P
機能A
機能C
機能N
機能B
︙
過負荷時のAPI
カスケード障害を予防するためにできること
22.2.2 ロードシェディングとグレースフルデグラデーション
E
P
機能A
機能C
機能N
機能B
︙
過負荷時のAPI
❌
DBアクセスをやめ、キャッシュを使って
処理を行うA
カスケード障害を予防するためにできること
22.2.2 ロードシェディングとグレースフルデグラデーション
E
P
機能A
機能C
機能N
機能B
︙
過負荷時のAPI
❌
DBアクセスをやめ、キャッシュを使って
処理を行うA
処理自体をオミットされるB
カスケード障害を予防するためにできること
22.2.2 ロードシェディングとグレースフルデグラデーション
E
P
機能A
機能C
機能N
機能B
︙
過負荷時のAPI
❌
・タイムアウトの短縮
・EPからのリトライ回数を減らす
その他機能群
DBアクセスをやめ、キャッシュを使って
処理を行うA
処理自体をオミットされるB
● 過負荷時のリクエスト拒否の仕組みをサーバーに用意する
○ ロードシェディング
○ 過負荷になってクラッシュしたり、復旧が困難になるくらいなら、トラフィックをドロップ
してしまう
■ リソースに基づいたタスク単位のスロットリング
■ キューの長さ・タイムアウト値を調整し、過負荷時に頑張って処理してもリクエスト自
体がタイムアウトしてしまい意味がない などの状態を避ける
カスケード障害を予防するためにできること
22.2.2 ロードシェディングとグレースフルデグラデーション
● 念頭に置くこと
○ グレースフルデグラデーション
■ キャパシティプランニングの失敗や、予想外の負荷に対して使うもの。
■ →頻繁に行うものではない。(過負荷時に自動でON/OFFできるように)
■ シンプルかつ理解しやすいように保つ
■ 滅多に発生しないものもある。意図的に過負荷状態を作り、動作確認および、運用経験
を培っておくこと
○ デグレーデッドモードになっているかどうかをちゃんと監視しておくこと
○ 複雑なものはそれ自体が問題になりかねない
■ 意図的に、素早くオフにできるようにしておく
■ 必要に応じてチューニングできるようにしておく
カスケード障害を予防するためにできること
22.2.2 ロードシェディングとグレースフルデグラデーション
カスケード障害を予防するためにできること
22.2 サーバーの過負荷の回避 - 戦略の話
過負荷を防ぐための戦略。並びは大まかな優先順位順。
● サーバーのキャパシティの上限のロードテストを行い、過負荷時の障害の状
態を調べる
● 品質を落とした結果を返す
● 過負荷時のリクエスト拒否の仕組みをサーバーに用意する
● サーバーを過負荷に陥らせるよりは、より高レベルのシステムでリクエスト
を拒否する仕組みを用意する
● キャパシティプランニングを実施する
● サーバーを過負荷に陥らせるよりは、より高レベルのシステムでリクエスト
を拒否する仕組みを用意する
○ レートの制限の話。多くの箇所で実装できる
■ リバースプロキシやFW、WAF
● IPアドレスなどの条件に基づき、リクエストの量を制限する
■ ロードバランサー
● 一定量以上のトラフィックを無差別にドロップ
● 選択的にドロップ
■ 個々のタスク
● ロードバランシングによるランダムな変動が発生しても、過負荷に陥らないよう
にする。キューのサイズやタイムアウトを適切なものにする。
カスケード障害を予防するためにできること
22.2 サーバーの過負荷の回避 - 戦略の話
カスケード障害を予防するためにできること
22.2 サーバーの過負荷の回避 - 戦略の話
過負荷を防ぐための戦略。並びは大まかな優先順位順。
● サーバーのキャパシティの上限のロードテストを行い、過負荷時の障害の状
態を調べる
● 品質を落とした結果を返す
● 過負荷時のリクエスト拒否の仕組みをサーバーに用意する
● サーバーを過負荷に陥らせるよりは、より高レベルのシステムでリクエスト
を拒否する仕組みを用意する
● キャパシティプランニングを実施する
● キャパシティプランニングを実施する
○ カスケード障害が発生する可能性を下げるのに有効
■ 実績値から負荷予測を立てつつ、ちゃんとテストする
● データを集めて、未来を予測して、対応できるよう準備する
● ちょっと古いけど 攻めの運用の極意 のp.31、p.41あたりがわかりやすいかもしれ
ない
カスケード障害を予防するためにできること
22.2 サーバーの過負荷の回避 - 戦略の話
● ここまでは戦略の話
カスケード障害を予防するためにできること
22.2 サーバーの過負荷の回避 - 戦略の話
過負荷を防ぐための設計の話
● 22.2.1 キューの管理
● 22.2.2 ロードシェディングとグレースフルデグラデーション
● 22.2.3 リトライ
● 22.2.4 レイテンシとタイムアウト
カスケード障害を予防するためにできること
22.2 サーバー過負荷の回避 - 設計の話
過負荷を防ぐための設計の話
● 22.2.1 キューの管理
● 22.2.2 ロードシェディングとグレースフルデグラデーション
● 22.2.3 リトライ
● 22.2.4 レイテンシとタイムアウト
カスケード障害を予防するためにできること
22.2 サーバー過負荷の回避 - 設計の話
● キュー
○ スレッドなどの処理系が渋滞している時のリクエスト置き場
○ あふれたらそれ以上のリクエストを拒否するのが一般的
○ リクエストレートとレイテンシが一定であれば不要なもの
■ Gmailなどの一部タスクではキューが無く、溢れれば他のサーバーへフェイルオーバー
している
○ キューにリクエストをためるということ
■ リソースも消費するし、待ち時間も増える
■ 待たせすぎてリクエストがタイムアウトすると意味が無いので、短めにするのが吉
カスケード障害を予防するためにできること
22.2.1 キューの管理
過負荷を防ぐための設計の話
● 22.2.1 キューの管理
● 22.2.2 ロードシェディングとグレースフルデグラデーション
● 22.2.3 リトライ
● 22.2.4 レイテンシとタイムアウト
カスケード障害を予防するためにできること
22.2 サーバー過負荷の回避 - 設計の話
過負荷を防ぐための設計の話
● 22.2.1 キューの管理
● 22.2.2 ロードシェディングとグレースフルデグラデーション
● 22.2.3 リトライ
● 22.2.4 レイテンシとタイムアウト
カスケード障害を予防するためにできること
22.2 サーバー過負荷の回避 - 設計の話
● リクエストがタイムアウトしたり、エラーが返ってきた場合にすること
● バックエンドが過負荷・不安定時にリトライを繰り返すことで、事態を悪化
させることを避けましょう。というお話
○ “22.5.1”にあるように、障害が発生するまで負荷をかけてテストをしておく
○ リトライ間隔をJitta(ばらつき)を加えた指数的バックオフを利用して散らし、集団死体蹴りを
しない
■ Exponential Backoff And Jitter
○ リトライバジェットの導入
○ リトライが多数のレイヤで行われ、増幅されないようにする
○ リトライを制御するためのレスポンスコード設計
カスケード障害を予防するためにできること
22.2.3 リトライ
過負荷を防ぐための設計の話
● 22.2.1 キューの管理
● 22.2.2 ロードシェディングとグレースフルデグラデーション
● 22.2.3 リトライ
● 22.2.4 レイテンシとタイムアウト
カスケード障害を予防するためにできること
22.2 サーバー過負荷の回避 - 設計の話
● タイムアウト
○ リクエスト元のタイムアウト時間(A)内に処理結果を返せなければ、何の意味もない。
■ フロントエンド、バックエンドといった各レイヤで個別にタイムアウト値を持つと
● (A)を越えてもリソースを消費し続けることになり、無駄。過負荷の要因にもなっ
てしまう
○ 各レイヤでタイムアウトを持つのではなく、リクエストを処理する全体でタイムアウト値を
伝搬し、(A)を越えそうな場合は処理を諦めるなり、レスポンスの品質を下げてでも間に合わ
せるようにする
カスケード障害を予防するためにできること
22.2.4 レイテンシとタイムアウト
● 二峰性のレイテンシ
○ 一部のリクエストがシステム全体の処理を待たせる場合がある
■ Bigtableのある範囲の行が利用できない状態となり、5%のリクエスト(A)がタイムアウ
トする状況になっている。Bigtableを利用しないリクエスト(B)は100msで処理できる。
■ (A)がスレッドを消費しきってしまうと、ひきずられて(B)のレイテンシも大きく遅くな
る
○ 対処ガイドライン
■ レイテンシの平均だけでなく、分散も見て、(A)のようなリクエストを検知する
■ タイムアウトまで待つケースと、すぐエラーを返すケースを明確に分ける
■ 大きすぎるタイムアウト値は使わない
■ 処理が遅くなる可能性のあるリクエストが利用できるリソースを限定する
カスケード障害を予防するためにできること
22.2.4 レイテンシとタイムアウト
● カスケード障害を引き起こす要素
○ 22.4.1 プロセスの停止
○ 22.4.2 プロセスのアップデート
○ 22.4.3 ロールアウト
○ 22.4.4 自然な利用の増大
○ 22.4.5 計画済みの変更、ドレイン、ターンダウン
カスケード障害を予防するためにできること
22.4 カスケード障害を引き起こす条件
● カスケード障害を引き起こす要素
○ 22.4.1 プロセスの停止
○ 22.4.2 プロセスのアップデート
○ 22.4.3 ロールアウト
○ 22.4.4 自然な利用の増大
○ 22.4.5 計画済みの変更、ドレイン、ターンダウン
カスケード障害を予防するためにできること
22.4 カスケード障害を引き起こす条件
● 22.4.1 プロセスの停止
○ 死のクエリ、アサーションの失敗などのアプリケーション内部の問題によるもの
○ クラスタの問題によるもの
カスケード障害を予防するためにできること
22.4 カスケード障害を引き起こす条件
● カスケード障害を引き起こす要素
○ 22.4.1 プロセスの停止
○ 22.4.2 プロセスのアップデート
○ 22.4.3 ロールアウト
○ 22.4.4 自然な利用の増大
○ 22.4.5 計画済みの変更、ドレイン、ターンダウン
カスケード障害を予防するためにできること
22.4 カスケード障害を引き起こす条件
● 22.4.2 プロセスのアップデート
○ 新バージョンのバイナリや設定のアップデートにより、一時的にタスク単位での処理能力が
低下し、カスケード障害を引き起こす
○ 一時的にリソースを増やす、トラフィックの低いタイミングにアップデートする、ローリン
グアップデートする
カスケード障害を予防するためにできること
22.4 カスケード障害を引き起こす条件
● カスケード障害を引き起こす要素
○ 22.4.1 プロセスの停止
○ 22.4.2 プロセスのアップデート
○ 22.4.3 ロールアウト
○ 22.4.4 自然な利用の増大
○ 22.4.5 計画済みの変更、ドレイン、ターンダウン
カスケード障害を予防するためにできること
22.4 カスケード障害を引き起こす条件
● 22.4.3 ロールアウト
○ なんらかの変更により問題が生じた場合は、すぐにロールバックできるようにしておきまし
ょう。
■ 変更履歴のロギング機能
■ 任意の時点へのロールバック機能
○ があると良い
カスケード障害を予防するためにできること
22.4 カスケード障害を引き起こす条件
● カスケード障害を引き起こす要素
○ 22.4.1 プロセスの停止
○ 22.4.2 プロセスのアップデート
○ 22.4.3 ロールアウト
○ 22.4.4 自然な利用の増大
○ 22.4.5 計画済みの変更、ドレイン、ターンダウン
カスケード障害を予防するためにできること
22.4 カスケード障害を引き起こす条件
● 22.4.5 計画済みの変更、ドレイン、ターンダウン
○ 22.4.5.1 リクエストのプロファイルの変化
■ 時間の経過とともにリクエストの傾向は変化する
○ 22.4.5.2 リソースの制限
■ 明示的に確保していないリソースを当てにするのはやめましょう
カスケード障害を予防するためにできること
22.4 カスケード障害を引き起こす条件
● カスケード障害が生じていることが判明した場合の対処
○ 22.6.1 リソースの追加
○ 22.6.2 ヘルスチェックが障害を引き起こさないようにする
○ 22.6.3 サーバーの再起動
○ 22.6.4 トラフィックのドロップ
○ 22.6.5 デグレーデッドモードへの移行
○ 22.6.6 バッチ負荷の排除
○ 22.6.7 問題のあるトラフィックの排除
カスケード障害が起こった時の対処方法を準
備しておく
22.6 カスケード障害に対応するためにすぐ行うべき手順
● カスケード障害が生じていることが判明した場合の対処
○ 22.6.1 リソースの追加
○ 22.6.2 ヘルスチェックが障害を引き起こさないようにする
○ 22.6.3 サーバーの再起動
○ 22.6.4 トラフィックのドロップ
○ 22.6.5 デグレーデッドモードへの移行
○ 22.6.6 バッチ負荷の排除
○ 22.6.7 問題のあるトラフィックの排除
カスケード障害が起こった時の対処方法を準
備しておく
22.6 カスケード障害に対応するためにすぐ行うべき手順
● 22.6.2 ヘルスチェックが障害を引き起こさないようにする
○ 過負荷によって、スケジューラによるヘルスチェックが通らない状態
■ タスクを再起動させると状況が悪化する
■ 一時的にヘルスチェックを停止して、システムの安定を待つ
○ ロードバランサーからのヘルスチェックと、クラスタのスケジューラによるヘルスチェック
はちゃんと区別しましょう
カスケード障害が起こった時の対処方法を準
備しておく
22.6 カスケード障害に対応するためにすぐ行うべき手順
● カスケード障害が生じていることが判明した場合の対処
○ 22.6.1 リソースの追加
○ 22.6.2 ヘルスチェックが障害を引き起こさないようにする
○ 22.6.3 サーバーの再起動
○ 22.6.4 トラフィックのドロップ
○ 22.6.5 デグレーデッドモードへの移行
○ 22.6.6 バッチ負荷の排除
○ 22.6.7 問題のあるトラフィックの排除
カスケード障害が起こった時の対処方法を準
備しておく
22.6 カスケード障害に対応するためにすぐ行うべき手順
● 22.6.4 トラフィックのドロップ
○ カスケード障害から復旧するための対応で、一時的にシステムのキャパシティが低下する際
に検討する
○ 確実にユーザー影響を与えるので慎重に検討する
カスケード障害が起こった時の対処方法を準
備しておく
22.6 カスケード障害に対応するためにすぐ行うべき手順
● カスケード障害が生じていることが判明した場合の対処
○ 22.6.1 リソースの追加
○ 22.6.2 ヘルスチェックが障害を引き起こさないようにする
○ 22.6.3 サーバーの再起動
○ 22.6.4 トラフィックのドロップ
○ 22.6.5 デグレーデッドモードへの移行
○ 22.6.6 バッチ負荷の排除
○ 22.6.7 問題のあるトラフィックの排除
カスケード障害が起こった時の対処方法を準
備しておく
22.6 カスケード障害に対応するためにすぐ行うべき手順
● 22.6.5 デグレーデッドモードへの移行
○ 処理量を軽減するためレスポンスの品質を落とす
○ 重要でないトラフィックをドロップする
■ 22.2.2 ロードシェディングとグレースフルデグラデーション
○ 前提条件
■ サービスに組み込んでおかないと使えない
■ デグレードできるトラフィックが何かわかっている必要がある
■ ペイロードの違いを判別できる状態になっている必要がある
カスケード障害が起こった時の対処方法を準
備しておく
22.6 カスケード障害に対応するためにすぐ行うべき手順
● カスケード障害が生じていることが判明した場合の対処
○ 22.6.1 リソースの追加
○ 22.6.2 ヘルスチェックが障害を引き起こさないようにする
○ 22.6.3 サーバーの再起動
○ 22.6.4 トラフィックのドロップ
○ 22.6.5 デグレーデッドモードへの移行
○ 22.6.6 バッチ負荷の排除
○ 22.6.7 問題のあるトラフィックの排除
カスケード障害が起こった時の対処方法を準
備しておく
22.6 カスケード障害に対応するためにすぐ行うべき手順
● 22.6.6 バッチ負荷の排除
○ 過負荷を悪化させるような処理は止めましょう
カスケード障害が起こった時の対処方法を準
備しておく
22.6 カスケード障害に対応するためにすぐ行うべき手順
● カスケード障害が生じていることが判明した場合の対処
○ 22.6.1 リソースの追加
○ 22.6.2 ヘルスチェックが障害を引き起こさないようにする
○ 22.6.3 サーバーの再起動
○ 22.6.4 トラフィックのドロップ
○ 22.6.5 デグレーデッドモードへの移行
○ 22.6.6 バッチ負荷の排除
○ 22.6.7 問題のあるトラフィックの排除
カスケード障害が起こった時の対処方法を準
備しておく
22.6 カスケード障害に対応するためにすぐ行うべき手順
● 22.6.7 問題のあるトラフィックの排除
○ 死のクエリや、DDoSのような問題のあるトラフィックを排除する方法を準備しておく
カスケード障害が起こった時の対処方法を準
備しておく
22.6 カスケード障害に対応するためにすぐ行うべき手順
● デグレーデッドモードはカスケード障害に対して有効
○ 責任者は^への分岐点と、そのときシステムの振る舞いにどのような変化が起こるのかを
知っておく必要がある
● ちょっとした改善活動がシステムのバランスを崩し、カスケード障害を招
くことがある
○ 変更を評価するときは十分注意する
22.7 まとめ
自分のまとめ
● カスケード障害って何?
● カスケード障害を予防するためにできること
○ サーバー過負荷を回避するための戦略・実装を知ろう
○ 高負荷時、フィードバックという複雑系の中で、自分たちのシステムに何が起こるのかを
予測するのは難しい→実際に障害が起こるまで負荷をかけて確認しよう
● それでもカスケード障害は起こる。起こった時の対処方法を準備しておこ
う
○ エラーバジェットの範囲内でサービスを復旧させるための準備をしよう
カスケード障害を予防するためにできること
22.2.2 ロードシェディングとグレースフルデグラデーション
E
P
機能A
機能C
機能N
機能B
︙
平常時のAPI
カスケード障害を予防するためにできること
22.3 起動直後の低パフォーマンスとコールドキャッシュ

Contenu connexe

Tendances

ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところY Watanabe
 
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?ichirin2501
 
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道  〜最終章: Babel / TypeScript Modules との闘い〜Node.js Native ESM への道  〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜Teppei Sato
 
Goで実装した UPSIDERの決済金額リミット機能
Goで実装した UPSIDERの決済金額リミット機能 Goで実装した UPSIDERの決済金額リミット機能
Goで実装した UPSIDERの決済金額リミット機能 Miki Masumoto
 
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...whywaita
 
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方増田 亨
 
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門増田 亨
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」Masahito Zembutsu
 
設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外Takuya Sato
 
ブラック企業から学ぶMVCモデル
ブラック企業から学ぶMVCモデルブラック企業から学ぶMVCモデル
ブラック企業から学ぶMVCモデルYuta Hiroto
 
分散システムの限界について知ろう
分散システムの限界について知ろう分散システムの限界について知ろう
分散システムの限界について知ろうShingo Omura
 
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界Y Watanabe
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけらAtsushi Nakamura
 
UMLモデルを使った自動生成
UMLモデルを使った自動生成UMLモデルを使った自動生成
UMLモデルを使った自動生成Norihito Ohshima
 
TDD のこころ
TDD のこころTDD のこころ
TDD のこころTakuto Wada
 
TDD のこころ @ OSH2014
TDD のこころ @ OSH2014TDD のこころ @ OSH2014
TDD のこころ @ OSH2014Takuto Wada
 
もうひとつのアンチパターン OTLT、あるいは如何にして私はオレオレフレームワークを忌み嫌うようになったか
もうひとつのアンチパターン OTLT、あるいは如何にして私はオレオレフレームワークを忌み嫌うようになったかもうひとつのアンチパターン OTLT、あるいは如何にして私はオレオレフレームワークを忌み嫌うようになったか
もうひとつのアンチパターン OTLT、あるいは如何にして私はオレオレフレームワークを忌み嫌うようになったかsuno88
 

Tendances (20)

ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
 
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
 
Consistent hash
Consistent hashConsistent hash
Consistent hash
 
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道  〜最終章: Babel / TypeScript Modules との闘い〜Node.js Native ESM への道  〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
 
Goで実装した UPSIDERの決済金額リミット機能
Goで実装した UPSIDERの決済金額リミット機能 Goで実装した UPSIDERの決済金額リミット機能
Goで実装した UPSIDERの決済金額リミット機能
 
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
 
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
 
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
 
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外
 
ブラック企業から学ぶMVCモデル
ブラック企業から学ぶMVCモデルブラック企業から学ぶMVCモデル
ブラック企業から学ぶMVCモデル
 
分散システムの限界について知ろう
分散システムの限界について知ろう分散システムの限界について知ろう
分散システムの限界について知ろう
 
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
 
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
 
UMLモデルを使った自動生成
UMLモデルを使った自動生成UMLモデルを使った自動生成
UMLモデルを使った自動生成
 
TDD のこころ
TDD のこころTDD のこころ
TDD のこころ
 
TDD のこころ @ OSH2014
TDD のこころ @ OSH2014TDD のこころ @ OSH2014
TDD のこころ @ OSH2014
 
もうひとつのアンチパターン OTLT、あるいは如何にして私はオレオレフレームワークを忌み嫌うようになったか
もうひとつのアンチパターン OTLT、あるいは如何にして私はオレオレフレームワークを忌み嫌うようになったかもうひとつのアンチパターン OTLT、あるいは如何にして私はオレオレフレームワークを忌み嫌うようになったか
もうひとつのアンチパターン OTLT、あるいは如何にして私はオレオレフレームワークを忌み嫌うようになったか
 

Similaire à 20181112 SRE本輪読会#26_22章_カスケード障害

非開発者のためのアジャイル開発入門
非開発者のためのアジャイル開発入門非開発者のためのアジャイル開発入門
非開発者のためのアジャイル開発入門Kiro Harada
 
GC_Naiseika_Day_q3_0706_Keynote.pdf
GC_Naiseika_Day_q3_0706_Keynote.pdfGC_Naiseika_Day_q3_0706_Keynote.pdf
GC_Naiseika_Day_q3_0706_Keynote.pdfssuser41f27b
 
Building Scalable Application on the Cloud
Building Scalable Application on the CloudBuilding Scalable Application on the Cloud
Building Scalable Application on the CloudKeisuke Nishitani
 
テスト自動化読書会 第3章 20150523
テスト自動化読書会 第3章 20150523テスト自動化読書会 第3章 20150523
テスト自動化読書会 第3章 20150523dnoguchi
 
大規模なJavaScript開発の話
大規模なJavaScript開発の話大規模なJavaScript開発の話
大規模なJavaScript開発の話terurou
 
Bsd5.12.3
Bsd5.12.3Bsd5.12.3
Bsd5.12.3K5_sem
 
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09Mikiya Okuno
 
スカイアーチセミナー:自社アプリをクラウド展開する為の『失敗しない3つの法則
スカイアーチセミナー:自社アプリをクラウド展開する為の『失敗しない3つの法則スカイアーチセミナー:自社アプリをクラウド展開する為の『失敗しない3つの法則
スカイアーチセミナー:自社アプリをクラウド展開する為の『失敗しない3つの法則株式会社スカイアーチネットワークス
 
20121019 engineer startup_meeting
20121019 engineer startup_meeting20121019 engineer startup_meeting
20121019 engineer startup_meetingShuichi Wada
 
Jupyter勉強会 20160701 at NII
Jupyter勉強会 20160701 at NIIJupyter勉強会 20160701 at NII
Jupyter勉強会 20160701 at NIIaxsh co., LTD.
 
第5回札幌SoftLayer勉強会資料_20150311
第5回札幌SoftLayer勉強会資料_20150311第5回札幌SoftLayer勉強会資料_20150311
第5回札幌SoftLayer勉強会資料_20150311潤 川岡
 
Deep Dive into Modules
Deep Dive into ModulesDeep Dive into Modules
Deep Dive into ModulesHideki Saito
 
第2回 OSS運用管理勉強会 運用あるある(Zabbix)
第2回 OSS運用管理勉強会 運用あるある(Zabbix)第2回 OSS運用管理勉強会 運用あるある(Zabbix)
第2回 OSS運用管理勉強会 運用あるある(Zabbix)真治 米田
 
運用の現場での監視運用ツールの活用
運用の現場での監視運用ツールの活用運用の現場での監視運用ツールの活用
運用の現場での監視運用ツールの活用真治 米田
 

Similaire à 20181112 SRE本輪読会#26_22章_カスケード障害 (20)

非開発者のためのアジャイル開発入門
非開発者のためのアジャイル開発入門非開発者のためのアジャイル開発入門
非開発者のためのアジャイル開発入門
 
本当に怖いパフォーマンスが悪い実装 #phpcon2013
本当に怖いパフォーマンスが悪い実装 #phpcon2013本当に怖いパフォーマンスが悪い実装 #phpcon2013
本当に怖いパフォーマンスが悪い実装 #phpcon2013
 
GC_Naiseika_Day_q3_0706_Keynote.pdf
GC_Naiseika_Day_q3_0706_Keynote.pdfGC_Naiseika_Day_q3_0706_Keynote.pdf
GC_Naiseika_Day_q3_0706_Keynote.pdf
 
Building Scalable Application on the Cloud
Building Scalable Application on the CloudBuilding Scalable Application on the Cloud
Building Scalable Application on the Cloud
 
テスト自動化読書会 第3章 20150523
テスト自動化読書会 第3章 20150523テスト自動化読書会 第3章 20150523
テスト自動化読書会 第3章 20150523
 
大規模なJavaScript開発の話
大規模なJavaScript開発の話大規模なJavaScript開発の話
大規模なJavaScript開発の話
 
Bsd5.12.3
Bsd5.12.3Bsd5.12.3
Bsd5.12.3
 
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
 
スカイアーチセミナー:自社アプリをクラウド展開する為の『失敗しない3つの法則
スカイアーチセミナー:自社アプリをクラウド展開する為の『失敗しない3つの法則スカイアーチセミナー:自社アプリをクラウド展開する為の『失敗しない3つの法則
スカイアーチセミナー:自社アプリをクラウド展開する為の『失敗しない3つの法則
 
20121019 engineer startup_meeting
20121019 engineer startup_meeting20121019 engineer startup_meeting
20121019 engineer startup_meeting
 
MySQLの冗長化 2013-01-24
MySQLの冗長化 2013-01-24MySQLの冗長化 2013-01-24
MySQLの冗長化 2013-01-24
 
Jupyter勉強会 20160701 at NII
Jupyter勉強会 20160701 at NIIJupyter勉強会 20160701 at NII
Jupyter勉強会 20160701 at NII
 
Provisioning & Deploy on AWS
Provisioning & Deploy on AWSProvisioning & Deploy on AWS
Provisioning & Deploy on AWS
 
Mysql toranomaki
Mysql toranomakiMysql toranomaki
Mysql toranomaki
 
第5回札幌SoftLayer勉強会資料_20150311
第5回札幌SoftLayer勉強会資料_20150311第5回札幌SoftLayer勉強会資料_20150311
第5回札幌SoftLayer勉強会資料_20150311
 
TopSE.20121119
TopSE.20121119TopSE.20121119
TopSE.20121119
 
Deep Dive into Modules
Deep Dive into ModulesDeep Dive into Modules
Deep Dive into Modules
 
Nodejs
NodejsNodejs
Nodejs
 
第2回 OSS運用管理勉強会 運用あるある(Zabbix)
第2回 OSS運用管理勉強会 運用あるある(Zabbix)第2回 OSS運用管理勉強会 運用あるある(Zabbix)
第2回 OSS運用管理勉強会 運用あるある(Zabbix)
 
運用の現場での監視運用ツールの活用
運用の現場での監視運用ツールの活用運用の現場での監視運用ツールの活用
運用の現場での監視運用ツールの活用
 

20181112 SRE本輪読会#26_22章_カスケード障害

Notes de l'éditeur

  1. リトライに苦い思い出のありそうなお二人です
  2. 高負荷時、フィードバックという複雑系の中で何が自分たちのシステムが高負荷時にどのような状態になるのか この章、情報量がなかなか多い。 自分の今のキャパシティで受け取れた事を書いています。 読み返して深掘りするたびに、新しい気づきを得られたらいいなぁ
  3. カスケード障害の大部分を占める典型的なケースは3つ
  4. カスケード障害の大部分を占める典型的なケースは3つ
  5. こんな状態のサービスがある サービス全体で1200QPSをさばいている
  6. クラスタAは1000QPSまで処理できる。 そして1000QPSでいっぱいいっぱい。 シェークスピアのシステムは1タスクあたり100QPSさばける。 →となるとクラスタBには2タスクしかデプロイされていないということ? なんでこんなに偏っているのか謎。 GFEはリージョン間のバランシングはしていなかったと思うので、ABは同一リージョンのクラスタ達のはず。 とても危うい構成ですね。
  7. _人人人人人人_ > 突然の死 <  ̄Y^Y^Y^Y^Y ̄ ここでBがね。突然死にました。 何故か死ぬB(リソースが枯渇か、別の要因かはわからない Bの分のリクエスト200QPSを加え、 キャパを越える1200QPSを受け止めるA。
  8. 当然こうなる
  9. リクエストを受け止められるクラスタがいなくなり、
  10. サービスは全断する。 (もしかしたらGSLB経由で他国のリージョンへ飛び火して、全世界でサービス断しているかもしれない)
  11. カスケード障害の大部分を占める典型的なケースは3つ
  12. 三億円事件 https://ja.wikipedia.org/wiki/%E4%B8%89%E5%84%84%E5%86%86%E4%BA%8B%E4%BB%B6
  13. カスケード障害の大部分を占める典型的なケースは3つ
  14. _人人人人人人_ > 突然の死 <  ̄Y^Y^Y^Y^Y ̄ ここでBがね。突然死にました。 何故か死ぬB(リソースが枯渇か、別の要因かはわからない Bの分のリクエスト200QPSを加え、 キャパを越える1200QPSを受け止めるA。
  15. ここから書籍のページを前後します
  16. ここから書籍のページを前後します
  17. 負荷テストや信頼性テストと呼ばれるもの。を実施する
  18. 外部のクライアントが指数的バックオフとか、増分遅延バックオフを実装してくれているか? の継続的なテストって難しいよね。 不特定多数からのアクセスの場合、 SDKを提供して意図したアクセスパターンになるようにする WAFなりバランサなりでクライアントごとにスロットリングする あたりなんやろか。
  19. ここから書籍のページを前後します
  20. DBへのアクセスを行わずキャッシュから返すA
  21. DBへのアクセスを行わずキャッシュから返すA
  22. DBへのアクセスを行わずキャッシュから返すA
  23. ここから書籍のページを前後します
  24. 選択的にドロップのところ、自分の言葉にできていない
  25. ここから書籍のページを前後します
  26. 選択的にドロップのところ、自分の言葉にできていない
  27. 選択的にドロップのところ、自分の言葉にできていない
  28. 選択的にドロップのところ、自分の言葉にできていない
  29. 選択的にドロップのところ、自分の言葉にできていない
  30. 選択的にドロップのところ、自分の言葉にできていない
  31. 戦略の話で書いたので割愛
  32. 選択的にドロップのところ、自分の言葉にできていない
  33. 選択的にドロップのところ、自分の言葉にできていない
  34. 選択的にドロップのところ、自分の言葉にできていない
  35. 選択的にドロップのところ、自分の言葉にできていない
  36. 選択的にドロップのところ、自分の言葉にできていない
  37. 選択的にドロップのところ、自分の言葉にできていない
  38. 選択的にドロップのところ、自分の言葉にできていない
  39. 選択的にドロップのところ、自分の言葉にできていない
  40. 選択的にドロップのところ、自分の言葉にできていない
  41. 選択的にドロップのところ、自分の言葉にできていない
  42. 選択的にドロップのところ、自分の言葉にできていない
  43. 選択的にドロップのところ、自分の言葉にできていない
  44. 起こった時の対処方法を準備しておこう
  45. 起こった時の対処方法を準備しておこう
  46. 起こった時の対処方法を準備しておこう
  47. 起こった時の対処方法を準備しておこう
  48. 起こった時の対処方法を準備しておこう
  49. 起こった時の対処方法を準備しておこう
  50. 起こった時の対処方法を準備しておこう
  51. 起こった時の対処方法を準備しておこう
  52. 起こった時の対処方法を準備しておこう
  53. 起こった時の対処方法を準備しておこう
  54. 起こった時の対処方法を準備しておこう
  55. 高負荷時、フィードバックという複雑系の中で何が自分たちのシステムが高負荷時にどのような状態になるのか この章、情報量がなかなか多い。 自分の今のキャパシティで受け取れた事を書いています。 読み返して深掘りするたびに、新しい気づきを得られたらいいなぁ
  56. 担当が違うシステムでも、日頃から
  57. 担当が違うシステムでも、日頃から
  58. レイテンシキャッシュ