Ut Badoo effectum facultatem mittere 200k photos per secundo

Ut Badoo effectum facultatem mittere 200k photos per secundo

Textus modernus fere cogitari potest sine instrumentis instrumentis: omnis fere avia Mauris quis felis, quisque in retia sociali est, et tempus in sustentatione pretiosum est pro societatibus. Hic est transcriptum societatis fabulae Badoo quomodo solvenda est deliberatio imaginum utens solutionis ferrariae, quae problemata perficiendi in processu obvenit, quid effecit, et quomodo problemata haec solvebantur utens solutionem programmatum in Nginx fundatum, dum culpa tolerantiae in omnibus gradibus cavetur (видео). Agimus auctoribus fabulae Oleg Sannis Efimova et Alexandra Dymova, eorum usus in colloquio participes Uptime die 4.

— Incipiamus cum aliquantula introductione quomodo nos condimus et imagines photographicas. Iacum habemus ubi condimus, et iacuit ubi imagines condimus. Eodem tempore, si velimus dolum magnum consequi rate et onus reposita reducere, interest nobis unumquemque usoris photographicum unius servo caching esse. Alioquin, toties plures orbes instituere volumus quam plures servientes habemus. Dolum nostrum circa 99%, hoc est, sarcinam repositionis nostrae per 100 vicibus minuimus, et ut hoc faceremus, abhinc annos X, cum haec aedificata erant, 10 ministratores habuimus. Itaque, ut his imaginibus inserviamus, 50 externas regiones essentialiter egemus quibus servientes inserviunt.

Naturaliter quaestio statim orta est: si unus ex servis nostris descendit et fit pervulgatus, quam partem negocii amittimus? Inspeximus quid in foro erat, et fragmen ferramentorum emere constituimus ut quaestiones omnes nostras solveret. Electio in solutionem societatis F5-retis incidit (quae obiter nuper NGINX, Inc emit): MAGNUS-IP Procurator Loci negotiationis.

Ut Badoo effectum facultatem mittere 200k photos per secundo

Quid hoc ferramenti (LTM) facit: est iter ferreum quod ferrum redundantiam sui portuum externorum facit et sinit te iter mercaturam facere in retis topologia, in quibusdam fundis et inhibet sanitatem. Praecipuum erat nobis ut haec fragmen ferramentorum programmata possent. Proinde logicam describi potuimus quomodo imagines certae usoris ex proprio cella appositae sunt. Quid simile? Pars ferramentorum est quae interretialem ex una ditione spectat, unum IP, agit offload, parses petitiones http, numerum e IRule eligit, ubi ire, et mercatum ibi ire permittit. Eodem tempore, valetudo inhibet, et in eventu alicuius machinae pervulgatus, tunc id fecimus ut negotiatio ad unum server tergum iverit. Ex conformatione sententiarum quaedam nuances sunt sane, sed in genere omnia prorsus simplicia sunt: ​​nos subcriptio schedulam, correspondentiam certorum numeri nostri IP in retiaculis, dicimus nos in portubus 80 audituros. et 443 dicimus, si ministrans perpendat, negotiationem ad tergum mittere debes, hoc in casu 35th, et fasciculum logicae describemus quo pacto haec architectura disconveniatur. Sola problema fuit quod lingua in qua ferramentaria programmata erat Tcl. Si quis huius omnino meminit... haec lingua magis scribenda est quam lingua programmandi commoda:

Ut Badoo effectum facultatem mittere 200k photos per secundo

Quid habuimus? Recepimus nummum ferramentorum quae infrastructuram nostram promptitudinem praestat, itinera omnia negotiatorum nostrorum, beneficia sanitatis et iusta opera praebet. Praeterea satis diu facit: super praeteritum X annos nullae querelae de eo fuerunt. Ab ineunte 10 iam circiter 2018k imagines secundo secundo mittebamus. Hoc alicubi circa 80 gigabitas commercii ab utroque nostrum centra data.

Sed…

Ineunte 2018 imaginem deformem vidimus in chartis: tempus accepit ut imagines emittendi haud dubie augerentur. Et id nobis convenit. Problema est hanc agendi rationem tantum in summo negotiationis apparuisse - societas nostra haec nox est a die dominico ad diem Lunae. Sed reliqua temporis ratio more solito gerebat, nulla signa defectionis.

