Това е успокояващ текст в продажбената фуния, а не техническа гаранция. Когато хостът отпечата „неограничено“ на картата на плана, той не обещава безкраен трансфер в рамките на физиката и бюджетите; той обещава да не измерва един специфичен ред в сметката ви, докато контролира всичко останало, което всъщност определя дали сайтът ви ще остане бърз и достъпен. Практическата истина е проста и малко дразнеща: вашият план може да не измерва месечния трансфер, но абсолютно ще ви измерва по други начини в момента, в който използването ви изглежда необичайно, пиково или скъпо за обслужване.
Наблюдавал съм това да се случва достатъчно пъти, за да разпозная модела от първия поддръжка на нишката. Сайтът започва силно, класациите се изкачват, кампанията удря, и тогава планът „неограничено“ развива личност. Заявките се забавят. Статичните активи се движат бавно. Работниците се натоварват. Грешки се появяват в джобове, защото хостът започва да защитава споделената среда, а не вашия успех. Това не е злоба; това е икономическа реалност. Хостовете продават „неограничено“, за да привлекат малки сайтове, чието реално използване е малко и предсказуемо. Отклоняващите се — видео, изтегляния, публични API, зле кеширани приложения — стават „злоупотреба“ в момента, в който графиките се раздвижат. Условията за ползване и разпределителите на ресурси влизат в действие. Ако сте купили „неограничено“, очаквайки възможност за мащабиране, ще се почувствате изненадани. Ако го третирате като неограничено на хартия, но много ограничено на практика, ще вземате по-умни архитектурни решения и ще избегнете имейла за спиране, който винаги пристига в най-неудобния момент.
Пропускателна способност, трансфер, пропускателен капацитет и скорост на порта не са едно и също нещо
Не ме интересува колко пъти индустрията размива тези термини—ако ще бъдем честни за това, което реално можете да постигнете, трябва да разделим речника. Пропускателната способност е размерът на тръбата в даден момент. Пропускателният капацитет е това, което действително постигате през тази тръба след приспадане на режийните разходи, конкуренцията и ограничението. Трансферът на данни е общото количество, преместено за някакъв период, обикновено месец. Скоростта на порта е твърдият таван на моменталния поток, обикновено изразен като 10 Mbps, 100 Mbps, 1 Gbps или повече.
„Немерена“ е обещание за таксуване относно месечния трансфер, а не относно моменталната скорост, която вашите пакети получават в понеделник на обяд. „Неограничена“ е маркетингово украшение, което предполага, че няма таван, но това, което реално имате, е план, който не отчита гигабайти за надвишаване, докато налага ограничения чрез всичко останало: процесорни дялове, I/O, брой процеси, конкурентност на връзките и в крайна сметка порта, през който трябва да преминат вашите пакети. Един порт от 1 Gbps може, теоретично, да премести огромно количество за един месец, но ако хостът оформя вашия порт на 100 Mbps след пет минути устойчиво натоварване—или просто ви дава „временна“ лента, която намалява под натоварване—вашият теоретичен трансфер се изпарява в реално време на чакане и неуспешни заявки. Тръбата, която мислехте, че сте купили, е тръбата, която заемате само когато сте тихи.
Когато преглеждам план, не питам „Неограничена ли е пропускателната способност?“ Питам различен, по-неприятен въпрос: „Каква е най-лошата моментална пропускателна способност, която ми е гарантирана, когато аз и съседите ми сме всички заети?“ Това е числото, което предпазва вашето плащане от спиране, вашите изображения от бавно зареждане и вашите фонови задачи от изграждане на писта за повторни опити, за които ще плащате по-късно.
Как се проектира споделеният хостинг да изглежда неограничен (докато не стане)
Споделеният хостинг е цирков трик, изграден върху средни стойности. Повечето сайтове са малки. Повечето трафик е избухлив по приятелски начин. Повечето страници са кеширани след първото обхождане. Така хостовете могат да прескочат изчислителни, памет, съхранение I/O и мрежови ленти, докато все още предоставят весели табла за управление на хиляди клиенти. Машината зад тази илюзия е гнездо от разпределящи планировчици и квотни системи. CPU дяловете предотвратяват един акаунт да използва пълно ядро за дълго време. IOPS формирането пази шумните съседи от изчерпване на SAN. PHP-FPM и Node ограниченията на процесите гарантират, че само няколко заявки могат да се изпълняват динамично едновременно. Инодовите тавани тихо ограничават броя на файловете, които можете да съхранявате на диск, задушавайки сайтовете с много медии преди трансферът да се появи в графиката.
Основното, което трябва да се забележи, е, че нито една от тези системи не докосва реда "bandwidth". Това остава неметрично, така че твърдението остава технически честно. В момента, в който вашето приложение започне да изглежда заето за повече от момент, правилата за справедливо разпределение налагат "типична употреба," като ограничават частите на вашия стек, които контролират. Ще видите, че динамичните заявки се редят на опашка, докато статичните активи се чувстват добре. След това статичните активи се забавят, защото произходът става бутилката, която CDN не може напълно да маскира. Хостът все още не ви таксува за трансфер. Те просто ви карат да използвате по-малко от него, като намаляват колко бързо можете да го предоставяте.
Не мисля, че споделените хостове са злодеи за това. Моделът работи за огромното мнозинство от уебсайтове и е поддържал мрежата евтина за малките издатели. Но фразата "неограничена пропускателна способност" дава грешен ментален модел. Тя ви кани да архитектурирате все едно имате отделна лента, а вие нямате. Имате разрешение да наливате вода в кофа, без да плащате за литър, но все пак споделяте крана.
Малките букви, които всъщност управляват вашата употреба
Ако искате истината, не четете таблицата с цените; четете Политиката за приемлива употреба. Ще намерите захаросани фрази като "типични уебсайтове" и "справедлива употреба," които се превеждат като "ако започнете да изглеждате като възел за споделяне на файлове, сайт за стрийминг, медиен огледало или център за изтегляне, ние си запазваме правото да ви ограничим, преместим или суспендираме." Ще намерите забрани за аудио и видео стрийминг от произхода, разпределение на файлове в голям мащаб, архиви за резервно копие, съхранявани в уеб пространството, публично достъпни ZIP колекции и "ресурсно интензивни" скриптове, които се изпълняват за повече от няколко секунди всяка. Ще намерите дневни ограничения на CPU секунди, тавани на заявките към базата данни и броене на връзките, което прави вашия любим асинхронен обхождач да изглежда като атака.
Ограниченията на входните процеси са особено хитри. В среди, подобни на cPanel, "входен процес" често означава "броят на едновременните динамични заявки, които могат да започнат." Достигнете този таван и следващият посетител не се реди на опашка; те получават грешки. I/O ограниченията и IOPS цифрите правят същото с диска. Инодовите ограничения ви прекъсват, когато имате "твърде много файлове," което амбициозните медийни библиотеки задействат, преди да докоснат пропускателността. Нито едно от тези неща не нарушава "неограничената пропускателна способност." Те просто гарантират, че използвате много малко от нея, когато сайтът ви започне да расте.
Загубих броя на плановете, които твърдят "неограничено," докато тихо задават CPU на "100% от едно ядро за няколко секунди," I/O на "няколко мегабайта в секунда постоянно," и процеси на "няколко наведнъж." Това е колан, тиранти и въже. Ако ударите и трите, не бягате; вие се влачите.
Как изглежда „неограничено“ в натоварен понеделник
Представете си нормален понеделник след уикенд, в който споменаването ви носи ново внимание. Вашият HTML е сравнително лек, изображенията ви са прилични, разчитате на CDN за статични активи, а вашият оригинал обработва динамичните части. Трафикът се увеличава пет пъти. В началото всичко е наред, защото кешовете са топли и CDN поема повечето заявки за изображения. Тогава вашите динамични крайни точки изостават. Процесният кап на хоста поддържа само малък брой едновременни PHP или Node работници активни. Започва опашка и времето за отговор се удължава достатъчно, за да прекъсне времето за изчакване между услугите. CDN все още помага, но пропуските в кеша на HTML започват да хапят. Вашата база данни става по-разговорлива и планировачът на I/O изважда още един дял, защото сега сте „ресурсоемки“. Вашите клиенти, с перфектно време, кликват върху изображения, които не са били горещи в CDN, извличайки изблици от оригинала, които се сблъскват с бавна динамична работа.
Какво се случва след това зависи от хоста. Някои хостове ви дроселират постепенно, докато производителността не стане толкова лоша, че посетителите се отказват и вашият „среден“ се връща към нормалното. Други задействат автоматизирани правила за злоупотреба и преместват вашия акаунт в пул с по-ниско ниво или карантинен VLAN. Няколко все още хвърлят класическия отговор 509, „Превишен лимит на честотната лента“, въпреки че не броят байтове—509 е просто полезен стоп знак, за да спечелят време, докато преглеждат. Резултатът се чувства идентичен: обещанието за „неограничено“ изчезва точно когато имате нужда от него.
Сайт, който обслужва главно кеширан HTML и статични активи, може да изплува през с раздразнени посетители. Магазин с тежки колички или приложение със силно търсене ще поеме удара. Болката рядко се показва като чист, единствен метрик. Това е мозайка от малки забавяния, които се натрупват в неуспешни транзакции и нарастващо изоставяне.
Преди да навлезем по-дълбоко, искам да направя нещо конкретно и използваемо, за да можете да видите практичния таван, дори когато план твърди, че не съществува.
Ще вляза в твърди числа за няколко минути. Това е премиум секция, фокусирана изцяло върху математиката, която можете да направите на салфетка, за да преведете скоростта на порта в месечен трансфер и след това в прегледи на страници. Ако някога сте се затруднявали да преобразувате „1 Gbps без измерване“ в „Колко посещения всъщност мога да обслужа?“, тук това се изяснява.
Premium content
Влезте, за да продължите
Тихите убийци: Ограничаване на CPU, формиране на IOPS и ограничения на процесите
Ако някога сте усещали сайт да се забавя, докато графиките изглеждат "нормално", сте се сблъсквали с тихите убийци. Ограничаването на CPU е най-видимо, когато знаете къде да гледате. Споделените хостове разпределят част от ядро за изблици и след това ви ограничават при продължително натоварване. Вашето приложение не се срива; то се влачи. Това е достатъчно, за да понижи позициите в търсенето и конвертирането без да се задействат аларми, които биха ангажирали поддръжката.
Формирането на IOPS е по-фино. Базите данни живеят и умират от латентността на съхранението. Приложенията с тежки файлове също. Хостовете използват cgroups и QoS на съхранението, за да не позволяват на големите играчи да изчерпват масива. Не виждате грешка; виждате как двадесет милисекунди чакане на диск се превръщат в осемдесет, което влошава разпределението на времето за заявки. Комбинирайте това с ниско входно ограничение на процесите и сте създали перфектен пресов апарат. Заявките отнемат повече време, така че повече заявки са едновременно, което удря лимита по-рано, което пък оставя новите посетители без отговор.
Ограниченията на процесите, накрая, са гилотината. Много планове ограничават PHP-FPM или подобни до шепа деца. Някои добавят лимит на общите едновременно процеси на потребител. И двете позволяват на хоста да се усмихва и да обещава "неограничена честотна лента", докато се уверява, че не можете, на практика, да изпратите много. Ако някога сте преследвали фантомни пречки в CDN или в кода на вашето приложение, само за да откриете, че хостът позволява осем работници и го нарича ден, сте усетили капана.
Не поставям "неограничена честотна лента" в моя регистър на рисковете като проблем за разрешаване. Намалявам своята зависимост от нея. Моделът, който работи за повечето малки и средни сайтове, е скучен и ефективен. Кеширайте HTML на ръба толкова дълго, колкото позволява съдържанието ви. Избутайте изображенията, CSS и JS към CDN, който наистина валидирате в продукцията с висок процент на попадения, не само лого. Прехвърлете тежки медии към обектно съхранение и насочете вашия CDN там, за да не ги вижда източникът никога. Поддържайте източника фокусиран върху динамичните четения и записи, които наистина изискват изчисление, и ги направете колкото се може по-безсъстояни и бързи.
Когато правите това, планът "неограничена честотна лента" става приемлив, защото не му задавате да носи товар, който не може да носи без драма. Дори ако хостът формира източника ви, CDN абсорбира случайния характер на трафика. Вашата p95 се стабилизира и купувате време да изберете ход, когато растежът е реален, вместо да реагирате по време на срив. Всички дребни шрифтове все още съществуват, но не стъпвате върху тях. Създавате малък, гъвкав източник вместо склад.
Никога не поставям видео стрийминг, изтегляния на файлове, публични огледала на софтуер или разпространение на резервни копия на план, който казва "неограничено". Казвам това като човек, който е опитал да ги промуши и след това е преговарял с езика на условията след факта. Тези натоварвания не са това, за което е изградена споделената хостинг услуга, и хостът ще ви спре в името на защитата на всички останали. Дори ако успеете за кратко, сте само на една споменаване от страници с разгневени имейли и миграция в полунощ.
Тежки ZIP архиви на продуктови активи или учебни материали ще задействат същите аларми. Публични API-та, които насърчават клиентското запитване, също ще го направят. И всичко, което насърчава потребителите да изтеглят същия многомегабайтов файл многократно на нови връзки, ще удари формирането на порта по-бързо, отколкото си мислите. Конецът, който свързва тези случаи, е прост: те са натоварвания с висока изходяща, ниска изчислителна мощност, които атакуват сметката за транзит на хоста, без да изразходват CPU или I/O, които техните планировчици са настроени да измерват. Това несъответствие е точно защо "неограничена честотна лента" съществува като израз. Това е меко обещание, направено да се отмени в момента, когато вашата употреба спре да изглежда като малък блог.
Искам да ви дам преводачески наръчник с правни термини и бенчмаркове, който можете да запазите. Следващият раздел е Премиум Раздел, в който превеждам най-често срещаните клаузи, които хостовете използват, в оперативна реалност. Ако не четете нищо друго, прочетете това, когато сканирате план в 1 ч. сутринта и се чудите дали "неограничено" ще носи следващото ви стартиране.
Premium content
Влезте, за да продължите
Наблюдение на важните неща, за да знаете преди да пристигне имейлът за спиране
Таблото, което ви предоставя вашият хост, няма да ви предупреди за предстоящите неуспехи. То ще отчете средни стойности и общи суми, докато болката се крие в дългата опашка. Аз наблюдавам различни сигнали. Изходящият трафик от източника спрямо изходящия трафик от CDN ми показва дали кешът ми си върши работата. Ако изходящият трафик от източника нараства по-бързо от посещенията, знам, че нещо се заобикаля или се изчиства твърде агресивно. Едновременните връзки са канарчето за капацитета на процесите; ако едновременните връзки се доближат до плосък таван, очаквам незабавни грешки за новите посетители. 95-процентилната честотна лента и времето за заявка са по-важни от средните стойности, защото предсказват частите на деня, когато хостът ще ви ограничи и вашите потребители няма да успеят да завършат своето пътуване.
Времето за кражба на CPU е тест за миризма в споделена среда. Ако видя, че кражбата се увеличава по време на тихите ми часове, знам, че се състезавам със съседите и че моят изблик ще попадне на уморен възел. Бавните заявки винаги си струват времето, което си мислите, че нямате; оправянето на един лош индекс може да бъде разликата между оцеляване след споменаване и изгаряне на ден в извинения. Бюджетите за грешки — броят грешки, които позволявате в рамките на прозорец, преди да считате, че потребителското изживяване е влошено — свързват всичко това заедно. Ако грешките ви се покачват преди трафика, имате невидимо триене и "неограниченото" няма да омекоти нищо.
Следвайте парите и историята спира да бъде мистериозна. Транзитът е скъп, ако не можете да договорите страхотно свързване и ако вашите потребители се намират далеч от вашите POP. Споделеният хостинг амортизира този разход в хиляди акаунти, повечето от които едва използват нещо. "Неограничено" е инструмент за привличане на клиенти. Той намалява триенето и се сравнява добре на таблица, където по-евтиният план "включва" повече. Хостът предполага, че ще бъдете малки, или че ще направите разумното нещо и ще преместите тежкия си трафик към CDN и обектно съхранение в момента, когато пораснете, което прехвърля изходящия трафик към доставчик, който прави нищо друго, освен изходящ трафик.
Облаците обръщат модела. Те измерват изходящия трафик, защото това е техният център на печалба и защото техните мрежи са скъпи за управление в глобален мащаб. Те не обещават "неограничено", защото стимулът е различен; те искат да структурирате обмислено и да плащате за това, което използвате. Споделените хостове искат да донесете вашия малък сайт и да останете доволни, докато не сте малки, в който момент те искат или да оптимизирате, или да надградите. Нищо от това не е цинично; това е начинът, по който се плащат сметките. Но това обяснява защо Условията за ползване са написани с кадифен език и защо техническите ограничения се прилагат с леко докосване, докато не се прилагат.
Точки на решение: кога „неограничен“ е добре, кога е безразсъдно и как да мигрираме
Не изхвърлям „неограничен“ на ръка. За малък маркетинг сайт с предимно статични страници и скромен блог, е напълно приемливо, ако поставите CDN пред него. За магазин с лек трафик и разумно кеширане, може да работи, докато намерите подходящия продукт за пазара. За издание, което изпитва непредсказуеми пикове, е рисковано, освен ако не кеширате агресивно и не пред-рендерирате. За всичко, което емитира големи файлове, това е грешният инструмент от деня на стартиране.
Моето дърво на решения е директно. Ако вашето p95 динамично време за отговор е ниско и остава ниско при лек стрес, можете да ползвате споделен план по-дълго, отколкото си мислите. Ако вашият CDN хит рейт е наистина висок и вашият изходен трафик остава плосък, когато трафикът се удвои, сте достатъчно безопасни. Ако някое от тези условия не се изпълни, планирайте преместването сега. Малък VPS с два vCPU и достатъчно памет за избягване на замествания е скучен и надежден. Той ви дава предсказуема конкурентност, по-добра производителност на съхранение и мрежов път, който можете да разберете. Все още можете да използвате същата CDN и стратегия за обектно съхранение. Когато израстете това, ще го усетите по начини, които можете да инструментирате и планирате около тях, и ще преминете към посветени или управлявани клъстери, защото избирате да го направите, а не защото клауза в ToS ви принуди.
Пътят на миграция не трябва да бъде драматичен. Поддържайте вашия произход бездържавен, където е възможно, така че DNS прехвърлянията да са чисти. Съхранявайте сесиите в споделен бекенд, към който можете да се насочите както от старите, така и от новите източници по време на кратко припокриване. Затоплете кешовете, преди да превключите, така че новият произход да не поеме цялото натоварване. Целта не е да бъдете перфектни; тя е да бъдете предсказуеми. „Неограничен“ ви проваля непредсказуемо. Вашата цел е да спрете да се изненадвате.
Обещах практически, преживени сценарии, защото така краищата на тази тема стават очевидни. Следващата част е Премиум секция с три реални истории, всяка започваща с „неограничен“, всяка удряща различна стена и точните промени, които ги стабилизираха.
Premium content
Влезте, за да продължите
Моето мнение, откровено: това е немерено, не неограничено — третирайте го така
Нямам против „неограничен трафик“, стига да се съгласим, че означава „няма да броим байтове“ и нищо повече. Това е немерено, не безкрайно. Контролите, които формират вашето преживяване, се намират в CPU дялове, I/O лимити, ограничения на процеси, тавани на едновременност и оформяне на временни портове, когато сте заети. Ако архитектствате като възрастен — CDN отпред, активи разтоварени, динамична работа минимизирана и бърза — можете да живеете щастливо на план, който предлага „неограничено“, защото рядко ще имате нужда да го тествате. Ако архитектствате сякаш сте купили специален лейн, ще научите значението на „честна употреба“ първия път, когато някой се заинтересува за вашия сайт.
Ето как работя аз. Третирам източника като малък API, който заслужава уважение. Премествам тежките байтове на места, създадени за изходящ трафик, и плащам за този изходящ трафик, защото това е цената на мащаба. Наблюдавам p95, не средните стойности. Държа едното око на едновременността, а другото на дългата опашка от времена за заявки. Чета Условията за ползване като технически документ и превеждам всяка евфемия в число. Приемам, че споделеният хостинг е среда с прекомерна абонатура с блестящо предимство за малки сайтове и набор от твърди ограничения за всичко амбициозно. Когато амбицията пристигне, се местя, защото избирам да го направя, не защото ме принуждава някаква кадифена клауза.
Ако сте били изгорени от „неограничено“, не се обвинявайте. Формулировката е предназначена да бъде успокоителна и работи. Изградете малкия, устойчив източник. Поставете CDN отпред. Разтоварете тежките неща. Познайте вашите числа и вашите задръстености. Когато дойде денят, в който ще ви трябва VPS или нещо по-голямо, направете хода с топъл кеш и хладна глава. Никога няма да гледате на „неограничен трафик“ по същия начин отново, и това е точката. Не беше обещание. Беше покана да свършите правилната работа.