Sîstema çavdêriya din

Sîstema çavdêriya din
16 modem, 4 operatorên hucreyî = Leza derketinê 933.45 Mbit/s

Pîrozbahiyê

Slav! Ev gotar li ser e ku me çawa ji xwe re pergalek çavdêriya nû nivîsand. Ew ji yên heyî di kapasîteya xwe ya bidestxistina metrîkên hevdem ên frekansa bilind û xerckirina çavkaniyê pir kêm de cûda dibe. Rêjeya dengdanê dikare bi rastbûna hevdemkirinê ya di navbera metrîkên 0.1 nanosekonda de bigihîje 10 mîlîsaniyeyan. Hemû pelên binary 6 megabytes dagir dikin.

Li ser projeyê

Berhemek me ya taybetî heye. Em çareseriyek berfereh ji bo kurtkirina berbiçûn û tolerasyona xeletiya kanalên ragihandina daneyê hildiberînin. Ev gava ku çend kanal hebin, em bibêjin Operator1 (40Mbit/s) + Operator2 (30Mbit/s)+ Tiştek din (5 Mbit/s), encam yek kanalek aram û bilez e, leza wê dê tiştek mîna ev: (40+ 30+5)x0.92=75×0.92=69 Mbit/s.

Li cihê ku kapasîteya yek kanalek têrê nake çareseriyên weha daxwaz in. Mînakî, veguheztin, pergalên çavdêriya vîdyoyê û weşana vîdyoyê ya rast, weşana weşanên zindî yên televîzyon û radyoyê, her tesîsên derbajarî ku di nav operatorên telekomê de tenê nûnerên Çar Mezin hene û leza li ser yek modem/kanal têrê nake. .
Ji bo her yek ji van deveran, em rêzek cîhazên cihêreng hildiberînin, lê beşa nermalava wan hema hema yek e û pergalek çavdêriya kalîteya bilind yek ji modulên wê yên sereke ye, bêyî pêkanîna rast a ku hilber dê ne mumkun be.

Di nav çend salan de, me karî pergalek çavdêriya pir-ast, bilez, cross-platform û sivik biafirînin. Ya ku em dixwazin bi civaka xwe ya rêzdar re parve bikin ev e.

Formulkirina pirsgirêkê

Pergala çavdêriyê metrîkên du çînên bingehîn ên cihêreng peyda dike: metrîkên dema rast û hemî yên din. Pergala çavdêriyê tenê hewceyên jêrîn hebûn:

  1. Bidestxistina hevdem-frekansa bilind a metrîkên rast-dem û veguheztina wan ji pergala rêveberiya ragihandinê re bêyî dereng.
    Frekansa bilind û hevdemkirina metrîkên cihêreng ne tenê girîng e, ew ji bo analîzkirina entropiya kanalên ragihandina daneyê jî girîng e. Ger di yek kanalek veguheztina daneyê de derengiya navînî 30 milî çirkeyan be, wê hingê xeletiyek di hevdemkirinê de di navbera metrîkên mayî yên tenê yek milîsaniye de dê bibe sedema kêmbûna leza kanala encam bi qasî 5%. Ger em di nav 1 kanalan de 4 millisecond wextê şaş bikin, kêmbûna lezê bi hêsanî dikare dakeve %30. Wekî din, entropiya di kanalan de pir zû diguhere, ji ber vê yekê heke em wê ji her 0.5 milîsaniyeyan carekê kêmtir bipîvin, li ser kanalên bilez bi derengiyek piçûk em ê bi leza bilind hilweşînin. Bê guman, rastbûna wusa ji bo hemî metrîkan û ne di hemî şert û mercan de ne hewce ye. Gava ku derengiya kanalê 500 milîsaniye ye, û em bi vî rengî dixebitin, wê hingê xeletiyek 1 milîsaniyeyê hema hema nayê dîtin. Di heman demê de, ji bo metrîkên pergala piştevaniya jiyanê, me têra rêjeyên dengdanê û hevdemkirinê yên 2 çirkeyan heye, lê pêdivî ye ku pergala çavdêriyê bixwe karibe bi rêjeyên dengdanê yên pir-bilind û hevdengkirina metrîkan pir-rast-rast bixebite.
  2. Xerca çavkaniyê ya hindiktirîn û stûnek yekane.
    Amûra paşîn dikare bibe kompleksek hêzdar a li ser rêwîtiyê ku dikare rewşa li ser rê analîz bike an tomarkirina biyometrîkî ya mirovan bike, an jî komputerek yek-pîvek bi mezinahiya palmê ku leşkerek hêzên taybetî di binê zirxê laşê xwe de li xwe dike da ku vîdyoyê biguheze. dema rast di şert û mercên ragihandinê de belengaz. Tevî cûrbecûr mîmarî û hêza hesabkirinê, em dixwazin ku heman stoka nermalavê hebe.
  3. Mîmariya sîwanê
    Pêdivî ye ku metrics li ser cîhaza paşîn werin berhev kirin û berhev kirin, li herêmî werin hilanîn, û di demek rast û paşverû de bêne xuyang kirin. Ger pêwendiyek hebe, daneyan bi pergala çavdêriya navendî veguhezînin. Dema ku têkiliyek tune be, divê rêza şandinê kom bibe û RAM-ê nexwe.
  4. API ji bo entegrasyonê di pergala şopandina xerîdar de, ji ber ku kes hewce nake gelek pergalên çavdêriyê. Pêdivî ye ku xerîdar daneyên ji her amûr û toran di yek çavdêrîkirinê de kom bike.