Ut Badoo effectum facultatem mittere 200k photos per secundo

Nihilominus problema solvendum erat. Nos identificari fieri ampullas et eas tollere coeperunt. Imprimis, nimirum, uplinks externas dilatavimus, computum integrum uplinkorum internorum deduximus, et omnia quae possibilia sunt inveneremus. Sed haec omnia non evidens eventum dederunt, quaestio non evanuit.

Alius possibilis bottleneck erat faciendum in ipsis gazis photographicis. Et statuimus quod forsitan sit eis dubium. Bene, perficientur maxime dilatavimus portuum retis in thesauris photographicis. Sed iterum nulla manifesta emendatio visa est. In fine, attendimus ad faciendum ipsum LTM, et hic vidimus tristem picturam in graphs: onus in omnibus CPUs blande ire incipit, sed repente ad campum venit. Eodem tempore, LTM cessat ut haesitationes et uplinks sanitati sufficienter respondeat et eos passim abducere incipit, quod ad gravem deductionem degradationem ducit.

Hoc est, fontem problematis notavimus, in bottleneck identificavit. Reliquum est ut quid nos facturi simus.

Ut Badoo effectum facultatem mittere 200k photos per secundo

Primum, manifestissimum quod facere potuimus est quodammodo ipsum LTM modernize. Sed nonnullae hic sunt nuances, quia haec ferraria admodum unica est, non ad macellum proximum es et emas. Separatus hic contractus, separatus contractus licentia, multum temporis capiet. Secunda optio incipit pro te cogitare, ascend cum solutione tua utens tuis propriis componentibus, potius programmate patenti accessus utens. Reliquum est ut decernat quidnam de hac re eligemus et quantum tempus solvendo hanc quaestionem habebimus, quia utentes satis imagines non recipiebant. Ideo necesse est omnia haec celerrime facere, hesterno die dicere.

Cum negotium sonaret "aliquid quam celerrime agere et ferramentis quas habemus utendo", primum visum est ut nonnullas machinas non validissimas a fronte removeremus, ibi Nginx pone, quibus nos scimus. labor et conetur efficiendi omnes eandem rationem, qua ferramenta ad faciendum sunt. Hoc est, re vera, ferramenta nostra relinquentes, 4 plures servientes inaugurati quos configurare debebamus, dominia externa pro eis creavimus, sicut ante abhinc annos X... Aliquantum in promptu amisimus si haec machinis ceciderunt, sed minus quaestionem de utentibus nostris localiter solvebant.

Proinde eadem manet logica: instituimus Nginx, potest SSL-offload, possumus aliquo modo programma in logicam fuso, salubris in config-reprehendo ac simpliciter duplicare logicam quam antea habuimus.

Sedeamus scribere confis. Primo omnia valde simplicia videbantur, sed, pro dolor, difficillimum est ad omne opus manuale invenire. Ideo simpliciter googling "quam configurare Nginx pro imaginibus" non commendamus: melius est referre ad documenta publica, quam occasus tangi ostendet. Sed melius est te ipsum modulum specificum eligere. Omnia ergo simplicia sunt: ​​servitores quos habemus describimus, testimoniales describimus. Sed res maxime interesting est, re ipsa logica excitanda.

In primis nobis visum est nos locum nostrum simpliciter descripsisse, numerum photologicarum nostrarum in eo congruentes, utentes manibus nostris vel generante ad describere quot fluminum indigemus, in unoquoque flumine designemus ministratorem cui negotiatio debet. vade et in tergum server - si principalis server not available:

Ut Badoo effectum facultatem mittere 200k photos per secundo

Sed probabiliter, si omnia tam simplicia essent, simpliciter domum iremus nec aliquid diceremus. Infeliciter, cum occasus Nginx defectus, quae generatim per multos annos evolutionis factae sunt nec omnino apta sunt huic casui... config similis est hoc: si aliquis servo adverso errore vel timeout petitionem habet, Nginx semper virgas traffic ad proximum unum. Praeterea, post primam defectum, minister etiam intra 10 secundas avertit, tam per errorem, quam per tempus -, hoc etiam nullo modo configurari potest. Hoc est, si optionem optionis temporis in flumine directivo removemus vel reponimus, tunc, licet Nginx hanc petitionem non processerit et cum aliquibus non valde bonis errori respondebit, servo clausa erit.

