7.11 Başarım

<< İçindekileri Görüntülemek İçin Tıklayın >>

Yer:  Teknik Kılavuzlar > Netsim System Agent İstemci Protokolü Referansı > 7. IVEDI oturum protokolü (/ivedi) >

7.11 Başarım

Ölçüm ivedi_api_test.py --only-bench --workers multiProcess|multiThread ile yapılır (Debug ajan, Python istemci, yerel ağ, 10.000 düz satırlık ve 1.000 satır x 2 KB blob'lu tablo, 20 eş zamanlı oturum). Bir kurulumu değerlendirirken bu sayılar ölçek verir:

Ölçüm multiProcess multiThread
10.000 executePrepared INSERT, tek tek (JSON) 4,32 s 4,23 s
1.000 blob'lu INSERT (writeBlob + executePrepared) 0,98 s 0,98 s
SELECT 10.000 düz satır, JSON, fetchSize 1000 0,33 s, 534 KB 0,32 s, 534 KB
SELECT 10.000 düz satır, BSON, fetchSize 1000 0,34 s, 798 KB 0,35 s, 798 KB
SELECT 1.000 satır x 2 KB blob, JSON, fetchSize 200 0,06 s, 2.688 KB 0,06 s, 2.688 KB
SELECT 1.000 satır x 2 KB blob, BSON, fetchSize 200 0,04 s, 2.040 KB 0,04 s, 2.040 KB
20 eş zamanlı oturum (open + 3 sorgu + close) toplam 3,27 s, open ort. 2,22 s toplam 2,12 s, open ort. 1,33 s

Okuma: BSON düz satırda JSON'dan büyüktür (satır dizisinin her öğesine anahtar, tip ve uzunluk yazar), yalnız ikili değer taşıyan sonuç kümelerinde küçüktür (base64 payı yoktur); süre farkı yoktur. Öndeğer JSON kalır, blob taşıyan sorgularda BSON seçilir. İki işçi modeli deyim başına aynı hızdadır: multiThread'de etkin bir WebSocket bağlantısı kendi iş parçacığında kalır ve ancak 200 ms çerçeve gelmezse park edilir; park edilen bağlantıyı dinleyici döngüsü 1 ms adımla yoklar. multiProcess'te oturum açmak daha pahalıdır (bağlantı başına bir işçi süreç); kısa, tek seferlik istekler için durumsuz POST /ivedi/execute ucu vardır, çok sayıda küçük yazma işi tek istekte toplanır (script, Array DML).