Ide dasar di balik polling asinkron
Asynchrony memungkinkan Anda untuk sangat meningkatkan paralelisme kerja. Dalam hal komunikasi jaringan dan pengambilan SNMP, waktu tunggu untuk tanggapan lama, yang memungkinkan program untuk melakukan sesuatu yang berguna sampai tanggapan tiba.
Ada cara "sinkron" untuk menerapkan paralelisme - garpu, utas. Sangat mudah dari sudut pandang menulis program, tetapi sangat "mahal" dalam hal sumber daya OS.
Sedikit matematika
Matematika akan menjadi rekayasa dan perkiraan, akurasi 20%
Saya ingin melakukan polling pada 100 ribu perangkat menggunakan 100 metrik dan polling setiap perangkat setiap 5 menit sekali , dengan margin satu menit sekali.
Artinya, Anda perlu menembak 10 juta metrik per menit atau 150 ribu per detik. Saya akan mengumpulkan hingga 100 ribu metrik per detik.
Polling untuk satu metrik membutuhkan waktu sekitar 5 md: 4 md untuk perangkat, + 1 md untuk pemrosesan.
Ini berarti bahwa satu utas sinkron dapat memproses 200 metrik per detik, atau diperlukan 500 utas sinkron. Cukup realistis.
(Semuanya, akhir, tidak ada lagi yang bisa ditulis)
Sebenarnya, ini baru permulaan. Triknya bukan pada idealitas dunia, tetapi pada hilangnya tanggapan terhadap permintaan.Kerugian terjadi karena hilangnya lalu lintas atau tidak dapat diaksesnya perangkat.
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 , «».
, - . – .
.