Ut Badoo effectum facultatem mittere 200k photos per secundo

Et ad hoc vitare duo fecimus;

a) Prohibuerunt Nginx quominus hoc manually - quod dolendum est, hoc solum iter facere est, ut laxitatem max deficient occasus constituat.

b) recordati sumus in aliis inceptis moduli utimur, qui nos sinit ut in schedula sanitatis reprimantur — proinde valitudinem admodum frequentem fecimus ut in temporis casu minimus sit.

Infeliciter, hoc omnino non est, quod ad litteram primae duae hebdomades operationis huius schematis ostenderunt TCP sanitatis perscriptio rem etiam ambigui esse: in flumine ministrante Nginx, vel Nginx in D-statu non potest esse, et in hoc casu nucleus nexum accipiet, perscriptio salubris transibit, sed non laborabit. Propterea statim hoc reposuimus cum http://www.salvante, specifice factum, quod, si 200 redit, omnia in hoc scripto operantur. Potes logicam additionalem facere - exempli gratia, in servientibus caching, reprehendo systema fasciculi recte annectitur;

Ut Badoo effectum facultatem mittere 200k photos per secundo

Et hoc nobis conveniret, nisi ut in momento circuii quod bene iteravit. Sed melius facere voluimus. Antea unum tergum servientem habuimus, et hoc verisimile non est valde bonum, quia si centum servis habetis, tunc cum plures simul deficiunt, unus servitor tergum oneris obire improbabile est. Reservationem ergo per omnes servientes distribuere decrevimus: simpliciter alium fluvium separatum fecimus, omnes servientes ibi scripsimus cum quibusdam parametris secundum quod onus inservire possunt, adiecerunt eandem sistit valetudinem quam antea habuimus;

Ut Badoo effectum facultatem mittere 200k photos per secundo

Cum impossibile sit ad alium fluvium in uno flumine ire, necesse fuit efficere ut, si principalis fluminis, in quo simpliciter memoravimus, rectus, necessarius photographicus photographicus, pervulgatus esset, nos simpliciter per errorem_paginam delabi, e ubi nos ad tergum adverso flumine:

Ut Badoo effectum facultatem mittere 200k photos per secundo

Et ad litteram additis quattuor servientibus, hoc est quod emimus: partem oneris reposuimus - eam ab LTM his servientibus removimus, eandem logicam ibi implevimus, utens ferramentis et programmatibus vexillum, et statim accepit bonum quod isti servientes possunt. escendere, quia tantum suppeditare possunt quantum opus est. Bene, sola negativa est quod alta available pro users externis perdidimus. Sed tunc oportebat hoc sacrificare, quia necesse erat statim quaestionem solvere. So, partem oneris removimus, tunc circiter 40%, LTM bona sensimus, et literam duas septimanas postquam problema incepit, incepimus non 45k petitiones per secundam mittere, sed 55k. Re quidem vera per 20% creverunt - hoc plane negocii quod usori non dedimus. Et post haec inceperunt cogitare quomodo reliquam quaestionem solvere - accessibilitatem externam altam curare.

Ut Badoo effectum facultatem mittere 200k photos per secundo

Habuimus aliquam moram, in qua disseruimus, qua solutione ad hoc uteremur. Propositiones ad fidem adhibendi DNS fuerunt, utentes quibusdam scriptis domi-scriptis, protocolla dynamica fugata... multae optiones fuerunt, sed iam claruit ut vere certae traditionis photos, alium tabulatum inducere debes qui hanc monitorem reddet. . Has machinas photographicas moderatores vocavimus. Quo programmate freti servabatur:

Ut Badoo effectum facultatem mittere 200k photos per secundo

Incipiendum est, quid de custodia? Prima est VRRP protocollum, networkers late notum, in apparatu retis positum, quod culpam tolerantiam praebet externam IP oratio cui clientes coniungunt. Secunda pars est IPVS, IP virtualis cultor, ad conpensationem inter itinera photographica et culpam tolerantiae in hoc gradu praestans. Tertium vero - sanitas inhibet.