Çi qewimî

Ji bo ku dirêjiya jixwe bandorker bar neke, ez ê nimûne û pîvandinên hemî pergalên çavdêriyê nekim. Ev dê bibe sedema gotarek din. Ez ê tenê bibêjim ku me nekariye pergalek çavdêriyê bibînin ku bikaribe du metrîkan bi hevdemî bi xeletiyek kêmtir ji 1 milîsaniyeyê bigire û ku hem li ser mîmariya ARM bi 64 MB RAM û hem jî li ser mîmariya x86_64 bi 32 re bi rengek wekhev dixebite. GB RAM. Ji ber vê yekê, me biryar da ku em ya xwe binivîsin, ku dikare van hemîyan bike. Ya ku me girt ev e:

Ji bo topolojiyên torê yên cihêreng berbi sê kanalan kurt kirin


Dîtbarkirina hin metrîkên sereke

Sîstema çavdêriya din
Sîstema çavdêriya din
Sîstema çavdêriya din
Sîstema çavdêriya din

avakarî

Em hem li ser cîhazê û hem jî di navenda daneyê de Golang wekî zimanê bernamekirinê yê sereke bikar tînin. Ew bi pêkanîna pirtasking û şiyana ku meriv ji bo her karûbarek pelek binar a binavkirî ya bi statîkî ve girêdayî ye, jiyanê pir hêsan kir. Wekî encamek, em bi girîngî di çavkanî, rêbaz û seyrûseferê de ji bo bicîhkirina karûbarê ji bo qedandina cîhazan, dema pêşkeftinê û xeletkirina kodê bi girîngî xilas dikin.

