非同期ポーリングの背後にある基本的な考え方
非同期により、作業の並列性を大幅に向上させることができます。ネットワーク通信と SNMP 検索の場合、応答の待機時間が長いため、プログラムは応答が到着するまで何か役に立つことができます。
並列処理を実装する「同期」方法があります - フォーク、スレッド。プログラムを書くという観点からは簡単ですが、OSのリソース的には非常に「高価」です。
少し数学
数学は工学的で概算で、精度は 20% です。
100 のメトリックを使用して 100,000台のデバイスをポーリングし、各デバイスを5 分ごとに 1 回、1 分に 1 回のマージンでポーリングしたかったのです。
つまり、1 分あたり 1000 万メトリクスまたは1 秒あたり 150,000 メトリクスを撮影する必要があります。 1 秒あたり 100,000 メトリクスまで切り上げます。
1 つのメトリックのポーリングには約 5 ミリ秒かかります。デバイスの場合は 4 ミリ秒、処理の場合は 1 ミリ秒です。
これは、1 つの同期スレッドで 1 秒あたり 200 のメトリックを処理できる、つまり 500 の同期スレッドが必要であることを意味します。かなりリアル。
(全部、終わり、これ以上書くことはない)
実際、これはほんの始まりに過ぎません。トリックは、世界の理想ではなく、リクエストへの応答の喪失にあり、トラフィックの喪失やデバイスへのアクセス不能が原因で損失が発生します。
2 , «» 2000
3% . – , , .
, 3% 2000.
c 15,5 .
, 5 , 95 . , 125 800 . , .
– __ . – 800 , , .
, 3%, 20% 100% ?
,
– , – « X . , 10 , , 2 ».
, , 45%, 99% .
: 100% . , , 30 ? - 7 .
, , , Shared Memory . SNMP Net-SNMP
– ,
1 : « – , »
, ?
SNMP, , SNMP, , - :
:
, . , , , , -.
– – 2 , . :
, 100- .
– , , .
«» .
:
2 : «- »
, , . . . - , .
. : .
2-3 3-4 , .
, , . , .
3 : « »
, . , SNMP UDP .
, :
, , , , .
3.5 : « , »
«» . . .
.
, . , 3-4 2-4 .
– , - . . : , , , Net:SNMP.
, 60-70 . , , .
4 : « , »
, «» , .
4 , – , . , – .
4.0 , «» . :
– – – , , .
- . SNMP, 48 .
- . 2 100% 15 30 720 ! 30 48 .
, , , – IP RAW socket.
120-140 .
30-40 , , 50% .
:
1 4 2 . 2-3 -.
?
- « ».
, .
, 15 , «».
, - . – .
.