Incipiamus a prima parte: VRRP - quid est simile? Est quaedam virtualis IP, quae ingressum in dns badoocdn.com habet, ubi clientes coniungunt. Aliquando in tempore, IP oratio in uno servo habemus. Faces conservatae currunt inter servers protocollo VRRP utentes, et si dominus e radar evanescit - servo vel aliud recrevit, tunc server tergum automatice hanc IP inscriptionem legit - nullas actiones manuales requiruntur. Discrimen inter dominum et tergum principaliter est prioritas: quanto quo altior, eo maior machina dominus fiet. Plurimum commodum est quod non opus est IP inscriptiones in ipso servo configurare, satis est eas in config describere, et si IP inscriptiones aliquas consuetudines regulas fundere egent, hoc in config directe describitur, utens in. eadem syntaxin qua in VRRP sarcina. Non occurras ignota.

Ut Badoo effectum facultatem mittere 200k photos per secundo

Quid hoc simile in usu? Quid fit si unus ex ministris desit? Quamprimum dominus evanescit, nostrum tergum sistit tabulas accipientes et facto domino fit. Post aliquod tempus dominum reparavimus, tabulae refecerunt, excitaverunt Servatum - tabulae cum superiore prioritate quam tergum perveniunt, et tergum automatice retrocedit, IP inscriptiones removet, nullas actiones manuales fieri oportet.

Ut Badoo effectum facultatem mittere 200k photos per secundo

Quapropter culpam patientiae externae IP adfirmavimus. Proxima pars est quodammodo aequivalere commercium ab IP inscriptione externa ad itinera photographica quae iam terminantur. Omnia satis clara sunt cum protocolla conpensatione. Id est vel simplex rotundo-Robin, vel leviter implicatior, wrr, nexus et cetera. Haec radicaliter descripta sunt in documentis, nihil speciale. Sed methodus traditionis... Hic propius inspiciemus cur unum ex eis elegimus. Haec sunt NAT, Direct fusura et TUN. Res est ut statim centum gigabitas negotiationis e locis liberare instituimus. Si aestimas, opus 100 gigabit chartarum, recte? 10 schedulae gigabit in uno servo iam supra ambitum, saltem conceptus nostri "vexilli instrumenti". Et tunc recordati sumus nos non modo aliquod negotium dare, imagines donare.

Quid speciale? — Ingentia differentia inter advenientis et exitu negotiationis. Negotiatio ineuntes valde parva est, negotiatio exitu maxima est;

Ut Badoo effectum facultatem mittere 200k photos per secundo

Si has graphes spectes, videre potes quod directo momento circiter 200 MB per alterum accipitur, hoc est dies admodum ordinarius. Reddimus 4,500 MB per secundam, nostra proportio est circiter 1/22. Iam patet quod ad negotiationem cessans plene providere 22 operariis servientibus, eo tantum indigemus quo hunc nexum accipimus. Hic est ubi directus algorithmus fuso nobis succurrit.

Quid simile? Director noster photo, iuxta mensam suam, hospites ad iter photographicum transmittit. Sed itineraria photographica negotiatores directe in Interreti mittunt, mitte clientem, non revertuntur per directorium photographicum, sic, cum minimum numerus machinarum, tolerantiam et omnia negotiatio flantibus culpam integram curemus. In configs hoc spectat: algorithmum denotamus, in casu nostro simplex est rr, methodum directam routing praebens et tunc incipimus enumerare omnes veras servientes, quot habemus. Quod negotium hoc constituet. Si unum vel duos ministros ibi habemus, vel plures ministrantes, talis necessitas oritur - hanc sectionem config modo addimus et nimium solliciti sumus. Ex parte verae servientium, e latere itinerantis photo, haec methodus minimam configurationem requirit, perfecte in documentis descriptus, et foveae nullae ibi sunt.