Pergal li gorî prensîba modularî ya klasîk tête bicîh kirin û çend binpergalan vedihewîne:

  1. Qeydkirina metrîkê.
    Her metrîk ji hêla xêza xwe ve tête xizmet kirin û di nav kanalan de hevdeng kirin. Me karîbû bigihîje rastbûna hevdemkirinê heya 10 nanosecond.
  2. hilanîna Metrics
    Me di navbera nivîsandina depoya xwe ya ji bo rêzikên demê de an karanîna tiştek ku ji berê ve peyda bû de hilbijart. Database ji bo daneya paşverû ya ku di dûv dîtbarî de ye hewce ye. Ango, ew daneyên derengî di kanalê de her 0.5 milî çirkeyan an xwendina xeletiyên di tora veguheztinê de nahewîne, lê her 500 milî çirkeyan de leza her navberê heye. Ji bilî hewcedariyên bilind ên ji bo cross-platform û xerckirina çavkaniyê kêm, ji bo me pir girîng e ku em bikaribin pêvajoyê bikin. data cihê ku tê hilanîn e. Ev çavkaniyên hesabker ên mezin xilas dike. Em ji sala 2016-an vir ve Tarantool DBMS-ê di vê projeyê de bikar tînin û heya nuha em li ber çavan li şûna wê nabînin. Zelal, bi xerckirina çavkaniya çêtirîn, ji piştgiriya teknîkî ya têr wêdetir. Tarantool jî modulek GIS-ê bicîh dike. Bê guman, ew ne bi qasî PostGIS-ê hêzdar e, lê ji bo karên me yên hilanîna hin metrîkên girêdayî cîhê (ji bo veguhastinê têkildar) bes e.
  3. Visualization of metrics
    Li vir her tişt bi hêsanî hêsan e. Em daneyan ji depoyê digirin û di demek rast an paşverû de nîşan didin.
  4. Hevdemkirina daneyan bi pergala çavdêriya navendî re.
    Pergala çavdêriya navendî daneyan ji hemî cîhazan werdigire, wê bi dîrokek diyarkirî hilîne û bi riya API-ê ji pergala şopandina Xerîdar re dişîne. Berevajî pergalên şopandinê yên klasîk, ku tê de "ser" li dora xwe digere û daneyan berhev dike, me planek berevajî heye. Dema ku pêwendiyek hebe cîhaz bi xwe daneyan dişînin. Ev xalek pir girîng e, ji ber ku ew dihêle hûn ji bo wan demên ku di wan deman de peyda nebûne daneyan ji cîhazê werbigirin û dema ku cîhaz neberdest e kanal û çavkaniyan bar nekin. Em servera çavdêriya Influx wekî pergala çavdêriya navendî bikar tînin. Berevajî analogên xwe, ew dikare daneyên paşverû (ango bi mohra demkî ji dema wergirtina pîvanan cûdatir) bîne. Ev stack standard di heman demê de hate hilbijartin ji ber ku ew bi hema hema her pergala çavdêriya xerîdar re entegrasyonên API-ya amade hene.
  5. Hevdemkirina daneyê bi pergala rêveberiya cîhaza navendî re.
    Pergala rêveberiya cîhazê Zero Touch Provisioning (nûvekirina firmware, veavakirin, hwd.) pêk tîne û, berevajî pergala şopandinê, her amûrek tenê pirsgirêkan werdigire. Vana ji bo xebitandina karûbarên çavdêriya hardware ya serhêl û hemî pîvanên pergalên piştevaniya jiyanê ne: Germahiya CPU û SSD, barkirina CPU, cîhê belaş û tenduristiya S.M.A.R.T li ser dîskê. Pargîdaniya binpergalê jî li ser Tarantool-ê hatî çêkirin. Ev di berhevkirina rêzikên demê de bi hezaran cîhazan de leza girîng dide me, û di heman demê de pirsgirêka hevdengkirina daneyan bi van cîhazan re jî bi tevahî çareser dike. Tarantool xwedan pergala radestkirina rêz û garantîkirî ye. Me ev taybetmendiya girîng ji qutîkê derxist, mezin!

Sîstema rêveberiya torê

Sîstema çavdêriya din

Çi ye?

Heya nuha, zencîra me ya herî qels pergala çavdêriya navendî ye. Ew 99.9% li ser stackek standard tête bicîh kirin û çend kêmasiyên xwe hene:

  1. Dema ku hêz winda dibe InfluxDB daneyê winda dike. Wekî qaîdeyek, Xerîdar her tiştê ku ji cîhazan tê tavilê berhev dike û databas bixwe daneyên ji 5 hûrdeman kevntir nagire, lê di pêşerojê de dibe ku ev bibe êş.
  2. Grafana di berhevkirina daneyan û hevdemkirina dîmendera wê de gelek pirsgirêk hene. Pirsgirêka herî gelemperî dema ku databas rêzek demjimêrek bi navberek 2 saniyeyan vedihewîne, ji, bêje, 00:00:00 dest pê dike, û Grafana dest bi berhevkirina daneyan ji +1 çirkeyê dike. Wekî encamek, bikarhêner grafikek dansê dibîne.
  3. Ji bo entegrasyona API-ê bi pergalên çavdêriya partiya sêyemîn re kodek pir zêde. Ew dikare pir tevlihevtir were çêkirin û bê guman di Go de ji nû ve were nivîsandin)

Ez difikirim ku we hemîyan bi rengek bêkêmasî dîtiye ku Grafana çawa xuya dike û pirsgirêkên wê bêyî min dizanin, ji ber vê yekê ez ê postê bi wêneyan zêde nekim.

encamê

Min bi zanebûn hûrguliyên teknîkî negot, lê tenê sêwirana bingehîn a vê pergalê diyar kir. Pêşîn, ji bo teknîkî bi tevahî pergalê vebêjin, dê gotarek din hewce bike. Ya duyemîn, dê her kes bi vê yekê re eleqedar nebe. Di şîroveyan de binivîsin ka kîjan hûrguliyên teknîkî hûn dixwazin zanibin.

Ger pirsên kesek ji çarçoweya vê gotarê hebin, hûn dikarin ji min re binivîsin a.rodin @ qedr.com

Source: www.habr.com

Add a comment