サーバーに過負荷がかかると、他の要求をブロックするサービスを構築しようとします。ただし、1分平均負荷では十分ではありません。ロジックは次のとおりです。
if load_average > core_count
return render 503
end
return the_requested_page
ただし、load_averageコマンドを使用してコンピュータにストレスを与えようとすると、次のstress -c 12 -i 100 --timeout 10
ような内容が表示されます。
1, 3, 8, 15, 21, 20, 18, 15, 12, 11
^ stress program ends here
より小さい解像度の負荷平均(1分平均ではなく1〜2秒)を取得するにはどうすればよいですか?
追加情報、これを使用して負荷平均を読みました。パスワード
答え1
負荷平均はコアから計算されます。参考Linux負荷計算に単純な1/5/15分移動平均が使用されないのはなぜですか?もっと学ぶ。したがって、より高い解像度の読み取り値を得ることはできません。逆にあなたはできるコピー機能用のユーザー空間コードを書くのは少し難しいようです(特に正しく実行するには多くのサンプリングを実行する必要があるため、オーバーロードされたサーバーの愚かなオーバーヘッドのように見えます)。
代わりに、決定の根拠として負荷平均以外のものを選択することをお勧めします。おそらくサービス自体で知っているものかもしれません。たとえば、応答時間が中央値しきい値を超えて退きたい場合はどうすればよいですか?