答え1
スレッド
あなたが見るのは、htop
ニスのプロセスではなく、ニスのパターンです。
Varnishには長期実行プロセスが2つしかありません。
- メインプロセス(ユーザー所有
varnish
) - ワーカープロセス(
vcache
ユーザー所有)
このように多くの理由は、Varnishがシステムがトラフィックの急増を処理するのに十分な反応を望んでいるからです。新しいスレッドを作成すると、リソースの面で費用がかかり、システムの速度が低下する可能性があります。
これが、Varnishが基本的にそれぞれ100個のスレッドを含む2つのスレッドプールを持つ理由です。需要が高まるにつれて、Varnishはスレッドプールあたり5,000スレッドに拡張できます。
thread_pool_min
この数値はランタイム設定で設定できますthread_pool_max
。
アクティブスレッドは少なくとも200個、最大10,000個です。
次のようにして、これらの値を表示できます。
varnishadm param.show thread_pool_min
varnishadm param.show thread_pool_max
デフォルト値を変更するには、addプロセス-p thread_pool_min=x
と-p thread_pool_max=x
toプロセスを使用できます。varnishd
これらの値は各スレッドプールに適用され、スレッドプールが2つなので、最小値と最大値に2が掛けられることを忘れないでください。
実行すると、varnishstat -f MAIN.threads
現在アクティブなスレッド数が表示されます。
メモリ
Varnishのメモリ消費は、部分的にはキャッシュ内のオブジェクトに依存し、部分的にはワーカースレッド内のアクティビティによって異なります。
オブジェクトストレージ
-s
ランタイムパラメータはvarnishd
オブジェクトキャッシュのサイズを制限します。ただし、一時コンテンツを保存してキャッシュできないデータを一時的にホストするバインドされていない一時ストアもあります。
次のコマンドを使用すると、オブジェクトと一時記憶域を監視できます。
varnishstat -f "SMA.*.g_bytes" -f "SMA.*.g_space"
SMA.s0.g_bytes
使用中のオブジェクトメモリの量を監視します。SMA.s0.g_space
オブジェクトストレージに残っているスペースの量を監視します。SMA.Transient.g_bytes
使用中の一時メモリ記憶域の量を監視します。SMA.Transient.g_space
使用可能な一時メモリー・ストレージの量をモニターします。一時ストアはデフォルトでは無限であるため、ほとんどの場合、この値はゼロでなければなりません。
キャッシュ内の各オブジェクトには、メモリ消費の面でも少しオーバーヘッドがあります。これはかなり小さいが、キャッシュ内のオブジェクトの数が多いほどオーバーヘッドが大きくなります。
次のコマンドを使用すると、キャッシュ内のオブジェクトの数を確認できます。
varnishstat -f MAIN.n_object
ワークスペースメモリ
スレッドもメモリを消費します。各スレッドには、状態追跡に使用できるワークスペースメモリがあります。
- これクライアントワークスペースに設定されています64KBクライアント要求を処理するワーカースレッドで使用される各スレッド
- これバックエンドワークスペースバックエンド接続に参加するために使用されるワーカースレッド。各スレッドは以下を消費することもできます。64KBスレッドごと
- これセッションワークスペースTCPセッション情報を保存するために使用されます。これらのそれぞれ
次のコマンドを使用して、各ワーカースレッドタイプのワークスペース制限を表示できます。
varnishadm param.show workspace_client
varnishadm param.show workspace_backend
varnishadm param.show workspace_session
スタックスペース
各ワーカースレッドはスタックスペースを使用することもできます。これはVarnishが依存するライブラリで使用されます。スレッドごとのデフォルトの制限は次のとおりです。48KB。
次のコマンドを使用すると、システムの制限を確認できます。
varnishadm param.show thread_pool_stack
結論として
光沢キャッシュ、オープンソースバージョンのVarnishは、独自の合計メモリスペースを制限することはできません。オブジェクトのストレージを制限できます。一時ストレージのサイズを制限することもできますが、これはいくつかの迷惑な副作用を引き起こす可能性があります。
デフォルトでは、キャッシュサイズ、一時ストレージ、トラフィックパターンによって異なります。
光沢会社総メモリ使用量を制限する機能。 Varnishの商用バージョンで、専用ストレージエンジンであるVarnishを提供します。MSE(大容量ストレージエンジン)。
平均二乗誤差という機能があります。メモリマネージャオブジェクトストレージ、一時ストレージ、ワークスペースメモリ、スタックスペースを考慮します。不均衡がある場合、平均二乗誤差追加のメモリ要件を満たすために、キャッシュサイズが縮小されます。