තවත් නිරීක්ෂණ පද්ධතියක්

තවත් නිරීක්ෂණ පද්ධතියක්
මොඩම 16ක්, සෙලියුලර් ක්‍රියාකරුවන් 4ක් = පිටතට යන වේගය 933.45 Mbit/s

හැඳින්වීම

ආයුබෝවන්! මෙම ලිපිය අප විසින්ම නව අධීක්ෂණ පද්ධතියක් ලිවූ ආකාරය ගැනයි. අධි-සංඛ්‍යාත සමමුහුර්ත ප්‍රමිතික ලබා ගැනීමේ හැකියාව සහ ඉතා අඩු සම්පත් පරිභෝජනයෙන් එය පවතින ඒවාට වඩා වෙනස් වේ. නැනෝ තත්පර 0.1ක මෙට්‍රික් අතර සමමුහුර්ත කිරීමේ නිරවද්‍යතාවයක් සමඟින් ඡන්ද ප්‍රතිශතය මිලි තත්පර 10 දක්වා ළඟා විය හැක. සියලුම ද්විමය ගොනු මෙගාබයිට් 6 ක් ගනී.

ව්යාපෘතිය ගැන

අපට තරමක් නිශ්චිත නිෂ්පාදනයක් තිබේ. දත්ත සම්ප්‍රේෂණ නාලිකාවල ප්‍රතිදානය සහ දෝෂ ඉවසීම සාරාංශ කිරීම සඳහා අපි පුළුල් විසඳුමක් නිෂ්පාදනය කරන්නෙමු. මෙය නාලිකා කිහිපයක් ඇති විටය, අපි කියමු Operator1 (40Mbit/s) + Operator2 (30Mbit/s)+ වෙනත් දෙයක් (5 Mbit/s), ප්‍රතිඵලය ස්ථායී සහ වේගවත් නාලිකාවකි, එහි වේගය මෙබඳු දෙයක් වනු ඇත. මෙය: (40+ 30+5)x0.92=75×0.92=69 Mbit/s.

කිසියම් නාලිකාවක ධාරිතාව ප්‍රමාණවත් නොවන විට එවැනි විසඳුම් ඉල්ලුමේ. උදාහරණයක් ලෙස, ප්‍රවාහනය, වීඩියෝ නිරීක්ෂණ පද්ධති සහ තත්‍ය කාලීන වීඩියෝ ප්‍රවාහය, සජීවී රූපවාහිනී සහ ගුවන්විදුලි විකාශන විකාශනය, ටෙලිකොම් ක්‍රියාකරුවන් අතර Big Four හි නියෝජිතයන් පමණක් සිටින ඕනෑම තදාසන්න පහසුකම් සහ එක් මොඩමයක්/නාලිකාවක වේගය ප්‍රමාණවත් නොවේ. .
මෙම එක් එක් ක්ෂේත්‍රය සඳහා, අපි වෙනම උපාංග පෙළක් නිෂ්පාදනය කරමු, නමුත් ඒවායේ මෘදුකාංග කොටස පාහේ සමාන වන අතර උසස් තත්ත්වයේ අධීක්ෂණ පද්ධතියක් එහි ප්‍රධාන මොඩියුල වලින් එකකි, එය නිවැරදිව ක්‍රියාත්මක කිරීමෙන් තොරව නිෂ්පාදනය කළ නොහැකි වනු ඇත.

වසර කිහිපයක් පුරාවට අපි බහු මට්ටමේ, වේගවත්, හරස් වේදිකා සහ සැහැල්ලු නිරීක්ෂණ පද්ධතියක් නිර්මාණය කිරීමට සමත් විය. අපගේ ගෞරවනීය ප්‍රජාව සමඟ බෙදා ගැනීමට අපට අවශ්‍ය වන්නේ මෙයයි.

ගැටලුව ප්රකාශ කිරීම

