{"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\/sv\/blog\/administrirovanie\/inogda-bolshe-eto-menshe-kogda-umenshenie-nagruzki-privodit-k-uvelicheniyu-zaderzhki","title":{"rendered":"Ibland \u00e4r mer mindre. N\u00e4r minskad belastning leder till \u00f6kad f\u00f6rdr\u00f6jning","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Som i <noindex><a rel=\"nofollow\" href=\"https:\/\/mahdytech.com\/2019\/01\/13\/curious-case-999-latency-hike\/\">de flesta inl\u00e4ggen<\/a><\/noindex>, uppstod ett problem med den distribuerade tj\u00e4nsten, l\u00e5t oss kalla den Elvin. Den h\u00e4r g\u00e5ngen uppt\u00e4ckte jag inte problemet sj\u00e4lv, jag fick veta det av killarna fr\u00e5n klientsidan.<\/p>\n<p>En g\u00e5ng vaknade jag av ett missn\u00f6jt mejl p\u00e5 grund av stora f\u00f6rseningar med Elvin, som vi planerade att lansera inom kort. Specifikt st\u00f6tte kunden p\u00e5 en f\u00f6rsening p\u00e5 99:e percentilen p\u00e5 omkring 50 ms, mycket \u00f6ver v\u00e5r budget f\u00f6r f\u00f6rsening. Det var f\u00f6rv\u00e5nande, eftersom jag noggrant testade tj\u00e4nsten, speciellt f\u00f6r f\u00f6rseningar, eftersom det \u00e4r en k\u00e4lla till frekventa klagom\u00e5l.<\/p>\n<p>Innan jag skickade Elvin f\u00f6r testning genomf\u00f6rde jag m\u00e5nga experiment med 40 000 f\u00f6rfr\u00e5gningar per sekund (QPS), alla visade en f\u00f6rsening p\u00e5 mindre \u00e4n 10 ms. Jag var beredd att h\u00e4vda att jag inte h\u00f6ll med deras resultat. Men n\u00e4r jag tittade p\u00e5 mejlet igen, lade jag m\u00e4rke till n\u00e5got nytt: jag testade tydligen inte de f\u00f6rh\u00e5llanden de n\u00e4mnde, deras QPS var betydligt l\u00e4gre \u00e4n min. Jag testade vid 40k QPS, medan de bara var vid 1k. Jag k\u00f6rde ytterligare ett experiment, denna g\u00e5ng med l\u00e4gre QPS, bara f\u00f6r att tillfredsst\u00e4lla dem.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nEftersom jag skriver om detta p\u00e5 bloggen - ni har troligen redan f\u00f6rst\u00e5tt: deras siffror visade sig vara korrekta. Jag kontrollerade min virtuella klient g\u00e5ng p\u00e5 g\u00e5ng, alltid med samma resultat: ett l\u00e5gt antal f\u00f6rfr\u00e5gningar \u00f6kade inte bara f\u00f6rseningen, utan \u00f6kade ocks\u00e5 antalet f\u00f6rfr\u00e5gningar med f\u00f6rdr\u00f6jning \u00f6ver 10 ms. Med andra ord, om vid 40k QPS omkring 50 f\u00f6rfr\u00e5gningar per sekund \u00f6verskred 50 ms, s\u00e5 var det vid 1k QPS 100 f\u00f6rfr\u00e5gningar \u00f6ver 50 ms varje sekund. Ett paradox!<\/p>\n<p><img decoding=\"async\" alt=\"Ibland \u00e4r mer mindre. N\u00e4r minskad belastning leder till \u00f6kad f\u00f6rdr\u00f6jning\" src=\"\/wp-content\/uploads\/2019\/05\/d181859376e2befad9ed631e8f8ff168.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h1>Sn\u00e4va in s\u00f6kningen<\/h1>\n<p>\nN\u00e4r man st\u00e5r inf\u00f6r ett problem med f\u00f6rsening i ett distribuerat system med m\u00e5nga komponenter, \u00e4r det f\u00f6rsta steget att g\u00f6ra en kort lista \u00f6ver misst\u00e4nkta. L\u00e5t oss gr\u00e4va lite djupare i Elvins arkitektur:<\/p>\n<p><img decoding=\"async\" alt=\"Ibland \u00e4r mer mindre. N\u00e4r minskad belastning leder till \u00f6kad f\u00f6rdr\u00f6jning\" src=\"\/wp-content\/uploads\/2019\/05\/9b10198772b0e53890eb94d5e5c9afd0.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEn bra utg\u00e5ngspunkt \u00e4r listan \u00f6ver utf\u00f6rda I\/O-operationer (n\u00e4tverksanrop\/disk\u00e5tkomst osv.). L\u00e5t oss f\u00f6rs\u00f6ka ta reda p\u00e5 var f\u00f6rseningen uppst\u00e5r. F\u00f6rutom den uppenbara I\/O med klienten g\u00f6r Elvin ett extra steg: han kontaktar datalagringen. Men detta lagringssystem fungerar i samma kluster som Elvin, s\u00e5 d\u00e4r borde f\u00f6rseningen vara mindre \u00e4n med klienten. S\u00e5, listan \u00f6ver misst\u00e4nkta:<\/p>\n<ol>\n<li>N\u00e4tverksanrop fr\u00e5n klienten till Elvin.\n<\/li>\n<li>N\u00e4tverksanrop fr\u00e5n Elvin till datalagringen.\n<\/li>\n<li>Disk\u00e5tkomst i datalagringen.\n<\/li>\n<li>N\u00e4tanrop fr\u00e5n datalagringen till Elvin.\n<\/li>\n<li>N\u00e4tanrop fr\u00e5n Elvin till klienten.<\/li>\n<\/ol>\n<p>\nL\u00e5t oss f\u00f6rs\u00f6ka stryka vissa punkter.<\/p>\n<h3>Datalagringen \u00e4r inte inblandad<\/h3>\n<p>\nF\u00f6rst konverterade jag Elvin till en ping-ping-server som inte hanterar f\u00f6rfr\u00e5gningar. Vid mottagning av en f\u00f6rfr\u00e5gan returnerar den ett tomt svar. Om f\u00f6rdr\u00f6jningen minskar, \u00e4r felet antingen i Elvin eller datalagringen \u2013 ingenting s\u00e4rskilt ovanligt. I det f\u00f6rsta experimentet f\u00e5r vi en s\u00e5dan graf:<\/p>\n<p><img decoding=\"async\" alt=\"Ibland \u00e4r mer mindre. N\u00e4r minskad belastning leder till \u00f6kad f\u00f6rdr\u00f6jning\" src=\"\/wp-content\/uploads\/2019\/05\/bd8fed2b2cc0d07946d1c4a868ae36b3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSom vi ser visar inga f\u00f6rb\u00e4ttringar sig vid anv\u00e4ndning av ping-ping-servern. Detta inneb\u00e4r att datalagringen inte \u00f6kar f\u00f6rdr\u00f6jningen, och listan \u00f6ver misst\u00e4nkta minskar med h\u00e4lften:<\/p>\n<ol>\n<li>N\u00e4tverksanrop fr\u00e5n klienten till Elvin.\n<\/li>\n<li>N\u00e4tanrop fr\u00e5n Elvin till klienten.<\/li>\n<\/ol>\n<p>\nFantastiskt! Listan minskar snabbt. Jag trodde att jag n\u00e4stan hade listat ut orsaken.<\/p>\n<h3>gRPC<\/h3>\n<p>\nNu \u00e4r det dags att presentera en ny akt\u00f6r: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/grpc\/grpc\">gRPC<\/a><\/noindex>. Detta \u00e4r ett bibliotek med \u00f6ppen k\u00e4llkod fr\u00e5n Google f\u00f6r interprocesskommunikation <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Remote_procedure_call\">RPC<\/a><\/noindex>. \u00c4ven om <code>gRPC<\/code> det \u00e4r v\u00e4loptimerat och anv\u00e4nds i stor utstr\u00e4ckning, anv\u00e4nde jag det f\u00f6r f\u00f6rsta g\u00e5ngen i ett system i denna storlek, och jag f\u00f6rv\u00e4ntade mig att min implementering skulle vara suboptimal \u2013 f\u00f6r att uttrycka det milt.<\/p>\n<p>N\u00e4rvaron av <code>gRPC<\/code> i stacken gav upphov till en ny fr\u00e5ga: kanske det \u00e4r min implementering eller sj\u00e4lva <code>gRPC<\/code> som orsakar f\u00f6rdr\u00f6jningen? L\u00e5t oss l\u00e4gga till en ny misst\u00e4nkt i listan:<\/p>\n<ol>\n<li>Klienten anropar biblioteket <code>gRPC<\/code>\n<\/li>\n<li>Bibliotek <code>gRPC<\/code> utf\u00f6r ett n\u00e4tanrop till biblioteket <code>gRPC<\/code> p\u00e5 servern\n<\/li>\n<li>Bibliotek <code>gRPC<\/code> kontaktar Elvin (inversion finns inte i fallet med ping-pong-server)<\/li>\n<\/ol>\n<p>\nF\u00f6r att du ska f\u00e5 en uppfattning om hur koden ser ut, skiljer sig min klient\/Elvin-implementation inte mycket fr\u00e5n traditionella klient-server-exempel <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/grpc\/grpc\/tree\/v1.19.0\/examples\/cpp\/helloworld\">i async<\/a><\/noindex>.<\/p>\n<blockquote><p><i>Notering: den ovanst\u00e5ende listan \u00e4r n\u00e5got f\u00f6renklad, eftersom <code>gRPC<\/code> den m\u00f6jligg\u00f6r anv\u00e4ndning av en egen (mall?) tr\u00e5dmodell, d\u00e4r exekveringsstacken <code>gRPC<\/code> och anv\u00e4ndarimplementeringen fl\u00e4tas samman. F\u00f6r enkelhetens skull kommer vi att h\u00e5lla oss till denna modell.<\/i><\/p><\/blockquote>\n<p><\/p>\n<h3>Profileringsverktyg kommer att l\u00f6sa allt<\/h3>\n<p>\nGenom att stryka datalagringarna trodde jag att jag n\u00e4stan var klar: \"Nu \u00e4r det enkelt! L\u00e5t oss till\u00e4mpa en profil och se var f\u00f6rdr\u00f6jningen uppst\u00e5r.\" Jag <noindex><a rel=\"nofollow\" href=\"https:\/\/mahdytech.com\/2019\/01\/13\/curious-case-999-latency-hike\/\">\u00e4r en stor entusiast av exakt profilering<\/a><\/noindex>, eftersom CPUerna \u00e4r mycket snabba och oftast inte \u00e4r flaskhalsar. De flesta f\u00f6rdr\u00f6jningar uppst\u00e5r n\u00e4r processorn m\u00e5ste avbryta bearbetningen f\u00f6r att g\u00f6ra n\u00e5got annat. Exakt CPU-profilering \u00e4r just f\u00f6r detta: den registrerar noggrant alla <noindex><a rel=\"nofollow\" href=\"https:\/\/www.tutorialspoint.com\/what-is-context-switching-in-operating-system\">kontextbyten<\/a><\/noindex> och ger insikt om var f\u00f6rdr\u00f6jningarna uppst\u00e5r.<\/p>\n<p>Jag tog fyra profiler: en f\u00f6r h\u00f6g QPS (l\u00e5g latens) och en med ping-pong-server p\u00e5 l\u00e5g QPS (h\u00f6g latens), b\u00e5de p\u00e5 klientsidan och serversidan. Och bara f\u00f6r s\u00e4kerhets skull tog jag ocks\u00e5 ett prov p\u00e5 CPU-profilen. N\u00e4r jag j\u00e4mf\u00f6r profilerna letar jag vanligtvis efter anomalier i stacksp\u00e5ren. Till exempel p\u00e5 den d\u00e5liga sidan med h\u00f6g latens sker det mycket fler kontextbyten (10 g\u00e5nger eller mer). Men i mitt fall var antalet kontextbyten n\u00e4stan detsamma. Till min f\u00f6rskr\u00e4ckelse fanns det inget v\u00e4sentligt att hitta.<\/p>\n<h1>Ytterligare fels\u00f6kning<\/h1>\n<p>\nJag var i djup f\u00f6rtvivlan. Jag visste inte vilka andra verktyg jag kunde anv\u00e4nda, och min n\u00e4sta plan var i praktiken att upprepa experimenten med olika variationer ist\u00e4llet f\u00f6r att tydligt diagnostisera problemet.<\/p>\n<h3>Vad h\u00e4nder om<\/h3>\n<p>\nFr\u00e5n allra f\u00f6rsta b\u00f6rjan oroade jag mig f\u00f6r den specifika latensen p\u00e5 50 ms. Det \u00e4r en mycket h\u00f6g tid. Jag best\u00e4mde mig f\u00f6r att jag skulle sk\u00e4ra bort delar av koden tills jag kunde lista ut exakt vilken del som orsakar detta fel. Sedan f\u00f6ljde ett experiment som lyckades.<\/p>\n<p>Som vanligt verkar det i efterhand som att allt var uppenbart. Jag satte klienten p\u00e5 samma maskin som Elvin \u2013 och skickade en beg\u00e4ran till <code>localhost<\/code>. Och latens\u00f6kningen f\u00f6rsvann!<\/p>\n<p><img decoding=\"async\" alt=\"Ibland \u00e4r mer mindre. N\u00e4r minskad belastning leder till \u00f6kad f\u00f6rdr\u00f6jning\" src=\"\/wp-content\/uploads\/2019\/05\/2d8466625a264abe2110a65592ee0da8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00e5got var fel med n\u00e4tverket.<\/p>\n<h3>Vi l\u00e4r oss n\u00e4tverksingenj\u00f6rens f\u00e4rdigheter<\/h3>\n<p>\nJag m\u00e5ste erk\u00e4nna: mina kunskaper om n\u00e4tverkstekniker \u00e4r fruktansv\u00e4rda, s\u00e4rskilt med tanke p\u00e5 att jag arbetar med dem dagligen. Men n\u00e4tverket var den huvudmisst\u00e4nkte, och jag beh\u00f6vde l\u00e4ra mig hur man fels\u00f6ker det.<\/p>\n<p>Som tur \u00e4r \u00e4lskar internet dem som vill l\u00e4ra sig. Kombinationen av ping och tracert verkade vara en bra b\u00f6rjan f\u00f6r att fels\u00f6ka problem med n\u00e4tverkstrafiken.<\/p>\n<p>F\u00f6rst k\u00f6rde jag <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/en-us\/sysinternals\/downloads\/psping\">PsPing<\/a><\/noindex> p\u00e5 TCP-porten f\u00f6r Elvin. Jag anv\u00e4nde standardinst\u00e4llningarna \u2013 inget speciellt. Av mer \u00e4n tusen pingar \u00f6versteg ingen 10 ms, f\u00f6rutom den f\u00f6rsta f\u00f6r uppv\u00e4rmning. Detta st\u00e5r i kontrast till den observerade latensen p\u00e5 50 ms i 99:e percentilen: d\u00e4r skulle vi p\u00e5 varje 100 f\u00f6rfr\u00e5gningar se ungef\u00e4r en f\u00f6rfr\u00e5gan med en latens p\u00e5 50 ms.<\/p>\n<p>Sedan f\u00f6rs\u00f6kte jag <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>: kanske var problemet p\u00e5 en av noderna l\u00e4ngs v\u00e4gen mellan Elvin och klienten. Men traceroten kom tillbaka med tomma h\u00e4nder.<\/p>\n<p>S\u00e5 orsaken till latensen var varken min kod, implementationen av gRPC eller n\u00e4tverket. Jag b\u00f6rjade redan oro mig f\u00f6r att jag aldrig skulle f\u00f6rst\u00e5 detta.<\/p>\n<h3>Vilken operativsystem anv\u00e4nder vi nu<\/h3>\n<p>\n<code>gRPC<\/code> \u00e4r allm\u00e4nt anv\u00e4nt i Linux, men f\u00f6r Windows \u00e4r det exotiskt. Jag beslutade mig f\u00f6r att g\u00f6ra ett experiment som fungerade: jag skapade en virtuell Linux-maskin, kompilerade Alvin f\u00f6r Linux och distribuerade den.<\/p>\n<p><img decoding=\"async\" alt=\"Ibland \u00e4r mer mindre. N\u00e4r minskad belastning leder till \u00f6kad f\u00f6rdr\u00f6jning\" src=\"\/wp-content\/uploads\/2019\/05\/ee74c16de7e1ac6c286e401660e94ca1.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOch h\u00e4r \u00e4r vad som h\u00e4nde: i Linux ping-pong-servern fanns det inte de f\u00f6rseningar som den motsvarande Windows-noden hade, trots att datak\u00e4llan inte skilde sig. Det visar sig att problemet \u00e4r implementeringen av gRPC f\u00f6r Windows.<\/p>\n<h3>Nagle-algoritmen<\/h3>\n<p>\nUnder hela denna tid trodde jag att jag saknade en flagga <code>gRPC<\/code>. Nu f\u00f6rst\u00e5r jag att det egentligen \u00e4r <code>gRPC<\/code> Windows-flaggan som saknas. Jag hittade ett internt RPC-bibliotek d\u00e4r jag var s\u00e4ker p\u00e5 att det fungerade bra f\u00f6r alla installerade flaggor <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/en-us\/windows\/desktop\/winsock\/windows-sockets-start-page-2\">Winsock<\/a><\/noindex>. Jag la sedan till alla dessa flaggor i gRPC och distribuerade Alvin p\u00e5 Windows, i den korrigerade ping-pong-servern f\u00f6r Windows!<\/p>\n<p><img decoding=\"async\" alt=\"Ibland \u00e4r mer mindre. N\u00e4r minskad belastning leder till \u00f6kad f\u00f6rdr\u00f6jning\" src=\"\/wp-content\/uploads\/2019\/05\/ce3a4066c78f9f6a63fd68578224d6e5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>N\u00e4stan<\/i> klart: jag b\u00f6rjade ta bort de tillagda flaggorna en efter en tills regressionen \u00e5terkom, s\u00e5 jag kunde exakt identifiera orsaken. Det var den \u00f6k\u00e4nda <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/en-us\/windows\/desktop\/api\/winsock\/nf-winsock-setsockopt\">TCP_NODELAY<\/a><\/noindex>-switchen f\u00f6r Nagle-algoritmen.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Nagle%27s_algorithm\">Nagle-algoritmen<\/a><\/noindex> f\u00f6rs\u00f6ker minska antalet paket som skickas \u00f6ver n\u00e4tverket genom att f\u00f6rdr\u00f6ja \u00f6verf\u00f6ringen av meddelanden tills paketstorleken \u00f6verskrider ett visst antal byte. \u00c4ven om det kan vara bra f\u00f6r den genomsnittliga anv\u00e4ndaren, \u00e4r det f\u00f6r\u00f6dande f\u00f6r realtidsservrar eftersom operativsystemet kommer att f\u00f6rdr\u00f6ja vissa meddelanden, vilket orsakar f\u00f6rdr\u00f6jningar vid l\u00e5g QPS. P\u00e5 <code>gRPC<\/code> var denna flagga inst\u00e4lld i Linux-implementeringen f\u00f6r TCP-sockets, men inte f\u00f6r Windows. Jag uppt\u00e4ckte detta <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/grpc\/grpc\/commit\/1dce1009e67ea4b5934a61b1bcf8a217bd12cc76\">\u00e5tg\u00e4rdat<\/a><\/noindex>.<\/p>\n<h1>Slutsats<\/h1>\n<p>\nDen stora f\u00f6rdr\u00f6jningen vid l\u00e5g QPS orsakades av optimeringen av operativsystemet. N\u00e4r jag ser tillbaka, uppt\u00e4ckte profileringen ingen f\u00f6rdr\u00f6jning eftersom den genomf\u00f6rdes i k\u00e4rl\u00e4ge, inte i <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.codinghorror.com\/understanding-user-and-kernel-mode\/\">anv\u00e4ndarl\u00e4ge.<\/a><\/noindex>Jag vet inte om man kan observera Nagle-algoritmen genom ETW-f\u00e5ngster, men det skulle vara intressant.<\/p>\n<p>N\u00e4r det g\u00e4ller localhost-experimentet, r\u00f6rde det troligen inte den faktiska n\u00e4tverkskoden, och Nagle-algoritmen k\u00f6rdes inte, s\u00e5 f\u00f6rdr\u00f6jningsproblemen f\u00f6rsvann n\u00e4r klienten kontaktade Alvin genom localhost.<\/p>\n<p>N\u00e4sta g\u00e5ng du ser en \u00f6kning av f\u00f6rdr\u00f6jningarna vid en minskning av antalet beg\u00e4rningar per sekund, ska Nagle-algoritmen finnas med p\u00e5 din lista \u00f6ver misst\u00e4nkta!<br \/>\n<br \/>K\u00e4lla: <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.4 - 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.\" \/>\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\/sv\/blog\/administrirovanie\/inogda-bolshe-eto-menshe-kogda-umenshenie-nagruzki-privodit-k-uvelicheniyu-zaderzhki\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\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.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sv\/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\udd47Ibland \u00e4r mer mindre. N\u00e4r minskning av belastningen leder till \u00f6kad f\u00f6rdr\u00f6jning | ProHoster","description":"Som i de flesta inl\u00e4gg d\u00f6k det upp ett problem med en distribuerad tj\u00e4nst, l\u00e5t oss kalla denna tj\u00e4nst Alvin.","canonical_url":"https:\/\/prohoster.info\/sv\/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":"sv_SE","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.","og:url":"https:\/\/prohoster.info\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/33707","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=33707"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/33707\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/25389"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=33707"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=33707"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=33707"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}