Трафик - rutash - 2009-06-04 12:19:07

Надявам се, че се нарадвахте на картинките в заглавната страница, защото днес се наложи да ги махна. Бях сигурен, че наличието им ще увеличи трафика на сайта, ама си викам - да го увеличи, да го увеличи .. колко да го увеличи? Еми оказа се, че много. Ама много много.

Лимитът на сайта е 5GB трафик на месец. Не че после ще го прекъснат, но ще искат да преминем на друг план, което означава още пари. Как се развива трафика на долната трибуна? За сравнение: нормално реализираме трафик около 1.7 - 1.9 GB на месец. Което е около 40% от лимита. Днеска си поиграх да видя как върви с трафика. Ами какво да ви кажа - 2.2 GB само за първите 4 дена на Юни!

За този резултат са виновни две неща - първо и най-вече съм виновен аз, че си поиграх да сложа милиони картинки на заглавната страница, които на всичкото отгоре се зареждаха както си поискат. Второто е увеличеният трафик през сайта. Пикът на посещения до момента беше Февруари 2009 - 2118 посещения или средно по 75 на ден. За Юни отчитаме 1051 (за първите 4 дена) или 262 средно на ден!

Разбира се, увеличаването на интереса към сайта ме радва. Още не съм установил на какво точно се дължи. Дали на нас или на някоя статия, която се появява доста напред в резултатите на Google. Все пак си мисля, че привличаме все повече пасивни читатели. Ще продължа да следя развитието с интерес.

Следващата точка от статията е малко технически ориентирана и има за цел да предизвика долните коментари на тези от вас, имащи опит с PHP. И така, става въпрос за зареждането на малките картинки. Да обясня в общи линии положението: когато качите картинка на сайта, тя бива автоматично смалена до размер 800х600 пиксела. Това е една прилична резолюция, позволяваща приличен детайл и умерен размер на сървъра (обикновено между 300KB и 800KB). Понеже PHP работи на сървъра в т. нар. "safe mode", не ми е позволено да определям времето за изпълнение на скриптовете, които от друга страна са ограничени на 30 секунди. Това налага следното - правя каквото правя, но то трябва да приключи за 30 секунди, иначе страницата не се зарежда. Някои от вас са наблюдавали този феномен, когато качват снимки.

А сега и проблема с трафика: "малките" снимки, които виждате в статиите и на страницата "живот в картини", всъщност никак не са малки. Те са си целите картинки, но са смалени посредством width и height в самия img таг. Това води в общи линии до зареждането на цялата картинка (примерно 500KB), но показването й в малък размер. Предимството е, че когато цъкнете отгоре й, за да я разгледате в пълен размер, снимката вече е при вас и се зарежда мигновено.

Недостатъка обаче е ясен: не винаги разглеждаме всички снимки в пълния им размер, което води до купища излишен трафик. Да не говорим за новата страница "живот в картини" и архива от снимки по дати.

От друга страна 30-те секунди ме ограничават да създавам наред с качената картинка и една много малка нейна версия, т. нар. thumbnail. И сега въпроса: какво да направя, така че малките снимки да са наистина малки и зареждането им да приключва бързо (под 30 секунди). Вече обмислих варианта да създавам thumbnail в процес на зареждане (on-the-fly така да се каже), но ми се струва, че resampling-а няма да приключи навреме, особено за повече снимки на една страница.

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

Рейтинг

Още няма рейтинг

Коментари

rutash - на Mon, 8 June 2009
А ето, че нещата се подобриха със скапването на картинките. Действайте наволя!
Shorty - на Thu, 4 June 2009
Ясно. Не знаех, че става постепенно - "аналогово", мислех че на алгоритъма му е все едно - както да се дели числово на две или на пет е все едно.
rutash - на Thu, 4 June 2009
Ти си инженер чоевк, ще ти го обясня така:
1. Смаляване до 800х600 трае X секунди
2. Допълнително смаляване до 50х50 трае още Y секунди (Y > X, защото смачкването е повече)
В крайна сметка целият процес трае X+Y секунди, което е много, защото в някои случаи 30 скунди не са достатъчни дори за X. Резултатът ще бъде неудобство за потребителите - всеки ще трябва да си смалява картинките сам преди да ги качи. Сега картинки до 2 MB и 1024х768, та дори и 1280х1024 се смаляват навреме и няма проблем с качването. Ако добавя допълнителното смаляване, ще се наложи снимките да са наистина малки още преди качването им.

Ако можех да си позволя по-дълго време за обработка, това нямаше да е никакъв проблем.
Shorty - на Thu, 4 June 2009
И щом трафикът е 40 пъти по-голям, по-добре бързичко да разкараш и бутона "живот в картини", преди да почнат да юркат за стотина долара месечно...
Shorty - на Thu, 4 June 2009
Добре де, а защо смаляване до 800х600 не е проблем, а е проблем да се смалят и до 50х50 под второ име, например?
rutash - на Thu, 4 June 2009
На първо време намалих качеството на JPEG компресията от 100% на 75%. Снимките изглеждат много прилично, а файловете са около 8 пъти по-малки. Да се надяваме, че в дългосрочен план това ще допринесе за намаляване на трафика (и изразходваното място на сървъра, макар че то не е проблем за сега).