අධීක්ෂණ පද්ධතිය මූලික වශයෙන් වෙනස් පන්ති දෙකක ප්‍රමිතික සපයයි: තත්‍ය කාලීන ප්‍රමිතික සහ අනෙකුත් සියල්ල. අධීක්ෂණ පද්ධතියට තිබුණේ පහත අවශ්‍යතා පමණි:

  1. තත්‍ය කාලීන ප්‍රමිතික අධි-සංඛ්‍යාත සමමුහුර්ත අත්පත් කර ගැනීම සහ ඒවා ප්‍රමාදයකින් තොරව සන්නිවේදන කළමනාකරණ පද්ධතියට මාරු කිරීම.
    විවිධ ප්‍රමිතිකවල ඉහළ සංඛ්‍යාත සහ සමමුහුර්තකරණය වැදගත් නොවේ, දත්ත සම්ප්‍රේෂණ නාලිකාවල එන්ට්‍රොපිය විශ්ලේෂණය කිරීම සඳහා එය ඉතා වැදගත් වේ. එක් දත්ත සම්ප්‍රේෂණ නාලිකාවක සාමාන්‍ය ප්‍රමාදය මිලි තත්පර 30ක් නම්, එක් මිලි තත්පරයක ඉතිරි ප්‍රමිතික අතර සමමුහුර්ත කිරීමේ දෝෂයක් හේතුවෙන් ලැබෙන නාලිකාවේ වේගය ආසන්න වශයෙන් 5% කින් පිරිහීමට තුඩු දෙනු ඇත. අපි නාලිකා 1 ක් හරහා කාලය මිලි තත්පර 4 කින් වැරදි ලෙස කලොත්, වේගය පිරිහීම පහසුවෙන් 30% දක්වා පහත වැටිය හැක. මීට අමතරව, නාලිකා වල එන්ට්‍රොපිය ඉතා ඉක්මනින් වෙනස් වේ, එබැවින් අපි එය සෑම මිලි තත්පර 0.5 කට වරක් වඩා අඩුවෙන් මනින්නේ නම්, කුඩා ප්‍රමාදයක් සහිත වේගවත් නාලිකා වලදී අපට අධික වේගය පිරිහීමක් ලැබෙනු ඇත. ඇත්ත වශයෙන්ම, එවැනි නිරවද්යතාවක් සියලු ප්රමිතික සඳහා අවශ්ය නොවන අතර සියලු තත්වයන් තුළ නොවේ. නාලිකාවේ ප්‍රමාදය මිලි තත්පර 500 ක් වන විට සහ අපි එවැනි දේ සමඟ වැඩ කරන විට, මිලි තත්පර 1 ක දෝෂයක් නොපෙනේ. එසේම, ජීවිත ආධාරක පද්ධති ප්‍රමිතික සඳහා, අපට ප්‍රමාණවත් ඡන්ද විමසීම් සහ තත්පර 2ක සමමුහුර්ත කිරීමේ අනුපාත ඇත, නමුත් අධීක්ෂණ පද්ධතියටම අතිශය ඉහළ ඡන්ද ප්‍රතිශතයන් සහ ප්‍රමිතිකවල අතිශය නිරවද්‍ය සමමුහුර්තකරණය සමඟ වැඩ කිරීමට හැකි විය යුතුය.
  2. අවම සම්පත් පරිභෝජනය සහ තනි තොගයක්.
    අවසාන උපාංගය පාරේ තත්වය විශ්ලේෂණය කිරීමට හෝ මිනිසුන්ගේ ජෛවමිතික පටිගත කිරීමට හැකි බලවත් අභ්‍යන්තර සංකීර්ණයක් විය හැකිය, නැතහොත් වීඩියෝ සම්ප්‍රේෂණය කිරීම සඳහා විශේෂ හමුදා සොල්දාදුවෙකු තම ශරීර සන්නාහය යටතේ පැළඳ සිටින අත්ල ප්‍රමාණයේ තනි පුවරු පරිගණකයක් විය හැකිය. දුර්වල සන්නිවේදන තත්වයන් තුළ සැබෑ කාලය. මෙතරම් විවිධාකාර ගෘහ නිර්මාණ ශිල්පය සහ පරිගණක බලය තිබියදීත්, අපි එකම මෘදුකාංග තොගයක් තිබීමට කැමතියි.
  3. කුඩ ගෘහ නිර්මාණ ශිල්පය
    ප්‍රමිතික අවසන් උපාංගයේ එකතු කර එකතු කළ යුතුය, දේශීයව ගබඩා කර තථ්‍ය කාලීනව සහ ප්‍රත්‍යාලෝකනය කළ යුතුය. සම්බන්ධතාවයක් තිබේ නම්, මධ්යම අධීක්ෂණ පද්ධතියට දත්ත මාරු කරන්න. සම්බන්ධතාවයක් නොමැති විට, යැවීමේ පෝලිම එකතු විය යුතු අතර RAM පරිභෝජනය නොකළ යුතුය.
  4. පාරිභෝගිකයාගේ නිරීක්ෂණ පද්ධතියට ඒකාබද්ධ කිරීම සඳහා API, කිසිවෙකුට බොහෝ නිරීක්ෂණ පද්ධති අවශ්‍ය නොවන බැවිනි. පාරිභෝගිකයා ඕනෑම උපාංගයකින් සහ ජාලයකින් දත්ත තනි අධීක්ෂණයකට රැස් කළ යුතුය.

