{"id":80031,"date":"2020-05-02T13:42:49","date_gmt":"2020-05-02T11:42:49","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/top-fakapov-czian"},"modified":"2020-05-02T13:42:49","modified_gmt":"2020-05-02T11:42:49","slug":"top-fakapov-czian","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/top-fakapov-czian","title":{"rendered":"Top gabimet e \u0426\u0438\u0430\u043d","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Top gabimet e \u0426\u0438\u0430\u043d\" src=\"\/wp-content\/uploads\/2020\/05\/61cf8d25f1f3e858a3b9541cb026cf3c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMir\u00ebsi p\u00ebr t\u00eb gjith\u00eb!\u00a0<\/p>\n<p>M\u00eb quajn\u00eb Nikita, un\u00eb jam lideri i ekipit t\u00eb inxhinier\u00ebve n\u00eb Cian. Nj\u00eb nga detyrat e mia n\u00eb kompani \u00ebsht\u00eb t\u00eb reduktoj ngjarjet q\u00eb lidhen me infrastruktur\u00ebn n\u00eb prodhim, deri n\u00eb zero.<br \/>\nAjo q\u00eb do t\u00eb diskutohet m\u00eb posht\u00eb na ka sjell\u00eb shum\u00eb dhimbje, dhe q\u00ebllimi i k\u00ebtij artikulli \u00ebsht\u00eb t\u00eb mos lejojm\u00eb q\u00eb t\u00eb tjer\u00ebt t\u00eb p\u00ebrs\u00ebrisin gabimet tona ose t\u00eb pakt\u00ebn t\u00eb minimalizojn\u00eb ndikimin e tyre.\u00a0<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Preambula<\/h3>\n<p>\nKoh\u00eb m\u00eb par\u00eb, kur Cian ishte nj\u00eb monolit dhe nuk kishte asnj\u00eb shenj\u00eb t\u00eb mikrosh\u00ebrbimeve, ne matnim disponueshm\u00ebrin\u00eb e burimit duke kontrolluar 3\u20135 faqe.\u00a0<\/p>\n<p>N\u00ebse p\u00ebrgjigjen - gjith\u00e7ka \u00ebsht\u00eb n\u00eb rregull, dhe n\u00ebse nuk p\u00ebrgjigjen p\u00ebr nj\u00eb koh\u00eb t\u00eb gjat\u00eb - alar\u00ebm. Sa koh\u00eb duhet t\u00eb mos funksionojn\u00eb p\u00ebr ta konsideruar si nj\u00eb ngjarje, e vendosnin njer\u00ebzit n\u00eb mbledhje. Ekipi i inxhinier\u00ebve gjithmon\u00eb merrte pjes\u00eb n\u00eb hetimin e ngjarjes. Kur hetimi p\u00ebrfundonte, shkruanin nj\u00eb postmortem - nj\u00eb raport t\u00eb ve\u00e7ant\u00eb q\u00eb d\u00ebrgohej me email n\u00eb format: \u00e7far\u00eb ndodhi, sa zgjati, \u00e7far\u00eb b\u00ebm\u00eb n\u00eb momentin e ngjarjes, \u00e7far\u00eb do t\u00eb b\u00ebjm\u00eb n\u00eb t\u00eb ardhmen.\u00a0<\/p>\n<h3>Faqet kryesore t\u00eb faqes ose si kuptojm\u00eb se e kemi arritur fundin<\/h3>\n<p>\u00a0<br \/>\nP\u00ebr t\u00eb kuptuar si\u00e7 duhet p\u00ebrpar\u00ebsin\u00eb e gabimeve, ne kemi identifikuar faqet m\u00eb kritike p\u00ebr funksionalitetin e biznesit. P\u00ebr to, ne llogarisim numrin e k\u00ebrkesave t\u00eb sukseshme\/d\u00ebshtuar dhe koh\u00ebzgjatjet. K\u00ebshtu masim uptime-in.\u00a0<\/p>\n<p>Le t\u00eb themi se kemi zbuluar se ekzistojn\u00eb disa seksione super t\u00eb r\u00ebnd\u00ebsishme t\u00eb faqes q\u00eb jan\u00eb p\u00ebrgjegj\u00ebse p\u00ebr sh\u00ebrbimin kryesor - k\u00ebrkimi dhe paraqitja e shpalljeve. N\u00ebse numri i k\u00ebrkesave q\u00eb p\u00ebrfunduan me gabim kalon 1% - \u00ebsht\u00eb nj\u00eb ngjarje kritike. N\u00ebse brenda 15 minutash n\u00eb orar t\u00eb pikut p\u00ebrqindja e gabimeve kalon 0,1% - at\u00ebher\u00eb kjo gjithashtu konsiderohet si nj\u00eb ngjarje kritike. K\u00ebto kritere mbulojn\u00eb pjes\u00ebn m\u00eb t\u00eb madhe t\u00eb ngjarjeve, t\u00eb tjera dalin jasht\u00eb k\u00ebtij artikulli.<\/p>\n<p><img decoding=\"async\" alt=\"Top gabimet e \u0426\u0438\u0430\u043d\" src=\"\/wp-content\/uploads\/2020\/05\/f5d76b1784c9a52ae1dc4728f1509ccc.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Top ngjarjet m\u00eb t\u00eb mira t\u00eb Cian<\/h3>\n<p>\nPra, ne me siguri kemi m\u00ebsuar t\u00eb p\u00ebrcaktojm\u00eb faktin q\u00eb ka ndodhur nj\u00eb ngjarje.\u00a0<\/p>\n<p>Tani \u00e7do ngjarje \u00ebsht\u00eb e p\u00ebrshkruar n\u00eb detaje dhe pasqyrohet n\u00eb epik\u00ebn Jira. P\u00ebr ta th\u00ebn\u00eb k\u00ebt\u00eb: p\u00ebr k\u00ebt\u00eb ne nis\u00ebm nj\u00eb projekt t\u00eb ve\u00e7ant\u00eb dhe e quajt\u00ebm FAIL - n\u00eb t\u00eb mund t\u00eb krijohet vet\u00ebm epik\u00eb.\u00a0<\/p>\n<p>N\u00ebse mbledhim t\u00eb gjitha d\u00ebshtimet e vitet e fundit, ato kryesojn\u00eb:\u00a0<\/p>\n<ul>\n<li>ngjarjet q\u00eb lidhen me mssql;<\/li>\n<li>ngjarjet q\u00eb u shkaktuan nga faktor\u00eb t\u00eb jasht\u00ebm;<\/li>\n<li>gabimet e administrat\u00ebs.<\/li>\n<\/ul>\n<p>\nDo t\u00eb p\u00ebrqendrohemi m\u00eb n\u00eb detaje n\u00eb gabimet e administrator\u00ebve, si dhe n\u00eb disa d\u00ebshtime t\u00eb tjera interesante.<\/p>\n<h4>Vendi i pest\u00eb - \"Renditja e DNS-it\"<\/h4>\n<p>\nIshte nj\u00eb mart\u00eb e ndotur. Vendos\u00ebm t\u00eb rregullojm\u00eb rendin n\u00eb DNS-klusterin ton\u00eb.\u00a0<\/p>\n<p>U d\u00ebshiruam t\u00eb kalonim serverat e brendsh\u00ebm DNS nga bind n\u00eb powerdns, duke rezervuar p\u00ebr k\u00ebt\u00eb servera krejt\u00ebsisht t\u00eb ve\u00e7ant\u00eb, ku nuk ka asgj\u00eb tjet\u00ebr p\u00ebrve\u00e7 DNS.\u00a0<\/p>\n<p>Vendos\u00ebm nga nj\u00eb server DNS n\u00eb \u00e7do vendndodhje t\u00eb qendrave tona t\u00eb t\u00eb dh\u00ebnave, dhe erdhi momenti i kalimit t\u00eb zonave nga bind n\u00eb powerdns dhe kalimin e infrastruktur\u00ebs n\u00eb serverat e rinj.\u00a0<\/p>\n<p>N\u00eb kulmin e kalimit nga t\u00eb gjitha <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/sq\/server\/\"   title=\"server\u00ebsh\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1484\">server\u00ebsh<\/a>, q\u00eb ishin sh\u00ebnuar n\u00eb cache-local bind n\u00eb t\u00eb gjitha serverat, mbeti vet\u00ebm nj\u00eb, q\u00eb ishte n\u00eb qendr\u00ebn e t\u00eb dh\u00ebnave n\u00eb Sh\u00ebn Petersburg. Ky DC n\u00eb fillim ishte deklaruar si jo kritik p\u00ebr ne, por papritmas u b\u00eb nj\u00eb pik\u00eb e vetme d\u00ebshtimi.<br \/>\nPik\u00ebrisht n\u00eb k\u00ebt\u00eb periudh\u00eb kalimi ra lidhja midis Mosk\u00ebs dhe Sh\u00ebn Petersburgut. N\u00eb fakt, mbet\u00ebm pa DNS p\u00ebr pes\u00eb minuta dhe u rikthyem, kur <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/sq\/\"   title=\"hosti\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1206\">hosti<\/a> zgjidhi problemet.\u00a0<\/p>\n<p><b>P\u00ebrfundimet: <\/b><\/p>\n<p>N\u00ebse m\u00eb par\u00eb e neglizhonim faktor\u00ebt e jasht\u00ebm gjat\u00eb p\u00ebrgatitjes p\u00ebr pun\u00eb, tani i p\u00ebrfshim\u00eb ato n\u00eb list\u00ebn e asaj p\u00ebr t\u00eb cil\u00ebn po p\u00ebrgatitemi. Dhe tani synojm\u00eb q\u00eb t\u00eb gjith\u00eb komponent\u00ebt t\u00eb jen\u00eb t\u00eb rezervuar n-2, nd\u00ebrsa gjat\u00eb pun\u00ebve mund t\u00eb ulim k\u00ebt\u00eb nivel n\u00eb n-1.<\/p>\n<ul>\n<li>Gjat\u00eb hartimit t\u00eb planit t\u00eb veprimit, sh\u00ebnoni pikat ku sh\u00ebrbimi mund t\u00eb bjer\u00eb, dhe mendoni p\u00ebr skenarin ku gjith\u00e7ka shkon \"m\u00eb keq se asnj\u00ebher\u00eb\" paraprakisht.<\/li>\n<li>Rregulloni serverat e brendsh\u00ebm DNS n\u00eb lokacione t\u00eb ndryshme gjeografike\/qendra t\u00eb t\u00eb dh\u00ebnave\/rrafshina\/switch-e\/influx.<\/li>\n<li>N\u00eb \u00e7do server vendosni nj\u00eb server lokal t\u00eb cache DNS, i cili redirekton k\u00ebrkesat n\u00eb serverat kryesor\u00eb t\u00eb DNS, dhe n\u00eb rast t\u00eb pap\u00ebrshtatshm\u00ebris\u00eb do t\u00eb p\u00ebrgjigjet nga cache.\u00a0<\/li>\n<\/ul>\n<p><\/p>\n<h4>Vendi i kat\u00ebrt \u2014 \"Rregullojm\u00eb rregullat n\u00eb Nginx\"<\/h4>\n<p>\nN\u00eb nj\u00eb dit\u00eb t\u00eb bukur, ekipi yn\u00eb vendosi se \"mjafton t\u00eb durojm\u00eb\", dhe procesi i riorganizimit t\u00eb konfigurimeve t\u00eb nginx filloi. Q\u00ebllimi kryesor \u2014 t\u00eb sjellim konfigurimet n\u00eb nj\u00eb struktur\u00eb intuitivisht t\u00eb kuptueshme. M\u00eb par\u00eb gjith\u00e7ka ishte \"historikisht e krijuar\" dhe nuk kishte logjik\u00eb. Tani \u00e7do server_name \u00ebsht\u00eb nxjerr\u00eb n\u00eb nj\u00eb skedar t\u00eb quajtur n\u00eb t\u00eb nj\u00ebjt\u00ebn em\u00ebr dhe t\u00eb gjitha konfigurimet jan\u00eb shp\u00ebrndar\u00eb n\u00eb dosje. P\u00ebr t'u th\u00ebn\u00eb \u2014 konfigurimi p\u00ebrmban 253949 rreshta ose 7836520 karaktere dhe z\u00eb pothuajse 7 megabajt. Niveli i sip\u00ebrm i struktur\u00ebs:\u00a0<\/p>\n<p>                        <b class=\"spoiler_title\">Struktura e Nginx<\/b><\/p>\n<pre><code class=\"plaintext\">\u251c\u2500\u2500 akses\n\u2502 \u00a0 \u251c\u2500\u2500 allow.list\n...\n\u2502 \u00a0 \u2514\u2500\u2500 whitelist.conf\n\u251c\u2500\u2500 geobase\n\u2502 \u00a0 \u251c\u2500\u2500 exclude.conf\n...\n\u2502 \u00a0 \u2514\u2500\u2500 geo_ip_to_region_id.conf\n\u251c\u2500\u2500 geodb\n\u2502 \u00a0 \u251c\u2500\u2500 GeoIP.dat\n\u2502 \u00a0 \u251c\u2500\u2500 GeoIP2-Country.mmdb\n\u2502 \u00a0 \u2514\u2500\u2500 GeoLiteCity.dat\n\u251c\u2500\u2500 inc\n\u2502 \u00a0 \u251c\u2500\u2500 error.inc\n...\n\u2502 \u00a0 \u2514\u2500\u2500 proxy.inc\n\u251c\u2500\u2500 lists.d\n\u2502 \u00a0 \u251c\u2500\u2500 bot.conf\n...\n\u2502 \u00a0 \u251c\u2500\u2500 dinamik\n\u2502 \u00a0 \u2514\u2500\u2500 geo.conf\n\u251c\u2500\u2500 lua\n\u2502 \u00a0 \u251c\u2500\u2500 cookie.lua\n\u2502 \u00a0 \u251c\u2500\u2500 log\n\u2502 \u00a0 \u2502 \u00a0 \u2514\u2500\u2500 log.lua\n\u2502 \u00a0 \u251c\u2500\u2500 logics\n\u2502 \u00a0 \u2502 \u00a0 \u251c\u2500\u2500 include.lua\n\u2502 \u00a0 \u2502 \u00a0 \u251c\u2500\u2500 ...\n\u2502 \u00a0 \u2502 \u00a0 \u2514\u2500\u2500 utils.lua\n\u2502 \u00a0 \u2514\u2500\u2500 prom\n\u2502 \u00a0 \u00a0 \u00a0 \u251c\u2500\u2500 stats.lua\n\u2502 \u00a0 \u00a0 \u00a0 \u2514\u2500\u2500 stats_prometheus.lua\n\u251c\u2500\u2500 map.d\n\u2502 \u00a0 \u251c\u2500\u2500 access.conf\n\u2502 \u00a0 \u251c\u2500\u2500 ..\u00a0\n\u2502 \u00a0 \u2514\u2500\u2500 zones.conf\n\u251c\u2500\u2500 nginx.conf\n\u251c\u2500\u2500 robots.txt\n\u251c\u2500\u2500 server.d\n\u2502 \u00a0 \u251c\u2500\u2500 cian.ru\n\u2502 \u00a0 \u2502 \u00a0 \u251c\u2500\u2500 cian.ru.conf\n\u2502 \u00a0 \u2502 \u00a0 \u251c\u2500\u2500 ...\n\u2502 \u00a0 \u2502 \u00a0 \u2514\u2500\u2500 my.cian.ru.conf\n\u251c\u2500\u2500 service.d\n\u2502 \u00a0 \u251c\u2500\u2500 ...\n\u2502 \u00a0 \u2514\u2500\u2500 status.conf\n\u2514\u2500\u2500 upstream.d\n\u00a0\u00a0\u00a0\u00a0\u251c\u2500\u2500 cian-mcs.conf\n\u00a0\u00a0\u00a0\u00a0\u251c\u2500\u2500 ...\n\u00a0\u00a0\u00a0\u00a0\u2514\u2500\u2500 wafserver.conf<\/code><\/pre>\n<p>Ka ishte shum\u00eb m\u00eb mir\u00eb, por gjat\u00eb procesit t\u00eb rinomimit dhe shp\u00ebrndarjes s\u00eb konfigurations, disa prej tyre kishin nj\u00eb zgjerim t\u00eb gabuar dhe nuk u fut\u00ebn n\u00eb direktiv\u00ebn include *.conf. Si pasoj\u00eb, disa hoste u b\u00ebn\u00eb t\u00eb paq\u00ebndruesh\u00ebm dhe kthyen 301 n\u00eb kryefaqe. P\u00ebr shkak se kodi i p\u00ebrgjigjes nuk ishte 5xx\/4xx, k\u00ebt\u00eb nuk e vun\u00eb re menj\u00ebher\u00eb, por vet\u00ebm n\u00eb m\u00ebngjes. Pas k\u00ebsaj, filluam t\u00eb shkruajm\u00eb teste p\u00ebr kontrollet e komponenteve infrastrukturore.<\/p>\n<p><b>P\u00ebrfundimet:<\/b>\u00a0<\/p>\n<ul>\n<li>Strukturoni me sakt\u00ebsi konfigurat (jo vet\u00ebm nginx) dhe mendoni p\u00ebr struktur\u00ebn n\u00eb faz\u00ebn fillestare t\u00eb projektit. K\u00ebshtu do t\u2019i b\u00ebni ato m\u00eb t\u00eb kuptueshme p\u00ebr ekipin, \u00e7ka nga ana tjet\u00ebr do t\u00eb ul\u00eb TTM-n\u00eb.<\/li>\n<li>P\u00ebr disa komponente infrastrukturore shkruani teste. P\u00ebr shembull: kontrolloni q\u00eb t\u00eb gjith\u00eb server_name ky\u00e7 t\u2019i japin statusin e duhur, + trupin e p\u00ebrgjigjes. Mjafton t\u00eb keni disa skripte q\u00eb kontrollojn\u00eb funksionet kryesore t\u00eb komponentit, n\u00eb m\u00ebnyr\u00eb q\u00eb t\u00eb mos kujtoni me panik n\u00eb 3 t\u00eb m\u00ebngjesit \u00e7far\u00eb duhet t\u00eb kontrolloni.\u00a0<\/li>\n<\/ul>\n<p><\/p>\n<h4>Vendi i tret\u00eb \u2014 \"Papritur mbaroi vendi n\u00eb Cassandra\"<\/h4>\n<p>\nT\u00eb dh\u00ebnat rriteshin rregullisht, dhe gjith\u00e7ka ishte mir\u00eb deri n\u00eb momentin kur n\u00eb klasterin Cassandra filluan t\u00eb d\u00ebshtojn\u00eb riparimet e case-space-ve t\u00eb m\u00ebdha, sepse nuk mund t\u00eb funksiononte kompaktimi.\u00a0<\/p>\n<p>N\u00eb nj\u00eb dit\u00eb t\u00eb err\u00ebt, klasteri u shnd\u00ebrrua pothuajse n\u00eb nj\u00eb kungull, konkretisht:<\/p>\n<ul>\n<li>mbet\u00ebn rreth 20% e p\u00ebrgjithshme p\u00ebr klasterin;<\/li>\n<li>nuk mund t\u00eb shtohen nodet n\u00eb m\u00ebnyr\u00eb t\u00eb plot\u00eb, sepse nuk kalon pastrimin pas shtimit t\u00eb nodit p\u00ebr shkak t\u00eb munges\u00ebs s\u00eb vendit n\u00eb seksionet;<\/li>\n<li>performanca po ulet ngadal\u00eb, pasi kompaktimi nuk punon;\u00a0<\/li>\n<li>klasteri punon n\u00eb nj\u00eb modalitet emergjent.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Top gabimet e \u0426\u0438\u0430\u043d\" src=\"\/wp-content\/uploads\/2020\/05\/1d036fbc500a49a285fa4b0014e2a70d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIxit \u2014 kemi shtuar edhe 5 nod\u00eb pa pastrimin, pas t\u00eb cilave filluam ta nxjerrim gradualisht nga klasteri dhe ta rikthejm\u00eb p\u00ebrs\u00ebri, si nod\u00eb t\u00eb pastra, n\u00eb t\u00eb cilat kishte p\u00ebrfunduar hap\u00ebsira. Koha e shpenzuar \u00ebsht\u00eb shum\u00eb m\u00eb e madhe se sa do t\u00eb doja. Ishte nj\u00eb rrezik i disponueshm\u00ebris\u00eb pjesore ose t\u00eb plot\u00eb t\u00eb klasterit.\u00a0<\/p>\n<p><b>P\u00ebrfundimet:<\/b><\/p>\n<ul>\n<li>N\u00eb t\u00eb gjitha serverat cassandra, hap\u00ebsira n\u00eb secilin seksion nuk duhet t\u00eb jet\u00eb m\u00eb shum\u00eb se 60%.\u00a0<\/li>\n<li>T\u00eb ngarkuarit nuk duhet t\u00eb jen\u00eb m\u00eb shum\u00eb se 50% p\u00ebr CPU.<\/li>\n<li>Nuk duhet t\u00eb neglizhohet planifikimi i kapacitetit dhe ai duhet menduar p\u00ebr secilin komponent, n\u00eb baz\u00eb t\u00eb specifikave t\u00eb tij.<\/li>\n<li>Sa m\u00eb shum\u00eb nod\u00eb t\u00eb jen\u00eb n\u00eb klaster, aq m\u00eb mir\u00eb. Serverat q\u00eb mbajn\u00eb nj\u00eb volum t\u00eb vog\u00ebl t\u00eb t\u00eb dh\u00ebnave jan\u00eb m\u00eb t\u00eb shpejt\u00eb n\u00eb rikthim, dhe nj\u00eb klaster i till\u00eb \u00ebsht\u00eb m\u00eb i leht\u00eb p\u00ebr t'u ringjallur.\u00a0<\/li>\n<\/ul>\n<p><\/p>\n<h4>Vendi i dyt\u00eb \u2014 \u201cT\u00eb dh\u00ebnat u zhduk\u00ebn nga konsoli i ruajtjes key-value.\u201d<\/h4>\n<p>\nP\u00ebr zbulimin e sh\u00ebrbimeve, ne, ashtu si shum\u00eb t\u00eb tjer\u00eb, p\u00ebrdorim konsol\u00ebn. Por KV i saj p\u00ebrdoret gjithashtu p\u00ebr shp\u00ebrndarjen blue-green t\u00eb monolit. Atje ruhet informacioni mbi upstream-et aktiv dhe jo aktiv, t\u00eb cil\u00ebt nd\u00ebrruan vende gjat\u00eb deplojit. P\u00ebr k\u00ebt\u00eb, \u00ebsht\u00eb shkruar nj\u00eb sh\u00ebrbim deploy-i, q\u00eb nd\u00ebrvepronte me KV. N\u00eb nj\u00eb moment, t\u00eb dh\u00ebnat nga KV u humb\u00ebn. U rikuperuan nga memoria, por me disa gabime. Si pasoj\u00eb, gjat\u00eb shp\u00ebrndarjes, ngarkesa n\u00eb upstream ishte e shp\u00ebrndar\u00eb n\u00eb m\u00ebnyr\u00eb t\u00eb pabarabart\u00eb, dhe ne mor\u00ebm shum\u00eb gabime 502 p\u00ebr shkak t\u00eb ngarkes\u00ebs n\u00eb backend p\u00ebr CPU. N\u00eb fund, u transferuam nga konsol\u00eb KV n\u00eb postgres, nga e cila \u00ebsht\u00eb m\u00eb e v\u00ebshtir\u00eb p\u00ebr t'i fshir\u00eb tashm\u00eb.\u00a0\u00a0<\/p>\n<p><b>P\u00ebrfundimet:<br \/>\n<\/b><\/p>\n<ul>\n<li>Sh\u00ebrbimet pa ndonj\u00eb autorizim nuk duhet t\u00eb p\u00ebrmbajn\u00eb t\u00eb dh\u00ebna kritike p\u00ebr funksionimin e faqes. P\u00ebr shembull, n\u00ebse nuk keni autorizim n\u00eb ES \u2014 do t\u00eb ishte m\u00eb mir\u00eb t\u00eb ndalonit qasje n\u00eb nivelin e rrjetit nga \u00e7do vend q\u00eb nuk \u00ebsht\u00eb e nevojshme, t\u00eb lini vet\u00ebm ato t\u00eb nevojshme, dhe gjithashtu t\u00eb b\u00ebni action.destructive_requires_name: true.<\/li>\n<li>Punoni p\u00ebr mekanizmin e rezerv\u00ebs dhe rikuperimit paraprakisht. P\u00ebr shembull, krijoni nj\u00eb skenar (p\u00ebr shembull, n\u00eb python), q\u00eb di t\u00eb b\u00ebj\u00eb backup dhe rikthim.<\/li>\n<\/ul>\n<p><\/p>\n<h4>Vendi i par\u00eb \u2014 \u201cKapiteni i paqart\u00ebsis\u00eb.\u201d\u00a0<\/h4>\n<p>\nN\u00eb nj\u00eb moment, ne v\u00ebm\u00eb re nj\u00eb shp\u00ebrndarje t\u00eb pandershme t\u00eb ngarkes\u00ebs n\u00eb upstream-et e nginx n\u00eb rastet kur n\u00eb backend kishte 10+ server\u00eb. P\u00ebr shkak se round-robin drejtonte k\u00ebrkesat nga 1 n\u00eb upstream-in e fundit me radh\u00eb, dhe \u00e7do rinovim i nginx fillonte nga e para, gjithmon\u00eb kishte m\u00eb shum\u00eb k\u00ebrkesa p\u00ebr upstream-et e par\u00eb sesa p\u00ebr t\u00eb tjer\u00ebt. Si pasoj\u00eb, ata punonin m\u00eb ngadal\u00eb dhe t\u00eb gjith\u00eb u ndikuan nga kjo. Kjo b\u00ebhej gjithnj\u00eb e m\u00eb e dukshme me rritjen e sasis\u00eb s\u00eb trafikut. Nj\u00eb thjesht\u00eb azhurnim n\u00eb nginx p\u00ebr t\u00eb aktivizuar random nuk e zgjidhi problemin \u2014 duhej t\u00eb rregullohej shum\u00eb kod LUA, i cili nuk \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3onte n\u00eb versionin 1.15 (n\u00eb at\u00eb koh\u00eb). Iu desh t\u00eb patchonim nginx 1.14.2 tonin, duke futur mb\u00ebshtetje p\u00ebr random. Kjo e zgjidhi problemin. Ky defekt \u00ebsht\u00eb fitues n\u00eb kategorin\u00eb \u00abkapitani i padukshm\u00ebris\u00eb\u00bb.<\/p>\n<p><b>P\u00ebrfundimet:<\/b><\/p>\n<p>Ishte shum\u00eb interesante dhe emocionuese t\u00eb hetoja k\u00ebt\u00eb defekt).\u00a0<\/p>\n<ul>\n<li>Nd\u00ebrtoni monitorimin n\u00eb m\u00ebnyr\u00eb q\u00eb ai t\u00eb ndihmoj\u00eb n\u00eb gjetjen e fluktuacioneve t\u00eb tilla shpejt. P\u00ebr shembull, mund t\u00eb p\u00ebrdorni ELK p\u00ebr t\u00eb v\u00ebzhguar rps p\u00ebr \u00e7do backend t\u00eb \u00e7do upstream, duke ndjekur koh\u00ebn e tyre t\u00eb p\u00ebrgjigjes nga perspektiva e nginx. N\u00eb k\u00ebt\u00eb rast, kjo na ndihmoi t\u00eb identifikohemi problemin.\u00a0<\/li>\n<\/ul>\n<p>\nSi rezultat, shum\u00eb prej d\u00ebshtimeve do t\u00eb ishin shmangur me nj\u00eb q\u00ebndrim m\u00eb t\u00eb kujdessh\u00ebm n\u00eb ato q\u00eb b\u00ebni. Duhet gjithmon\u00eb t\u00eb mbani mend ligjin e Murphy:\u00a0<i>\u00c7do gj\u00eb q\u00eb mund t\u00eb shkoj\u00eb keq do t\u00eb shkoj\u00eb keq, <\/i>dhe t\u00eb nd\u00ebrtoni komponente duke u udh\u00ebhequr nga ajo.\u00a0<br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/cian\/blog\/499542\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u0434\u043e\u0431\u0440\u0430!\u00a0 \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041d\u0438\u043a\u0438\u0442\u0430, \u044f \u0442\u0438\u043c\u043b\u0438\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u0426\u0438\u0430\u043d. \u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043c\u043e\u0438\u0445 \u043e\u0431\u044f\u0437\u0430\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u043e\u0432, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 \u043d\u0430 \u043f\u0440\u043e\u0434\u0435, \u0434\u043e \u043d\u0443\u043b\u044f. \u0422\u043e, \u043e \u0447\u0435\u043c \u043f\u043e\u0439\u0434\u0435\u0442 \u0440\u0435\u0447\u044c \u0434\u0430\u043b\u0435\u0435, \u043f\u0440\u0438\u043d\u0435\u0441\u043b\u043e \u043d\u0430\u043c \u043c\u043d\u043e\u0433\u043e \u0431\u043e\u043b\u0438, \u0438 \u0446\u0435\u043b\u044c \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u2014 \u043d\u0435 \u0434\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u043c \u043b\u044e\u0434\u044f\u043c \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u043d\u0430\u0448\u0438\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u0438\u043b\u0438 \u0445\u043e\u0442\u044f \u0431\u044b \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0432\u043b\u0438\u044f\u043d\u0438\u0435.\u00a0 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":80032,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-80031","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0435\u043c \u0434\u043e\u0431\u0440\u0430! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041d\u0438\u043a\u0438\u0442\u0430, \u044f \u0442\u0438\u043c\u043b\u0438\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u0426\u0438\u0430\u043d.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/top-fakapov-czian\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0422\u043e\u043f \u0444\u0430\u043a\u0430\u043f\u043e\u0432 \u0426\u0438\u0430\u043d | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u0434\u043e\u0431\u0440\u0430! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041d\u0438\u043a\u0438\u0442\u0430, \u044f \u0442\u0438\u043c\u043b\u0438\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u0426\u0438\u0430\u043d.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/top-fakapov-czian\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-05-02T11:42:49+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-02T11:42:49+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Top gafat e Cian | ProHoster","description":"T\u00eb gjith\u00eb mir\u00eb! M\u00eb quajn\u00eb Nikita, un\u00eb jam lideri i ekipit t\u00eb inxhinier\u00ebve t\u00eb Cian.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/top-fakapov-czian","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0422\u043e\u043f \u0444\u0430\u043a\u0430\u043f\u043e\u0432 \u0426\u0438\u0430\u043d | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u0434\u043e\u0431\u0440\u0430! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041d\u0438\u043a\u0438\u0442\u0430, \u044f \u0442\u0438\u043c\u043b\u0438\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u0426\u0438\u0430\u043d.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/top-fakapov-czian","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-05-02T11:42:49+00:00","article:modified_time":"2020-05-02T11:42:49+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"80031","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 12:47:44","updated":"2026-02-09 16:50:24","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/80031","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=80031"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/80031\/revisions"}],"predecessor-version":[{"id":158728,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/80031\/revisions\/158728"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/80032"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=80031"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=80031"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=80031"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}