Maxime nice quod talis solutio non habet radicalem redesignationem retis localis, hoc magni momenti nobis fuit, hoc cum minimis sumptibus solvere debebamus. Si intueri IPVS admin imperium outputquid simile videbimus, tunc videbimus. Hic habemus quendam virtualem cultorem in portu 443, audit, accipit nexum, omnes operarii servi enumerantur, et videre potes nexum esse, dare vel accipere, idem. Si statisticam spectemus eandem virtualem servientem, ineuntes fasciculos habemus, hospites advenientes, sed omnino nullos exitus. Exitus hospites directe ad clientem pergunt. Bene, nos eam unbalance potuimus. Nunc, quid accidit, si unus e photo itinerariis nostris deficit? Ceterum ferrum ferrum est. Is intret in nucleum terrorem, frangat, potentiae copiam exurat. Ecquid. Inde est, quod valetudo compescit, quae necessaria sunt. Possunt esse tam simplices quam inhiberi quomodo portus apertae vel res magis implicatae, usque ad quaedam scripta domestica scripta quae logicae negotium etiam inspiciant.

Alicubi in medio constitimus: postulationem habemus https ad certum locum, scriptum vocatur, si cum 200 responsio respondet, omnia denique cum hoc servo credimus, vivere et in se converti posse. facile.

Quomodo hoc rursus in opere spectat? Abeamus servo ad victum - coruscans BIOS, exempli gratia. In lignis quae statim tempus habemus, primam lineam videmus, deinde post tres conatus ut “defecit” designatus est, et simpliciter ab indice removetur.

Ut Badoo effectum facultatem mittere 200k photos per secundo

Secunda morum optio etiam potest, cum VS simpliciter ad nihilum profectus est, sed si photographica reddita est, hoc bene non operatur. Servus subit, Nginx ibi incipit, perscriptio salubris statim intellegit nexum operari, omnia denique esse, et ministrans in indice nostro apparet, et onus statim applicandum ei incipit. Nullae actiones manuales ab officio administratoris exiguntur. Servus rebooted nocte - magna negotiatio nos de hac nocte non vocat. Docent tibi hoc factum, omnia denique.

Ita, satis simplici modo, ministrantium numero adiuvante, quaestionem externae culpae tolerantiae solvimus.

Reliquum est ut haec omnia, sane monitoria sint, necesse est. Separatim animadvertendum est Keepalivede, sicut programmata iam olim scripta, fasciculum viae ad monitorem habere, utraque per DBus, SMTP, SNMP et vexillum Zabbix utens. Plus ipse scit scribere epistolas ad omnes fere sternumentas et honestas esse, aliquando etiam cogitatur de vertendo, quod multa epistolas scribit ad quodlibet commercium commutandi, mutandi, ad omnem IP nexum; et sic deinceps . Sed si servientes multum sunt, his te litteris obruere potes. Monimus nginx in photographicis itinerariis utentes modos regulas, et ferramenta vigilantia non recesserunt. Volumus sane duo plura monere: primo, externa sanitatis impedimenta et promptitudines, quia etsi omnia operantur, immo fortasse utentes non accipiunt imagines ob difficultates cum provisoribus externis, aut aliquid magis implicatum. Semper est digna custodia alicubi in retis aliis, in Amazonibus vel alibi, apparatus separatus qui servitores tuos ab extra pingere potest, et etiam valet uti vel anomalia detectione, iis qui sciunt machinam machinam subdolam facere, vel vigilantiam simplicem facere. saltem ad indagamus, si aspere petitiones ceciderint, vel e contrario, augeantur. Potest etiam utilis esse.

Summatim: nos enim reposui solutionem ferream indutam, quae aliquando nobis convenire desiit, ratione satis simplici, quae omnia eadem facit, hoc est, terminationem HTTPS mercaturae praebet et cum dolor ulteriore fudisset. necessaria valetudo impedit. Huius systematis stabilitatem auximus, hoc est, ad unumquemque lavacrum adhuc promptum habemus, plusque bonum habemus, quod facile omnia in singulis lavacris conscendere potest, quia vexillum ferramentum cum programmate normali est, id est , possibilia problemata faciliores sumus.

Quid tandem cum? Difficultas in mense Ianuario anni MMXVIII ferias habuimus. Primis sex mensibus dum hanc rationem in exactionem ponimus, eam ad omnem negotiationem dilatavimus ut omnem negotiationem ab LTM removeremus, tantum negotiatio in unum centrum datae a 2018 gigabitis ad 40 gigabitas crevimus et simul pro totus 60 annus prope ter plus photographicas secundo mittere poterant.

Ut Badoo effectum facultatem mittere 200k photos per secundo

Source: www.habr.com

Add a comment