සිදුවුයේ කුමක් ද

දැනටමත් ආකර්ෂණීය දිගු කියවීමට බරක් නොවන පරිදි, මම සියලු අධීක්ෂණ පද්ධතිවල උදාහරණ සහ මිනුම් ලබා නොදෙමි. මෙය තවත් ලිපියකට මග පාදයි. මිලි තත්පර 1 ට අඩු දෝෂයක් සමඟ එකවර මෙට්‍රික් දෙකක් ගත හැකි අධීක්ෂණ පද්ධතියක් අපට සොයා ගැනීමට නොහැකි වූ බවත් 64 MB RAM සහිත ARM ගෘහ නිර්මාණ ශිල්පය සහ 86 සහිත x64_32 ගෘහ නිර්මාණ ශිල්පය යන දෙකටම එක හා සමානව ක්‍රියා කරන බවත් මම පමණක් කියමි. GB RAM. එමනිසා, මේ සියල්ල කළ හැකි අපගේම ලිවීමට අපි තීරණය කළෙමු. මෙන්න අපට ලැබුණු දේ:

විවිධ ජාල ස්ථලක සඳහා නාලිකා තුනක ප්‍රතිදානය සාරාංශ කිරීම


සමහර ප්‍රධාන මිතිකවල දෘශ්‍යකරණය

තවත් නිරීක්ෂණ පද්ධතියක්
තවත් නිරීක්ෂණ පද්ධතියක්
තවත් නිරීක්ෂණ පද්ධතියක්
තවත් නිරීක්ෂණ පද්ධතියක්

ගෘහ නිර්මාණ ශිල්පය

අපි උපාංගයේ සහ දත්ත මධ්‍යස්ථානයේ ප්‍රධාන ක්‍රමලේඛන භාෂාව ලෙස Golang භාවිතා කරමු. එය බහු කාර්යයන් ක්‍රියාත්මක කිරීම සහ එක් එක් සේවාව සඳහා ස්ථිතිකව සම්බන්ධ වූ ක්‍රියාත්මක කළ හැකි ද්විමය ගොනුවක් ලබා ගැනීමේ හැකියාව සමඟ ජීවිතය බෙහෙවින් සරල කළේය. එහි ප්‍රතිඵලයක් වශයෙන්, උපාංග අවසන් කිරීම, සංවර්ධන කාලය සහ කේත නිදොස්කරණය සඳහා සේවාව යෙදවීම සඳහා අපි සම්පත්, ක්‍රම සහ ගමනාගමනය සැලකිය යුතු ලෙස ඉතිරි කරමු.

