Hacker News

Discord: Astudiaeth achos mewn optimeiddio perfformiad

Discord: Astudiaeth achos mewn optimeiddio perfformiad Mae'r dadansoddiad cynhwysfawr hwn o anghytgord yn cynnig archwiliad manwl o'i gydrannau craidd a goblygiadau ehangach. Meysydd Ffocws Allweddol Mae’r drafodaeth yn canolbwyntio ar: Mecanweithiau craidd a th...

8 min read Via newsletter.fullstack.zip

Mewayz Team

Editorial Team

Hacker News

Anghytundeb: Astudiaeth Achos mewn Optimeiddio Perfformiad

Mae taith optimeiddio perfformiad Discord yn sefyll fel un o'r enghreifftiau mwyaf addysgiadol ym maes peirianneg meddalwedd fodern, gan ddangos sut y gall platfform ehangu o filoedd i gannoedd o filiynau o ddefnyddwyr heb aberthu cyflymder na dibynadwyedd. Trwy archwilio penderfyniadau peirianneg Discord - o fudo cronfa ddata i bensaernïaeth negeseuon amser real - gall busnesau echdynnu strategaethau profedig ar gyfer adeiladu llwyfannau sy'n perfformio dan bwysau.

Pa Fecanweithiau Craidd sy'n Sbarduno Perfformiad Power Discord ar Raddfa?

Mae seilwaith Discord wedi'i adeiladu ar athroniaeth o gyfaddawdu peirianneg bwriadol. Wedi'i adeiladu'n wreiddiol ar Python a MongoDB, daeth y platfform ar draws tagfeydd yn gyflym wrth i'w sylfaen defnyddwyr ffrwydro. Gwnaeth y tîm peirianneg benderfyniad pensaernïol hollbwysig: symud oddi wrth bentwr monolithig tuag at bensaernïaeth sy'n canolbwyntio ar wasanaeth, gan alluogi cydrannau unigol i raddfa'n annibynnol.

Yn greiddiol i berfformiad Discord mae ei ddefnydd o Elixir a pheiriant rhithwir Erlang BEAM ar gyfer ei haen negeseuon amser real. Cafodd y BEAM VM ei adeiladu'n bwrpasol ar gyfer systemau cydamserol, goddefgar - yn union yr hyn y mae platfform sy'n trin biliynau o negeseuon y dydd ei angen. Yn y cyfamser, cafodd haen API Discord ei hailysgrifennu yn Rust yn y pen draw, gan gynnig diogelwch cof a pherfformiad bron-sero-gorben na allai Python ei gydweddu ar raddfa.

Y canlyniad yw system lle mae miliynau o gysylltiadau WebSocket cydamserol yn cael eu cynnal gydag amseroedd dosbarthu negeseuon is-50ms, hyd yn oed yn ystod defnydd brig. Nid damwain oedd hyn - roedd yn gynnyrch proffilio ailadroddol, adnabod tagfeydd, ac ailysgrifennu wedi'i dargedu o'r cydrannau system a oedd dan fwyaf o straen.

Sut Llwyddodd Discord i Ddatrys Ei Dagfa Cronfa Ddata Fwyaf drwg-enwog?

Roedd un o heriau peirianneg mwyaf cyhoeddus Discord yn ymwneud â Cassandra, y gronfa ddata ddosbarthedig a ddefnyddiodd i storio hanes negeseuon. Wrth i'r platfform dyfu, diraddiodd hwyrni darllen yn ddifrifol - nid oherwydd bod Cassandra yn ddewis gwael, ond oherwydd bod patrymau defnydd Discord wedi newid yn sylfaenol. Achosodd rhaniadau poeth, lle'r oedd nifer anghymesur o ddarlleniadau yn canolbwyntio ar nodau data penodol, arafu anrhagweladwy.

Ymateb y tîm peirianneg oedd symudiad nodedig i ScyllaDB, cronfa ddata sy'n gydnaws â Cassandra a ysgrifennwyd yn C++. Gostyngodd y mudo hwyrni darllen t99 o 40-125ms i lawr i filieiliadau un digid yn y rhan fwyaf o achosion. Yn bwysicach fyth, gostyngodd gymhlethdod gweithredol rheoli'r clwstwr, gan ryddhau adnoddau peirianneg i ganolbwyntio ar ddatblygu nodweddion yn hytrach na diffodd tanau seilwaith.

