{"id":33707,"date":"2019-10-31T21:54:17","date_gmt":"2019-10-31T18:54:17","guid":{"rendered":"https:\/\/prohoster.info\/blog\/inogda-bolshe-eto-menshe-kogda-umenshenie-nagruzki-privodit-k-uvelicheniyu-zaderzhki\/"},"modified":"2019-10-31T21:54:17","modified_gmt":"2019-10-31T18:54:17","slug":"inogda-bolshe-eto-menshe-kogda-umenshenie-nagruzki-privodit-k-uvelicheniyu-zaderzhki","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/inogda-bolshe-eto-menshe-kogda-umenshenie-nagruzki-privodit-k-uvelicheniyu-zaderzhki","title":{"rendered":"Ndonj\u00ebher\u00eb m\u00eb shum\u00eb \u00ebsht\u00eb m\u00eb pak. Kur reduktimi i ngarkes\u00ebs \u00e7on n\u00eb rritjen e vones\u00ebs","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>As in <noindex><a rel=\"nofollow\" href=\"https:\/\/mahdytech.com\/2019\/01\/13\/curious-case-999-latency-hike\/\">n\u00eb shumic\u00ebn e postimeve<\/a><\/noindex>, u shfaq nj\u00eb problem me sh\u00ebrbimin e shp\u00ebrndarjes, le t\u00eb quajm\u00eb k\u00ebt\u00eb sh\u00ebrbim Elvini. K\u00ebt\u00eb her\u00eb nuk e kam zbuluar vet\u00eb problemin, m\u00eb e lajm\u00ebruan djemt\u00eb nga ana e klientit.<\/p>\n<p>Nj\u00eb her\u00eb u zgjova nga nj\u00eb let\u00ebr t\u00eb pak\u00ebnaqur p\u00ebr shkak t\u00eb vonesave t\u00eb m\u00ebdha me Elvinin, t\u00eb cilin e kishim planifikuar ta lan\u00e7onim s\u00eb shpejti. S\u00eb ve\u00e7anti, klienti p\u00ebrjetoi nj\u00eb vones\u00eb 99 p\u00ebrqind n\u00eb rreth 50 ms, shum\u00eb m\u00eb lart se buxheti yn\u00eb p\u00ebr vonesat. Ishte befasuese, pasi un\u00eb e kisha testuar me kujdes sh\u00ebrbimin, ve\u00e7an\u00ebrisht p\u00ebr vonesat, pasi kjo \u00ebsht\u00eb nj\u00eb tem\u00eb ankimesh t\u00eb shpeshta.<\/p>\n<p>Para se ta d\u00ebrgoja Elvin p\u00ebr testim, kam b\u00ebr\u00eb shum\u00eb eksperimente me 40 mij\u00eb k\u00ebrkesa n\u00eb sekond\u00eb (QPS), t\u00eb gjitha treguan vones\u00eb m\u00eb t\u00eb vog\u00ebl se 10 ms. Ishim t\u00eb gatsh\u00ebm t\u00eb deklaronim se nuk ishim dakord me rezultatet e tyre. Por duke e shqyrtuar s\u00ebrish letr\u00ebn, vura re di\u00e7ka t\u00eb re: nuk isha testuar n\u00ebn kushtet q\u00eb ata p\u00ebrmend\u00ebn, dhe QPS i tyre ishte shum\u00eb m\u00eb i ul\u00ebt se i imi. Un\u00eb testova me 40k QPS, nd\u00ebrsa ata vet\u00ebm me 1k. K\u00ebsaj here, nisa nj\u00eb eksperiment tjet\u00ebr, me nj\u00eb QPS m\u00eb t\u00eb ul\u00ebt, thjesht p\u00ebr t'i b\u00ebr\u00eb qejfin atyre.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nPasi shkruaj p\u00ebr k\u00ebt\u00eb n\u00eb blog \u2014 ndoshta keni kuptuar se numrat e tyre ishin t\u00eb sakt\u00eb. E kam verifikuar klientin tim virtual p\u00ebrs\u00ebri dhe p\u00ebrs\u00ebri, gjithmon\u00eb me t\u00eb nj\u00ebjtin rezultat: numri i ul\u00ebt i k\u00ebrkesave jo vet\u00ebm q\u00eb rrit vones\u00ebn, por rrit gjithashtu numrin e k\u00ebrkesave me vones\u00eb m\u00eb shum\u00eb se 10 ms. Me fjal\u00eb t\u00eb tjera, n\u00eb 40k QPS, rreth 50 k\u00ebrkesa n\u00eb sekond\u00eb kalonin 50 ms, nd\u00ebrsa n\u00eb 1k QPS \u00e7do sekond\u00eb kishte 100 k\u00ebrkesa m\u00eb shum\u00eb se 50 ms. Paradoxi!<\/p>\n<p><img decoding=\"async\" alt=\"Ndonj\u00ebher\u00eb m\u00eb shum\u00eb \u00ebsht\u00eb m\u00eb pak. Kur reduktimi i ngarkes\u00ebs \u00e7on n\u00eb rritjen e vones\u00ebs\" src=\"\/wp-content\/uploads\/2019\/05\/d181859376e2befad9ed631e8f8ff168.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h1>T\u00eb ngushtohemi n\u00eb k\u00ebrkim<\/h1>\n<p>\nKur p\u00ebrballesh me nj\u00eb problem vonese n\u00eb nj\u00eb sistem t\u00eb shp\u00ebrndar\u00eb me shum\u00eb komponent\u00eb, hapi i par\u00eb \u00ebsht\u00eb t\u00eb krijosh nj\u00eb list\u00eb t\u00eb shkurt\u00ebr t\u00eb t\u00eb dyshuarve. Le t\u00eb thellohemi pak m\u00eb shum\u00eb n\u00eb arkitektur\u00ebn e Elvin-it:<\/p>\n<p><img decoding=\"async\" alt=\"Ndonj\u00ebher\u00eb m\u00eb shum\u00eb \u00ebsht\u00eb m\u00eb pak. Kur reduktimi i ngarkes\u00ebs \u00e7on n\u00eb rritjen e vones\u00ebs\" src=\"\/wp-content\/uploads\/2019\/05\/9b10198772b0e53890eb94d5e5c9afd0.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNj\u00eb pik\u00eb e mir\u00eb fillestare \u00ebsht\u00eb lista e kalimeve t\u00eb realizuara t\u00eb hyrjeve dhe daljeve (thirrjet rrjet\/ k\u00ebrkimi n\u00eb disk, etj.). Le t\u00eb p\u00ebrpiqemi t\u00eb zbulojm\u00eb se ku \u00ebsht\u00eb vonesa. P\u00ebrve\u00e7 hyrjeve dhe daljeve t\u00eb dukshme me klientin, Elvin b\u00ebn nj\u00eb hap t\u00eb m\u00ebtejsh\u00ebm: ai i drejtohet depozit\u00ebs s\u00eb t\u00eb dh\u00ebnave. Megjithat\u00eb, kjo depozit\u00eb punon n\u00eb t\u00eb nj\u00ebjtin klaster me Elvin-in, prandaj aty vonesa duhet t\u00eb jet\u00eb m\u00eb e ul\u00ebt se me klientin. Pra, lista e t\u00eb dyshuarve:<\/p>\n<ol>\n<li>Thirrja rrjet nga klienti tek Elvin.\n<\/li>\n<li>Thirrje rrjeti nga Elvini n\u00eb magazin\u00ebn e t\u00eb dh\u00ebnave.\n<\/li>\n<li>K\u00ebrkimi n\u00eb diskun e magazin\u00ebs s\u00eb t\u00eb dh\u00ebnave.\n<\/li>\n<li>Thirrje rrjeti nga magazina e t\u00eb dh\u00ebnave te Elvini.\n<\/li>\n<li>Thirrje rrjeti nga Elvini te klienti.<\/li>\n<\/ol>\n<p>\nLe t\u00eb provosh t\u00eb p\u00ebrjashtosh disa pik\u00eb.<\/p>\n<h3>Magazina e t\u00eb dh\u00ebnave nuk ka lidhje.<\/h3>\n<p>\nE para q\u00eb kam b\u00ebr\u00eb \u00ebsht\u00eb t\u00eb konvertoj Elvinin n\u00eb nj\u00eb server ping-ping, i cili nuk p\u00ebrpunon k\u00ebrkesat. Pasi merr nj\u00eb k\u00ebrkes\u00eb, kthen nj\u00eb p\u00ebrgjigje bosh. N\u00ebse koha e vones\u00ebs zvog\u00eblohet, at\u00ebher\u00eb problemi \u00ebsht\u00eb n\u00eb implementimin e Elvinit ose n\u00eb magazin\u00ebn e t\u00eb dh\u00ebnave - asgj\u00eb e pabesueshme. N\u00eb eksperimentin e par\u00eb, marrim k\u00ebt\u00eb grafik:<\/p>\n<p><img decoding=\"async\" alt=\"Ndonj\u00ebher\u00eb m\u00eb shum\u00eb \u00ebsht\u00eb m\u00eb pak. Kur reduktimi i ngarkes\u00ebs \u00e7on n\u00eb rritjen e vones\u00ebs\" src=\"\/wp-content\/uploads\/2019\/05\/bd8fed2b2cc0d07946d1c4a868ae36b3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSi\u00e7 e shohim, duke p\u00ebrdorur serverin ping-ping, nuk ka p\u00ebrmir\u00ebsime t\u00eb dukshme. Kjo do t\u00eb thot\u00eb se magazina e t\u00eb dh\u00ebnave nuk rrit vones\u00ebn, dhe lista e t\u00eb dyshuarve zvog\u00eblohet n\u00eb gjysm\u00eb:<\/p>\n<ol>\n<li>Thirrja rrjet nga klienti tek Elvin.\n<\/li>\n<li>Thirrje rrjeti nga Elvini te klienti.<\/li>\n<\/ol>\n<p>\nSuper! Lista po zvog\u00eblohet shpejt. Mendova se pothuajse e zbulova shkakun.<\/p>\n<h3>gRPC<\/h3>\n<p>\nTani \u00ebsht\u00eb koha p\u00ebr t\u00eb ju prezantuar me nj\u00eb lojtar t\u00eb ri: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/grpc\/grpc\">gRPC<\/a><\/noindex>. Kjo \u00ebsht\u00eb nj\u00eb bibliotek\u00eb me kod t\u00eb hapur nga Google p\u00ebr komunikimin brenda procesit. <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Remote_procedure_call\">RPC<\/a><\/noindex>. Nd\u00ebrsa <code>gRPC<\/code> \u00ebsht\u00eb mir\u00eb e optimizuar dhe p\u00ebrdoret gjer\u00ebsisht, \u00ebsht\u00eb hera e par\u00eb q\u00eb e p\u00ebrdor n\u00eb nj\u00eb sistem t\u00eb till\u00eb n\u00eb k\u00ebt\u00eb shkall\u00eb, dhe prisja q\u00eb implementimi im do t\u00eb jet\u00eb jo optimal - p\u00ebr ta th\u00ebn\u00eb but\u00eb.<\/p>\n<p>Prania <code>gRPC<\/code> n\u00eb grumbull, krijoi nj\u00eb pyetje t\u00eb re: ndoshta \u00ebsht\u00eb implementimi im apo vet\u00eb <code>gRPC<\/code> po shkakton nj\u00eb problem vonese? Shtojm\u00eb n\u00eb list\u00ebn e t\u00eb dyshuarve t\u00eb rinj:<\/p>\n<ol>\n<li>Klienti th\u00ebrret biblioteken <code>gRPC<\/code>\n<\/li>\n<li>Biblioteka <code>gRPC<\/code> n\u00eb klient b\u00ebn nj\u00eb thirrje rrjeti t\u00eb biblioteks <code>gRPC<\/code> n\u00eb server\n<\/li>\n<li>Biblioteka <code>gRPC<\/code> i drejtohet Elvinit (n\u00eb rastin e serverit ping-pong nuk ka operacione)<\/li>\n<\/ol>\n<p>\nP\u00ebr t\u00eb kuptuar se si duket kodi, implementimi im i klientit\/Elvinit nuk ndryshon shum\u00eb nga shembujt e klient-server\u00ebve <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/grpc\/grpc\/tree\/v1.19.0\/examples\/cpp\/helloworld\">shembuj async<\/a><\/noindex>.<\/p>\n<blockquote><p><i>V\u00ebrejtje: lista e m\u00ebsip\u00ebrme \u00ebsht\u00eb pak e thjesht\u00ebzuar, pasi <code>gRPC<\/code> lejon p\u00ebrdorimin e modelit t\u00eb vet (me shabllon?) t\u00eb rrjedh\u00ebs, ku nd\u00ebrthuren grumbulli i ekzekutimit <code>gRPC<\/code> dhe implementimi i p\u00ebrdoruesit. P\u00ebr thjesht\u00ebsi, le t\u00eb q\u00ebndrojm\u00eb n\u00eb k\u00ebt\u00eb model.<\/i><\/p><\/blockquote>\n<p><\/p>\n<h3>Profilizimi do t\u00eb zgjidh\u00eb gjith\u00e7ka<\/h3>\n<p>\nDuke hequr magazinat e t\u00eb dh\u00ebnave, mendoja se isha gati: \"Tani \u00ebsht\u00eb e leht\u00eb! Do t\u00eb aplikojm\u00eb profilin dhe do t\u00eb shohim ku ndodh vonesa\". Un\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/mahdytech.com\/2019\/01\/13\/curious-case-999-latency-hike\/\">jam nj\u00eb adhurues i madh i profilizimit t\u00eb sakt\u00eb<\/a><\/noindex>, sepse CPU jan\u00eb shum\u00eb t\u00eb shpejt\u00eb dhe shpesh nuk jan\u00eb pika t\u00eb ngushta. Shumica e vonesave ndodhin kur procesori duhet t\u00eb ndaloj\u00eb p\u00ebrpunimin p\u00ebr t\u00eb b\u00ebr\u00eb di\u00e7ka tjet\u00ebr. Profilizimi i sakt\u00eb i CPU-s\u00eb \u00ebsht\u00eb b\u00ebr\u00eb pik\u00ebrisht p\u00ebr k\u00ebt\u00eb: regjistron sakt\u00ebsisht t\u00eb gjitha <noindex><a rel=\"nofollow\" href=\"https:\/\/www.tutorialspoint.com\/what-is-context-switching-in-operating-system\">nd\u00ebrrimet kontekstuale<\/a><\/noindex> dhe tregon se ku ndodhin vonesat.<\/p>\n<p>Mora kat\u00ebr profile: n\u00ebn QPS t\u00eb lart\u00eb (von\u00ebsi e vog\u00ebl) dhe me nj\u00eb server ping-pong n\u00eb QPS t\u00eb ul\u00ebt (von\u00ebsi e madhe), si n\u00eb an\u00ebn e klientit ashtu edhe n\u00eb an\u00ebn e serverit. Dhe p\u00ebr t\u00eb qen\u00eb i sigurt, gjithashtu mora nj\u00eb most\u00ebr t\u00eb profilit t\u00eb procesorit. Kur krahasoj profile, zakonisht k\u00ebrkoj nj\u00eb grumbull t\u00eb \u00e7uditsh\u00ebm thirrjesh. P\u00ebr shembull, n\u00eb an\u00ebn e keqe me von\u00ebsi t\u00eb lart\u00eb ka shum\u00eb m\u00eb tep\u00ebr nd\u00ebrrime kontekstuale (10 her\u00eb e m\u00eb shum\u00eb). Por n\u00eb rastin tim, numri i nd\u00ebrrimeve kontekstuale ishte pothuajse i nj\u00ebjt\u00eb. P\u00ebr t\u00eb tmerrin tim, nuk kishte asgj\u00eb thelb\u00ebsore.<\/p>\n<h1>Debugim shtes\u00eb<\/h1>\n<p>\nIsha n\u00eb d\u00ebshp\u00ebrim. Nuk dija cilat mjete t\u00eb tjera mund t\u00eb p\u00ebrdorja, dhe plani im i ardhsh\u00ebm p\u00ebrb\u00ebnte thelb\u00ebsisht p\u00ebrs\u00ebritjen e eksperimenteve me variacione t\u00eb ndryshme, dhe jo diagnostikimin e qart\u00eb t\u00eb problemit.<\/p>\n<h3>\u00c7far\u00eb, n\u00ebse<\/h3>\n<p>\nQ\u00eb n\u00eb fillim, m\u00eb shqet\u00ebsonte vonesa specifike prej 50 ms. \u00cbsht\u00eb nj\u00eb koh\u00eb shum\u00eb e gjat\u00eb. Vendosa t\u00eb prer\u00eb pjes\u00eb nga kodi derisa t\u00eb zbuloja sakt\u00ebsisht cili pjes\u00eb shkaktonte k\u00ebt\u00eb problem. M\u00eb pas, ndodhi nj\u00eb eksperiment q\u00eb funksionoi.<\/p>\n<p>Si zakonisht, me mendje pas ngjarjeve duket se gjith\u00e7ka ishte e dukshme. Vendosa klientin n\u00eb nj\u00eb makin\u00eb me Elvinin dhe d\u00ebrgova nj\u00eb k\u00ebrkes\u00eb n\u00eb <code>localhost<\/code>. Dhe vonesa u zhduk!<\/p>\n<p><img decoding=\"async\" alt=\"Ndonj\u00ebher\u00eb m\u00eb shum\u00eb \u00ebsht\u00eb m\u00eb pak. Kur reduktimi i ngarkes\u00ebs \u00e7on n\u00eb rritjen e vones\u00ebs\" src=\"\/wp-content\/uploads\/2019\/05\/2d8466625a264abe2110a65592ee0da8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDi\u00e7ka nuk ishte n\u00eb rregull me rrjetin.<\/p>\n<h3>Duke m\u00ebsuar aft\u00ebsit\u00eb e inxhinierit t\u00eb rrjetit<\/h3>\n<p>\nDuhet t\u00eb pranoj: njohurit\u00eb e mia p\u00ebr teknologjit\u00eb e rrjetit jan\u00eb t\u00eb frikshme, ve\u00e7an\u00ebrisht duke qen\u00eb se punoj me to \u00e7do dit\u00eb. Por rrjeti ishte t\u00eb dyshuar kryesor, dhe duhej t\u00eb m\u00ebsoja si ta diagnostikoj.<\/p>\n<p>Fatmir\u00ebsisht, interneti i p\u00eblqen atyre q\u00eb duan t\u00eb m\u00ebsojn\u00eb. Kombinimi i ping dhe tracert duket se ishte nj\u00eb fillim mjaft i mir\u00eb p\u00ebr diagnostikimin e problemeve t\u00eb transportit n\u00eb rrjet.<\/p>\n<p>S\u00eb pari, e pata <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/en-us\/sysinternals\/downloads\/psping\">PsPing<\/a><\/noindex> n\u00eb portin TCP t\u00eb Elvin\u00ebs. Kam p\u00ebrdorur parametrat e paracaktuar \u2014 asgj\u00eb e ve\u00e7ant\u00eb. Nga m\u00eb shum\u00eb se nj\u00eb mij\u00eb ping-\u00eb, asnj\u00eb nuk kaloi 10 ms, p\u00ebrve\u00e7 t\u00eb parit p\u00ebr p\u00ebrgatitje. Kjo \u00ebsht\u00eb n\u00eb kund\u00ebrshtim me rritjen e vones\u00ebs prej 50 ms n\u00eb percentilin 99: aty p\u00ebr \u00e7do 100 k\u00ebrkesa ne duhet t\u00eb shihnim rreth nj\u00eb k\u00ebrkes\u00eb me vones\u00eb 50 ms.<\/p>\n<p>Pastaj provova <noindex><a rel=\"nofollow\" href=\"https:\/\/support.microsoft.com\/en-ca\/help\/314868\/how-to-use-tracert-to-troubleshoot-tcp-ip-problems-in-windows\">tracert<\/a><\/noindex>: ndoshta problemi ndodhet n\u00eb nj\u00ebrin nga nodet n\u00eb rrug\u00ebn midis Elvin\u00ebs dhe klientit. Por dhe tracer-i u kthye pa duar.<\/p>\n<p>Pra, shkaku i vones\u00ebs nuk ishte kodi im, as realizimi i gRPC dhe as rrjeti. Ishte duke filluar t\u00eb m\u00eb shqet\u00ebsonte se kurr\u00eb nuk do ta kuptoja k\u00ebt\u00eb.<\/p>\n<h3>Tani, n\u00eb cil\u00ebn OS jemi<\/h3>\n<p>\n<code>gRPC<\/code> p\u00ebrdoret gjer\u00ebsisht n\u00eb Linux, por p\u00ebr Windows \u00ebsht\u00eb ekzotik. Vendosa t\u00eb b\u00ebj nj\u00eb eksperiment, q\u00eb funksionoi: krijova nj\u00eb makin\u00eb virtuale Linux, kompilova Elvin\u00ebn p\u00ebr Linux dhe e shp\u00ebrndava at\u00eb.<\/p>\n<p><img decoding=\"async\" alt=\"Ndonj\u00ebher\u00eb m\u00eb shum\u00eb \u00ebsht\u00eb m\u00eb pak. Kur reduktimi i ngarkes\u00ebs \u00e7on n\u00eb rritjen e vones\u00ebs\" src=\"\/wp-content\/uploads\/2019\/05\/ee74c16de7e1ac6c286e401660e94ca1.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDhe ja \u00e7far\u00eb ndodhi: n\u00eb serverin ping-pong t\u00eb Linux-it nuk kishte vonesa t\u00eb tilla si n\u00eb noden p\u00ebrkat\u00ebse t\u00eb Windows-it, megjith\u00ebse burimi i t\u00eb dh\u00ebnave nuk ndryshonte. Doli se problemi ishte n\u00eb realizimin e gRPC p\u00ebr Windows.<\/p>\n<h3>Algoritmi i Neugl\u00ebs<\/h3>\n<p>\nGjat\u00eb gjith\u00eb k\u00ebsaj kohe kam menduar se m\u00eb mungonte flagu <code>gRPC<\/code>. Tani e kuptova se n\u00eb t\u00eb v\u00ebrtet\u00eb \u00ebsht\u00eb n\u00eb <code>gRPC<\/code> m\u00eb mungon flamuri Windows. Gjeta nj\u00eb bibliotek\u00eb t\u00eb brendshme RPC, n\u00eb t\u00eb cil\u00ebn isha i sigurt se funksiononte mir\u00eb p\u00ebr t\u00eb gjitha flamujt e instaluar. <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/en-us\/windows\/desktop\/winsock\/windows-sockets-start-page-2\">Winsock<\/a><\/noindex>. Pastaj shtova t\u00eb gjith\u00eb k\u00ebta flamuj n\u00eb gRPC dhe e deploy-ova Elvin-in n\u00eb Windows, n\u00eb serverin e rregullt ping-pong n\u00ebn Windows!<\/p>\n<p><img decoding=\"async\" alt=\"Ndonj\u00ebher\u00eb m\u00eb shum\u00eb \u00ebsht\u00eb m\u00eb pak. Kur reduktimi i ngarkes\u00ebs \u00e7on n\u00eb rritjen e vones\u00ebs\" src=\"\/wp-content\/uploads\/2019\/05\/ce3a4066c78f9f6a63fd68578224d6e5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Gati<\/i> : fillova t\u00eb hiqja flamujt e shtuar nj\u00eb e nga nj\u00eb, derisa regresioni t\u00eb kthehej, k\u00ebshtu q\u00eb arrita t\u00eb p\u00ebrcaktoja sakt\u00ebsisht shkakun e tij. Ishte <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/en-us\/windows\/desktop\/api\/winsock\/nf-winsock-setsockopt\">TCP_NODELAY<\/a><\/noindex>, nd\u00ebrruesi i algoritmit Nagle.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Nagle%27s_algorithm\">Algoritmi i Neugl\u00ebs<\/a><\/noindex> p\u00ebrpiqet t\u00eb zvog\u00ebloj\u00eb numrin e paketimeve t\u00eb d\u00ebrguara n\u00eb rrjet, duke vonuar d\u00ebrgimin e mesazheve deri sa madh\u00ebsia e paket\u00ebs t\u00eb kaloj\u00eb nj\u00eb sasi t\u00eb caktuar bajt\u00ebsh. Megjith\u00ebse mund t\u00eb jet\u00eb e k\u00ebndshme p\u00ebr p\u00ebrdoruesin e zakonsh\u00ebm, \u00ebsht\u00eb shkat\u00ebrruese p\u00ebr serverat n\u00eb koh\u00eb reale, pasi OS do t\u00eb vonoj\u00eb disa mesazhe, duke shkaktuar vonesa n\u00eb QPS t\u00eb ul\u00ebt. U <code>gRPC<\/code> vendos ky flamur n\u00eb implementimin Linux p\u00ebr socket-at TCP, por jo p\u00ebr Windows. E <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/grpc\/grpc\/commit\/1dce1009e67ea4b5934a61b1bcf8a217bd12cc76\">kam rregulluar<\/a><\/noindex>.<\/p>\n<h1>P\u00ebrfundimi<\/h1>\n<p>\nVones\u00ebn e madhe n\u00eb QPS t\u00eb ul\u00ebt e shkaktoi optimizimi i OS. Me t\u00eb kthyer pas, profilizimi nuk e zbuloi vones\u00ebn, sepse u krye n\u00eb modin e b\u00ebrtham\u00ebs, e jo n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.codinghorror.com\/understanding-user-and-kernel-mode\/\">modin e p\u00ebrdoruesit.<\/a><\/noindex>. Nuk e di, n\u00ebse \u00ebsht\u00eb e mundur t\u00eb v\u00ebzhgosh algoritmin e Neigle p\u00ebrmes kapjes ETW, por do t\u00eb ishte interesante.<\/p>\n<p>Sa i p\u00ebrket eksperimentit localhost, ai ndoshta nuk preku kodin real t\u00eb rrjetit, dhe algoritmi i Neigle nuk u aktivizua, k\u00ebshtu q\u00eb problematika e vones\u00ebs u zhduk kur klienti u lidh me Elvinin p\u00ebrmes localhost.<\/p>\n<p>Her\u00ebn tjet\u00ebr, kur t\u00eb shihni nj\u00eb rritje t\u00eb vones\u00ebs nd\u00ebrsa ulni numrin e k\u00ebrkesave p\u00ebr sekond\u00eb, algoritmi i Neigle duhet t\u00eb jet\u00eb n\u00eb list\u00ebn tuaj t\u00eb dyshimt\u00ebve!<br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/451904\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u0430\u043a \u0438 \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u043f\u043e\u0441\u0442\u043e\u0432, \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u0441\u043b\u0443\u0436\u0431\u043e\u0439, \u043d\u0430\u0437\u043e\u0432\u0451\u043c \u044d\u0442\u0443 \u0441\u043b\u0443\u0436\u0431\u0443 \u042d\u043b\u0432\u0438\u043d. \u041d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u044f \u043d\u0435 \u0441\u0430\u043c \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443, \u043c\u043d\u0435 \u0441\u043e\u043e\u0431\u0449\u0438\u043b\u0438 \u0440\u0435\u0431\u044f\u0442\u0430 \u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u0438. \u041e\u0434\u043d\u0430\u0436\u0434\u044b \u044f \u043f\u0440\u043e\u0441\u043d\u0443\u043b\u0441\u044f \u043e\u0442 \u043d\u0435\u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0438\u0441\u044c\u043c\u0430 \u0438\u0437-\u0437\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0437\u0430\u0434\u0435\u0440\u0436\u0435\u043a \u0443 \u042d\u043b\u0432\u0438\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u044b \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0432\u0440\u0435\u043c\u044f. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043a\u043b\u0438\u0435\u043d\u0442 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439 99-\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0438\u043b\u044f \u0432 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":25389,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-33707","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.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u0430\u043a \u0438 \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u043f\u043e\u0441\u0442\u043e\u0432, \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u0441\u043b\u0443\u0436\u0431\u043e\u0439, \u043d\u0430\u0437\u043e\u0432\u0451\u043c \u044d\u0442\u0443 \u0441\u043b\u0443\u0436\u0431\u0443 \u042d\u043b\u0432\u0438\u043d. \u041d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u044f \u043d\u0435 \u0441\u0430\u043c \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443, \u043c\u043d\u0435 \u0441\u043e\u043e\u0431\u0449\u0438\u043b\u0438 \u0440\u0435\u0431\u044f\u0442\u0430 \u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u0438. \u041e\u0434\u043d\u0430\u0436\u0434\u044b \u044f \u043f\u0440\u043e\u0441\u043d\u0443\u043b\u0441\u044f \u043e\u0442 \u043d\u0435\u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0438\u0441\u044c\u043c\u0430 \u0438\u0437-\u0437\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0437\u0430\u0434\u0435\u0440\u0436\u0435\u043a \u0443 \u042d\u043b\u0432\u0438\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u044b \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0432\u0440\u0435\u043c\u044f. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043a\u043b\u0438\u0435\u043d\u0442 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439 99-\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0438\u043b\u044f \u0432\" \/>\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\/inogda-bolshe-eto-menshe-kogda-umenshenie-nagruzki-privodit-k-uvelicheniyu-zaderzhki\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\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\u0418\u043d\u043e\u0433\u0434\u0430 \u0431\u043e\u043b\u044c\u0448\u0435 \u2014 \u044d\u0442\u043e \u043c\u0435\u043d\u044c\u0448\u0435. \u041a\u043e\u0433\u0434\u0430 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044e \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u0430\u043a \u0438 \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u043f\u043e\u0441\u0442\u043e\u0432, \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u0441\u043b\u0443\u0436\u0431\u043e\u0439, \u043d\u0430\u0437\u043e\u0432\u0451\u043c \u044d\u0442\u0443 \u0441\u043b\u0443\u0436\u0431\u0443 \u042d\u043b\u0432\u0438\u043d. \u041d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u044f \u043d\u0435 \u0441\u0430\u043c \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443, \u043c\u043d\u0435 \u0441\u043e\u043e\u0431\u0449\u0438\u043b\u0438 \u0440\u0435\u0431\u044f\u0442\u0430 \u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u0438. \u041e\u0434\u043d\u0430\u0436\u0434\u044b \u044f \u043f\u0440\u043e\u0441\u043d\u0443\u043b\u0441\u044f \u043e\u0442 \u043d\u0435\u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0438\u0441\u044c\u043c\u0430 \u0438\u0437-\u0437\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0437\u0430\u0434\u0435\u0440\u0436\u0435\u043a \u0443 \u042d\u043b\u0432\u0438\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u044b \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0432\u0440\u0435\u043c\u044f. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043a\u043b\u0438\u0435\u043d\u0442 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439 99-\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0438\u043b\u044f \u0432\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/inogda-bolshe-eto-menshe-kogda-umenshenie-nagruzki-privodit-k-uvelicheniyu-zaderzhki\" \/>\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=\"2019-10-31T18:54:17+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:54:17+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\udd47Ndonj\u00ebher\u00eb m\u00eb shum\u00eb \u00ebsht\u00eb m\u00eb pak. Kur ulja e ngarkes\u00ebs \u00e7on n\u00eb rritjen e vones\u00ebs | ProHoster","description":"Si n\u00eb shumic\u00ebn e postimeve, duket nj\u00eb problem me sh\u00ebrbimin e distribur, le t'i japim emrin Elvin. K\u00ebt\u00eb her\u00eb nuk e zbulova vet\u00eb problemin, m\u00eb informuan djemt\u00eb nga ana e klientit. Nj\u00eb m\u00ebngjes u zgjova nga nj\u00eb email i pak\u00ebnaqur p\u00ebr shkak t\u00eb vonesave t\u00eb m\u00ebdha me Elvinin, t\u00eb cilin planifikonim ta aktivizonim s\u00eb shpejti. N\u00eb ve\u00e7anti, klienti u p\u00ebrball me vones\u00ebn n\u00eb percentilin 99.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/inogda-bolshe-eto-menshe-kogda-umenshenie-nagruzki-privodit-k-uvelicheniyu-zaderzhki","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\u0418\u043d\u043e\u0433\u0434\u0430 \u0431\u043e\u043b\u044c\u0448\u0435 \u2014 \u044d\u0442\u043e \u043c\u0435\u043d\u044c\u0448\u0435. \u041a\u043e\u0433\u0434\u0430 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044e \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 | ProHoster","og:description":"\u041a\u0430\u043a \u0438 \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u043f\u043e\u0441\u0442\u043e\u0432, \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u0441\u043b\u0443\u0436\u0431\u043e\u0439, \u043d\u0430\u0437\u043e\u0432\u0451\u043c \u044d\u0442\u0443 \u0441\u043b\u0443\u0436\u0431\u0443 \u042d\u043b\u0432\u0438\u043d. \u041d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u044f \u043d\u0435 \u0441\u0430\u043c \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443, \u043c\u043d\u0435 \u0441\u043e\u043e\u0431\u0449\u0438\u043b\u0438 \u0440\u0435\u0431\u044f\u0442\u0430 \u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u0438. \u041e\u0434\u043d\u0430\u0436\u0434\u044b \u044f \u043f\u0440\u043e\u0441\u043d\u0443\u043b\u0441\u044f \u043e\u0442 \u043d\u0435\u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0438\u0441\u044c\u043c\u0430 \u0438\u0437-\u0437\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0437\u0430\u0434\u0435\u0440\u0436\u0435\u043a \u0443 \u042d\u043b\u0432\u0438\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u044b \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0432\u0440\u0435\u043c\u044f. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043a\u043b\u0438\u0435\u043d\u0442 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439 99-\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0438\u043b\u044f \u0432","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/inogda-bolshe-eto-menshe-kogda-umenshenie-nagruzki-privodit-k-uvelicheniyu-zaderzhki","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":"2019-10-31T18:54:17+00:00","article:modified_time":"2019-10-31T18:54:17+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"33707","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":"2026-01-21 16:23:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:35:31","updated":"2026-01-21 16:23:19","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\/33707","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=33707"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/33707\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/25389"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=33707"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=33707"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=33707"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}