පද්ධතිය සම්භාව්‍ය මොඩියුලර් මූලධර්මය අනුව ක්‍රියාත්මක වන අතර උප පද්ධති කිහිපයක් අඩංගු වේ:

  1. මෙට්රික් ලියාපදිංචිය.
    සෑම මෙට්‍රික් එකක්ම තමන්ගේම නූල් මගින් සපයනු ලබන අතර නාලිකා හරහා සමමුහුර්ත කර ඇත. නැනෝ තත්පර 10ක් දක්වා සමමුහුර්ත කිරීමේ නිරවද්‍යතාවයක් ලබා ගැනීමට අපට හැකි විය.
  2. මෙට්රික් ගබඩාව
    අපි කාල ශ්‍රේණි සඳහා අපගේම ආචයනය ලිවීම හෝ දැනටමත් පවතින දෙයක් භාවිත කිරීම අතර තෝරා ගනිමින් සිටියෙමු. දත්ත සමුදාය පසුකාලීන දෘශ්‍යකරණයට යටත් වන ප්‍රතිගාමී දත්ත සඳහා අවශ්‍ය වේ. එනම්, සෑම මිලි තත්පර 0.5 කට වරක් නාලිකාවේ ප්‍රමාදයන් හෝ ප්‍රවාහන ජාලයේ දෝෂ කියවීම් පිළිබඳ දත්ත එහි අඩංගු නොවේ, නමුත් සෑම අතුරු මුහුණතකම සෑම මිලි තත්පර 500 කට වරක් වේගයක් ඇත. හරස් වේදිකා සහ අඩු සම්පත් පරිභෝජනය සඳහා ඉහළ අවශ්‍යතා වලට අමතරව, අපට සැකසීමට හැකිවීම අතිශයින්ම වැදගත් වේ. දත්ත යනු එය ගබඩා කර ඇති ස්ථානයයි. මෙය විශාල පරිගණක සම්පත් ඉතිරි කරයි. අපි 2016 සිට මෙම ව්‍යාපෘතියේ Tarantool DBMS භාවිතා කර ඇති අතර මෙතෙක් ක්ෂිතිජයේ ඒ සඳහා ආදේශකයක් අපට නොපෙනේ. නම්‍යශීලී, ප්‍රශස්ත සම්පත් පරිභෝජනය සමඟ, ප්‍රමාණවත් තාක්ෂණික සහායට වඩා. Tarantool GIS මොඩියුලයක් ද ක්‍රියාත්මක කරයි. ඇත්ත වශයෙන්ම, එය PostGIS තරම් බලවත් නොවේ, නමුත් සමහර ස්ථාන ආශ්‍රිත ප්‍රමිතික (ප්‍රවාහනයට අදාළ) ගබඩා කිරීමේ අපගේ කාර්යයන් සඳහා එය ප්‍රමාණවත් වේ.
  3. මිනුම් දෘෂ්යකරණය
    මෙහි සෑම දෙයක්ම සාපේක්ෂව සරල ය. අපි ගබඩාවෙන් දත්ත ලබාගෙන ඒවා තථ්‍ය කාලීනව හෝ ප්‍රත්‍යාවර්තව ප්‍රදර්ශනය කරමු.
  4. මධ්යම අධීක්ෂණ පද්ධතිය සමඟ දත්ත සමමුහුර්ත කිරීම.
    මධ්‍යම අධීක්ෂණ පද්ධතිය සියලුම උපාංග වලින් දත්ත ලබා ගනී, එය නිශ්චිත ඉතිහාසයක් සමඟ ගබඩා කර API හරහා පාරිභෝගිකයාගේ අධීක්ෂණ පද්ධතියට යවයි. සම්භාව්‍ය අධීක්ෂණ පද්ධති මෙන් නොව, "හිස" වටා ඇවිදිමින් දත්ත රැස් කරයි, අපට ප්‍රතිවිරුද්ධ යෝජනා ක්‍රමය ඇත. සම්බන්ධතාවයක් ඇති විට උපාංග විසින්ම දත්ත යවයි. මෙය ඉතා වැදගත් කරුණකි, එය උපාංගය නොමැති කාල සීමාවන් සඳහා උපාංගයෙන් දත්ත ලබා ගැනීමට සහ උපාංගය නොමැති විට නාලිකා සහ සම්පත් පූරණය නොකිරීමට ඔබට ඉඩ සලසයි. අපි මධ්‍යම අධීක්ෂණ පද්ධතියක් ලෙස Influx අධීක්ෂණ සේවාදායකය භාවිතා කරමු. එහි ප්‍රතිසමයන් මෙන් නොව, එයට ප්‍රතිගාමී දත්ත ආයාත කළ හැක (එනම්, ප්‍රමිතික ලැබුණු මොහොතේ සිට වෙනස් කාල මුද්‍රාවක් සහිතව) එකතු කරන ලද ප්‍රමිතික ග්‍රැෆනා විසින් දෘශ්‍යකරණය කර, ගොනුවක් සමඟින් වෙනස් කර ඇත. ඕනෑම පාරිභෝගික අධීක්ෂණ පද්ධතියක් සමඟ සූදානම් කළ API ඒකාබද්ධ කිරීම් ඇති බැවින් මෙම සම්මත තොගය ද තෝරා ගන්නා ලදී.
  5. මධ්‍යම උපාංග කළමනාකරණ පද්ධතියක් සමඟ දත්ත සමමුහුර්තකරණය.
    උපාංග කළමනාකරණ පද්ධතිය Zero Touch Provisioning ක්‍රියාත්මක කරයි (ස්ථිරාංග යාවත්කාලීන කිරීම, වින්‍යාස කිරීම යනාදිය) සහ, අධීක්ෂණ පද්ධතිය මෙන් නොව, උපාංගයකට පමණක් ගැටළු ලැබේ. මේවා ඔන්-බෝඩ් දෘඩාංග මුර සේවා සහ ජීවිත ආධාරක පද්ධතිවල ක්‍රියාකාරීත්වය සඳහා ප්‍රේරක වේ: CPU සහ SSD උෂ්ණත්වය, CPU පැටවීම, නිදහස් ඉඩ සහ තැටිවල ස්මාර්ට් සෞඛ්‍යය. උප පද්ධති ගබඩාව ද Tarantool මත ගොඩනගා ඇත. මෙය දහස් ගණනක් උපාංග හරහා කාල ශ්‍රේණි එකතු කිරීමේදී සැලකිය යුතු වේගයක් ලබා දෙන අතර, මෙම උපාංග සමඟ දත්ත සමමුහුර්ත කිරීමේ ගැටලුව සම්පූර්ණයෙන්ම විසඳයි. Tarantool සතුව විශිෂ්ට පෝලිම් සහ සහතික බෙදාහැරීමේ පද්ධතියක් ඇත. අපි මෙම වැදගත් අංගය කොටුවෙන් එළියට ගත්තෙමු, නියමයි!

