Збільшення швидкості завантаження: Content Delivery Network (CDN) і розпаралелювання завантаження даних

02.03.2011
Increase of page download speed
Автор:

Що таке CDN?

Мережа доставки (і дистрибуції) контенту (англ. Content Delivery Network або Content Distribution Network, CDN) - географічно розподілена мережева інфраструктура, що дозволяє оптимізувати доставку і дистрибуцію контенту кінцевим користувачем в мережі (джерело).

Кому і нащо потрібно використовувати CDN?

CDN використовують всі великі веб-портали. По-перше це зменшує навантаження на власний сервер - статичні файли будуть віддавати сервери CDN. По-друге це збільшує швидкість завантаження Вашого додатку користувачу -  дані будуть завантажуватися з найближчого CDN-сервера, тобто по найменшому мережевому маршруту.

Цікаві факти:

1) Amazon: кожні 100 ms вповільнення завантаження сторінки зменшують кількість продаж на 1% (Джерело: Greg Linden, Amazon)

2) Google: 500 ms вповільнення видачі даних тягнуть за собою 20% втрат пошукових запитів (Джерело: Marrissa Mayer, Google)

3) Yahoo!:  400 ms додаткового часу завантаження сторінки викликають від 5 до 9% збільшення числа людей,  які натиснули "назад" до завершення завантаження (Джерело: Nicole Sullivan, Yahoo!)

Отже.. швидкість завантаження сторінки - це важливо!:)

CDN & Drupal

Для інтеграції інфраструктури CDN в Drupal сайти наші веб розробники використовують одноіменний модуль CDN.

Для інсталяції і налаштування модуля потрібно:

1) застосувати патч до ядра, якщо Ви використовуєте Drupal 6 (в Pressflow версії і сьомому  Друпалі цей патч вже є в ядрі)

2) підключитися до одної (чи більше) CDN мережі (найбільш популярні і відомі це VoxelCAST, Akamai, Amazon...)

3) заповнити поле CDN MAPPING на сторінці /admin/settings/cdn/details.

Для того щоб всі файли завантажувалися з одного CDN сервера просто вкажіть шлях до нього, наприклад "cdn.example.com".

4) включити використання CDN (шлях - /admin/settings/cdn, радіобатон статус)

Приклад розширеного налаштування поля CDN MAPPING

http://cdn.example.com|.css .ico .svg .otf .ttf .swf .zip .rar .gz .7z
http://img1.example.com|.jpg .jpeg .png .gif
http://img2.example.com|.jpg .jpeg .png .gif
http://img3.example.com|.jpg .jpeg .png .gif 
http://img4.example.com|.jpg .jpeg .png .gif
http://media.example.com|.flv .avi .mp3

В нашому випадку ситуація була наступна:

http://cdn.example.com, 

http://img1.example.com,

http://img2.example.com,

http://img3.example.com,

http://img4.example.com – 5 субдоменів (аліасів) для яких прописані CNAME записи на одній і той же аккаунт Origin Pull -CDN сервіса.

http://media.example.com – окремий CDN провайдер для великих файлів (наприклад, Amazon S3).

Чому 4 хостнейма окремо для картинок? Розпаралелювання навантаження.

Як стверджує http://www.browserscope.org/ сучасні браузери по замовчуванню не дозволяють робити більше 6 з'єднань з одним хостнеймом. Тобто, якщо у Вас на сайті завантажується ХХХ об'єкта (наприклад, картинок), то одночасно браузер буде завантажувати не більше шести.

Якщо ж у нас буде 4 хостнейма, то число одночасних завантажень відповідно збільшується в чотири рази. А це дає не малий приріст в швидкості завантаження сторінки.

Але також потрібно врахувати, що браузери дозволяються не більше 30-35 з'єднань на одно сторінку. Тобто створення 5 чи більше хостнеймів вже не буде збільшувати швидкість завантаження, а навпаки, зменшуватиме її через DNS lookup'пи.

Голосів: 1 Рейтинг: 5

Також по темі

1

Скрипт cron.php використовується в Друпалі для індексації контенту, відправки листів підписникам, збору rss-фідів, видалення старої статистики і т.п. Детальніше про скрипт читайте у нашому блозі...

2

По перше, що таке Apache Solr?

Apache Solr - це розширювана пошукова платформа з відкритим вихідним кодом для проекту Apache Lucene.

3

На серверах з nginx в якості фронтенду і Apache в якості бекенду часто можна побачити таку помилку. Зазвичай думають, що проблема в nginx і починають його пиляти....

4

Facebook Developer Blog опублікував хорошу новину: тепер можна отримати адресу та мобільний телефон користувача.

5

При розробці сайту з нерухомості, клієнт попросив імпортували в таксономію базу даних всіх міст світу. В результаті ми написали свій модуль, заточений під великі обсяги даних.

Subscribe to our blog updates