Nid yw'r optimeiddio perfformiad gorau bob amser yr un mwyaf soffistigedig yn dechnegol - dyma'r un sy'n lleihau cymhlethdod wrth fynd i'r afael yn uniongyrchol â'r dagfa sy'n achosi poen defnyddwyr." — Egwyddor a ddilyswyd gan stori mudo cronfa ddata Discord.

Mae'r achos hwn yn dangos gwers hollbwysig ar gyfer unrhyw lwyfan tyfu: gall yr offeryn cywir ar gyfer un cam twf ddod yn offeryn anghywir ar gyfer y nesaf. Nid yw meincnodi parhaus a pharodrwydd i fudo yn arwyddion o gynllunio gwael — maent yn arwyddion o aeddfedrwydd peirianyddol.

Pa Wersi Gweithredu yn y Byd Go Iawn Gall Busnesau Gymhwyso?

Nid damcaniaethol yn unig oedd taith optimeiddio Discord — cynhyrchodd set o arferion y gellir eu dyblygu a oedd yn berthnasol i unrhyw fusnes a yrrir gan feddalwedd. Ymhlith y siopau cludfwyd y gellir gweithredu fwyaf arnynt mae:

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →
  • Proffil cyn optimeiddio: Nododd Discord yn gyson union dagfeydd trwy fesur yn hytrach na thybiaeth, gan atal ymdrech a wastraffwyd ar lwybrau nad ydynt yn hanfodol.
  • Dewiswch ieithoedd cyfnewid-cyntaf ar gyfer llwythi gwaith I/O-trwm: Roedd symud i Elixir ar gyfer llwybro negeseuon wedi lleihau gorbenion CPU yn ddramatig o gymharu â modelau edefyn fesul cysylltiad.
  • Datgyplu storfa o gyfrifiannu: Trwy wahanu storfa neges oddi wrth yr haen danfon amser real, roedd Discord yn galluogi pob haen i raddfa'n annibynnol yn seiliedig ar ei phatrwm llwyth penodol.
  • Croesawu mudo cynyddrannol dros ailysgrifennu'r glec fawr: Cafodd systemau hollbwysig eu symud fesul gwasanaeth, gan leihau risg a chaniatáu ar gyfer dilysu enillion perfformiad yn barhaus.
  • Buddsoddi mewn arsylwi yn gynnar: Deilliodd gallu Discord i ganfod atchweliadau yn gyflym o fuddsoddiad dwfn mewn olrhain gwasgaredig, dangosfyrddau metrigau, a seilwaith rhybuddio a adeiladwyd cyn i argyfyngau ddigwydd.

Sut Mae Ymagwedd Discord yn Cymharu â Dewisiadau Amgen y Diwydiant?

Mae model optimeiddio Discord yn cyferbynnu’n ystyrlon â sut mae platfformau fel Slack a Microsoft Teams wedi mynd i’r afael â heriau tebyg. Roedd Slack, er enghraifft, yn pwyso'n drwm ar bentwr yn seiliedig ar Node.js a rheolaeth WebSocket ar haen y cais, gan dderbyn gorbenion cof uwch yn gyfnewid am gynefindra'r datblygwr. Mabwysiadodd timau, gyda chefnogaeth seilwaith Azure Microsoft, ddull menter yn gyntaf - gan flaenoriaethu cydymffurfiaeth ac ehangder integreiddio dros berfformiad hwyrni crai.

Gwahaniaethwr Discord oedd ei barodrwydd i fabwysiadu technolegau llai prif ffrwd — Elixir, Rust, ScyllaDB — pan oedd y technolegau hynny’n amlwg yn fwy addas ar gyfer problemau penodol. Cynhyrchodd y dull pragmatig yn hytrach nag ideolegol hwn o ddewis technoleg enillion mesuradwy heb fod angen ailysgrifennu platfform cyfanwerthol ar unrhyw adeg benodol.

Ar gyfer busnesau sy’n gwerthuso eu staciau platfform eu hunain, mae enghraifft Discord yn dadlau’n gryf yn erbyn “datblygiad a yrrir gan ailddechrau” — gan ddewis technolegau ar gyfer bri eu diwydiant yn hytrach na’u ffit ar gyfer y broblem. Y cwestiwn byth yw "beth sy'n boblogaidd?" ond "beth sy'n datrys y cyfyngiad perfformiad penodol hwn?"

Pa Dystiolaeth Empirig sy'n Profi Mae Strategaethau Optimeiddio Discord yn Gweithio?