ජාල කළමනාකරණ පද්ධතිය

තවත් නිරීක්ෂණ පද්ධතියක්

ඊළඟට කුමක්ද

මෙතෙක් අපගේ දුර්වලම සම්බන්ධකය වන්නේ මධ්‍යම අධීක්ෂණ පද්ධතියයි. එය සම්මත තොගයක් මත 99.9% ක් ක්රියාත්මක කර ඇති අතර අවාසි ගණනාවක් ඇත:

  1. බලය නැති වූ විට InfluxDB දත්ත අහිමි වේ. රීතියක් ලෙස, පාරිභෝගිකයා උපාංග වලින් ලැබෙන සෑම දෙයක්ම ඉක්මනින් එකතු කරන අතර දත්ත ගබඩාවේ මිනිත්තු 5 කට වඩා පැරණි දත්ත අඩංගු නොවේ, නමුත් අනාගතයේදී මෙය වේදනාවක් විය හැකිය.
  2. Grafana හට දත්ත එකතු කිරීම සහ එහි සංදර්ශකය සමමුහුර්ත කිරීම සම්බන්ධ ගැටළු ගණනාවක් තිබේ. වඩාත්ම පොදු ගැටළුව වන්නේ දත්ත සමුදායේ 2:00:00 සිට ආරම්භ වන තත්පර 00 ක කාල පරාසයක් සහිත කාල ශ්‍රේණියක් අඩංගු වන විට සහ Grafana තත්පර +1 සිට දත්ත එකතු කිරීම ආරම්භ කිරීමයි. ප්රතිඵලයක් වශයෙන්, පරිශීලකයා නර්තන ප්රස්ථාරයක් දකී.
  3. තෙවන පාර්ශවීය නිරීක්ෂණ පද්ධති සමඟ API ඒකාබද්ධ කිරීම සඳහා අධික කේත ප්‍රමාණයක්. එය වඩාත් සංයුක්ත කළ හැකි අතර ඇත්ත වශයෙන්ම Go හි නැවත ලිවිය හැකිය)

මම හිතන්නේ ඔබ සියලු දෙනාම ග්‍රැෆානා පෙනුම කෙබඳුද කියා හොඳින් දැක ඇති අතර එහි ගැටලු මා නොමැතිව දන්නා නිසා මම පින්තූර සමඟ පෝස්ටුව අධික ලෙස පටවන්නේ නැත.

නිගමනය

මම හිතාමතාම තාක්ෂණික විස්තර විස්තර නොකළ නමුත් මෙම පද්ධතියේ මූලික සැලැස්ම පමණක් විස්තර කළෙමි. පළමුව, පද්ධතිය තාක්ෂණික වශයෙන් සම්පූර්ණයෙන් විස්තර කිරීමට, තවත් ලිපියක් අවශ්ය වනු ඇත. දෙවනුව, සෑම කෙනෙකුම මේ ගැන උනන්දු නොවනු ඇත. ඔබ දැන ගැනීමට කැමති තාක්ෂණික විස්තර මොනවාදැයි අදහස් දැක්වීමේදී ලියන්න.

මෙම ලිපියේ විෂය පථයෙන් ඔබ්බට යමෙකුට ප්‍රශ්න ඇත්නම්, ඔබට a.rodin @ qedr.com හි මට ලිවිය හැකිය

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න