https://blog.superhosting.bg/are-you-ready-for-black-friday-part2.html

Натиснете ENTER, за да видите резултатите или ESC за изход.

Блог на SuperHosting.BG

Имам сървър – готов ли е той за Черния петък? (част 2)

2016-11-03
Технологии
black friday, хостинг, онлайн магазин, електронна търговия, отстъпки, ресурси, натоварване, посещения

В предходната статия говорихме за това как да подготвим онлайн магазина си и да си осигурим подходящата хостинг услуга за Черния петък, заедно с насоки за оптимизация.

В тази част ще дам някои основни препоръки, в случай че ползвате виртуален сървър, нает сървър или cloud услуга.

VPS и Cloud VPS - виртуален сървър от СуперХостинг.БГТова са услуги, при които имате пълен root достъп и можете да ги анализирате по-подробно. От друга страна, няма толкова удобен параметър като процесорното време (CPU), който да ни помогне за анализа. И поради тази причина, статията ще е малко по-техническа.

На първо място e необходимо да определим колко натоварване използва сървърът ни в момента.

В Linux има един основен измерител, който показва обобщена стойност на процесорното натоварване и той се нарича “Load Average”. Текущата му стойност можете да видите с командата “top”.

Средна стойност на натоварването (load average)Колкото по-ниска е стойността, толкова по-добре (гледайте втората или третата стойност). За оптимално може да се използва правилото, че “Load Average” не трябва да надвишава броя процесорни ядра на сървъра. Това доста грубо правило може да ви даде ориентир за това колко е натоварен вашият сървър. За максимална стойност може да се приеме, че “Load Average” не трябва да надхвърля по стойност броя на ядрата умножен по 2, като тогава рискът сайтовете да не работят добре е голям.

Ако допуснем, че натоварването на сървъра се повишава линейно с покачване на посетителите, то тогава лесно можем да предположим, че ако посещенията ни се увеличат двойно, натоварването също ще се увеличи двойно. И ако в този случай стойността за “Load Average” става много висока, или може да се пристъпи към покачване на броя процесорни ядра, или към други оптимизации. Не забравяйте заедно с процесорните ядра, да увеличите пропорционално и оперативната памет (RAM).

Ето един пример – притежаваме виртуален сървър с 4 процесорни ядра. На ден сайта ни реализира 5000 разглеждания (Page Views). Средното натоварване (Load Average) е 0,5. Ако приемем, че на Black Friday ще реализирате 30000 разглеждания, то можем да изчислим:

0,5 * (30000 / 5000) = 3

Получихме 3. Ядрата на сървъра са 4, може да приемем, че той би понесъл натоварването. Ако обаче очакваме повечето посетители да са концентрирани в кратък период от време – например от 10:00 до 15:00 часа, е добре да се „застраховаме“ поне със 100%. Така получаваме:

3 * (1 + 100%) = 6

Така полученото натоварване надвишава броя на ядрата, с които разполагаме, и е добре да ги увеличим (в случая с 50% – от 4 на 6 ядра). В този случай е добре да увеличим пропорционално и паметта. Ако сървърът ви е бил с 4GB памет, я направете поне на 6GB.

Тук е важно да обърнем внимание, че в много случаи, увеличаването на потребителите води до НЕлинейно увеличаване на натоварването, т.е. възможно е натоварването да се увеличи повече от очакваното, като това е много специфично за конкретното уеб приложение, което се ползва и за конкретните му настройки.

Посочените препоръки за изчисляване на необходимия ресурс са базови и не обхващат всички възможни случаи. Затова е най-добре да се консултирате със специалист, който да направи задълбочен анализ.

Ето и основните стъпки, които да предприемете за последващи оптимизации и проверки:

  1. Проверете откъде се генерира основното натоварване – от скриптовете или от базата от данни. По този начин ще можете да се концентрирате върху този аспект, който е по-критичен. Съветите ми за оптимизация на PHP и бавните заявки от предната статия важат на 100%.
  2. Уверете се, че натоварването на сървъра не е причинено от дискови операции. Можете да използвате командата “iostat” и в резултата да обърнете внимание на стойността за “%iowait”. Ако тя е над 10% е добре да помислите за оптимизация. Понякога добавянето на повече памет (RAM) на сървъра прави чудеса с iowait. Ако обаче той е причинен от много бавни заявки, трябва да поработите върху тях.
  3. Ако вашата система го позволява, инсталирайте софтуер, който да кешира целите страници и да работи „пред“ вашия уеб сървър. По този начин страниците ще се зареждат директно от кеша и няма да се правят обръщения към скриптовете и базата данни. Популярни софтуери за кеширане са Varnish или Nginx (работещ като reverse proxy). Обръщам внимание, че този процес може да бъде много времеемък и да има нужда от програмист, който да извърши промени по кода на системата ви.
  4. Използвайте кеширане на обекти в самата система – например Memcache или Redis. Най-често ще ви трябва разработчик, за да ги интегрира.
  5. Направете максимално статична ландинг страница, която да поеме първоначалния интерес на посетителите по време на Black Friday. Може да настроите cron job, който да я генерира от началната страница на сайта ви.
  6. Проверете настройките на уеб сървъра, базата от данни и PHP – много често покрай по-сложните оптимизации се пропуска да се увеличат различни настройки на уеб сървъра и базата от данни. По този начин увеличаването на сървърните ресурси не дава ефект. Ако очаквате повече посетители, започнете с MaxClients на Apache и max_connections и max_user_connections на MySQL.

Ако все пак искате да проверите как се държи сървърът ви с повече посетители, може да използвате Apache Bench. Това е програма, с която можете да симулирате повече едновременни посетители на сайта и да следите как се държи сървърът ви. Повече информация за Apache Bench можете да намерите на официалния сайт: http://httpd.apache.org/docs/2.4/programs/ab.html

За да ви улесним още повече, сме подготвили услуга за анализи и тестване на натоварването. Тя включва:

  • Проверка и препоръки за бавни SQL заявки.
  • Симулиране на трафик към home page, страница с продукти и др.
  • Симулиране на трафик към на landing page за Black Friday.
  • Проверка за IO usage при завишен трафик.
  • Проверка дали е подходящо активиране на външен CDN за статичните ресурси.
  • Симулиране на трафик от множество паралелни потребители към ключови страници.
  • Активиране на opcode cache, ако е необходимо.
  • Проверка дали системата, която се ползва, поддържа кеширане и дали то е активирано.

Цената на услугата за сайт е 192 лв. с ДДС и резултатът от нея е списък с препоръки, които да ви помогнат да оптимизирате сайта и сървъра си. Повече информация за услугата можете да получите на е-mail: sales@superhosting.bg ✉.

Ако имате нужда от допълнителна помощ за изпълняване на препоръките, нашите висококвалифицирани системни администратори са на разположение да ви съдействат. Обръщам внимание обаче, че оптимизациите доста често е необходимо да се правят от опитен разработчик.

Black Friday наближава. Не отлагайте оптимизациите за последния момент, за да се възползвате от големите продажби максимално ефективно.

CEO

Любо е един от главните заподозряни за успеха на вашите сайтове, защото благодарение на него, те имат своето надеждно и сигурно място в интернет. СуперСилата на Любо е, че води екипа напред и винаги знае как да направи всичко по по-добър начин.

500px270px
SuperHosting.BG

Препоръчани статии

Оставете коментар

Все още няма коментари

Уведоми ме при
avatar

wpDiscuz