Mae canlyniadau penderfyniadau peirianneg Discord wedi'u dogfennu ac yn fesuradwy. Yn dilyn mudo ScyllaDB, nododd Discord ostyngiad o 10x yn y cyfrif nodau tra'n gwella hwyrni ar yr un pryd. Fe wnaeth ailysgrifennu Rust API ddileu categorïau cyfan o fygiau sy'n gysylltiedig â'r cof wrth leihau amseroedd ymateb gwasanaeth. Mae cyflwyno negeseuon ar raddfa yn gyson yn gweithredu o dan y trothwy 50ms hyd yn oed yn ystod digwyddiadau hapchwarae mawr - eiliadau a oedd yn flaenorol yn rhoi pwysau ar y system i'w therfynau.

Erbyn 2023, roedd Discord yn prosesu dros 4 biliwn o funudau o gyfathrebu llais bob dydd ar draws mwy na 19 miliwn o weinyddion gweithredol. Nid yw'r rhain yn fetrigau gwagedd - maent yn dystiolaeth bod y penderfyniadau pensaernïol a wnaed o dan bwysau peirianyddol wedi cynhyrchu buddion perfformiad gwydn, gan waethygu dros amser.

Cwestiynau Cyffredin

Pam ymfudodd Discord o Python i Rust ar gyfer ei haen API?

Mae Clo Dehonglydd Byd-eang Python (GIL) yn cyfyngu'n sylfaenol ar ei allu i weithredu cod gwirioneddol gydamserol, gan greu nenfydau trwybwn a ddaeth yn fwyfwy problemus wrth i nifer y ceisiadau API Discord dyfu. Cynigiodd Rust gynhyrchiant datblygwr tebyg ar gyfer cod lefel systemau heb yr amser rhedeg uwchben, seibiau casglu sbwriel, neu gyfyngiadau arian cyfred Python - gan gynhyrchu haen API a oedd yn gyflymach ac yn fwy rhagweladwy o dan lwyth.

Beth yw'r camgymeriad mwyaf y mae platfformau optimeiddio perfformiad yn ei wneud ar raddfa?

Y camgymeriad mwyaf cyffredin yw optimeiddio'n gynamserol ac yn fras yn hytrach na thargedu'r dagfa fesuredig benodol sy'n achosi diraddio. Mae peirianneg perfformiad yn fwyaf effeithiol pan gaiff ei llywio gan ddata proffilio a metrigau effaith defnyddwyr. Llwyddodd Discord yn gyson i nodi'r cyfyngiad unigol a gafodd yr effaith fwyaf - hwyrni cronfa ddata, trwybwn API, arian cyfred WebSocket - a'i ddatrys yn benodol cyn symud i'r nesaf.

Sut gall llwyfan lefel busnes gymhwyso gwersi perfformiad Discord heb adnoddau peirianneg menter?

Mae'r egwyddorion yn lleihau'n effeithiol. Gall unrhyw lwyfan weithredu offer arsylwi, proffilio pwyntiau terfyn o dan lwyth realistig, a gwneud penderfyniadau stac cynyddrannol yn seiliedig ar ddata yn hytrach na rhagosodiadau. Mae llwyfannau popeth-mewn-un sy'n haniaethol o gymhlethdod seilwaith - trin caching, cyfathrebu amser real, a storio data ar lefel platfform - yn caniatáu i fusnesau sy'n tyfu elwa ar bensaernïaeth wedi'i optimeiddio heb fod angen ei ailadeiladu eu hunain.


Mae astudiaeth achos optimeiddio perfformiad Discord yn profi bod graddfa gynaliadwy yn cael ei chyflawni trwy benderfyniadau pensaernïol bwriadol sy'n cael eu gyrru gan ddata — nid trwy daflu adnoddau at broblemau. P'un a ydych chi'n rhedeg platfform cyfathrebu neu system weithredu busnes aml-fodiwl, mae'r egwyddorion yr un peth: mesur yn ddi-baid, datgysylltu'n ddeallus, a dewis offer sy'n cyfateb i'r broblem wirioneddol.

Os yw'ch busnes yn chwilio am blatfform sy'n rhoi'r egwyddorion hyn ar waith - trin perfformiad, graddadwyedd, a chymhlethdod gweithredol fel y gallwch ganolbwyntio ar dwf - archwiliwch Mewayz heddiw. Gyda 207 o fodiwlau integredig, 138,000+ o ddefnyddwyr, a chynlluniau'n dechrau ar ddim ond $19/mis, mae Mewayz wedi'i adeiladu i raddfa gyda'ch busnes o'r diwrnod cyntaf.

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime