Вплив відстані від сервера на швидкість завантаження сторінки

Я виміряв швидкість завантаження файлу статичного зображення, розірваного nginx з мого сервера (за допомогою служби pingdom). Зазвичай сервер повинен обробляти цей запит протягом декількох секунд. Мій сервер знаходиться в Далласі, штат Техас. Коли я використовував сервер pingdom Dallas, потрібно було 200ms для завантаження файлу. Це включає розв'язання DNS та передачу даних. Очевидно, що для більш тривалого перенесення вона повинна тривати довше; але дивно ця величина була 800ms для NYC та 1.5s для Амстердаму.

Очевидним висновком є ​​роль відстані для передачі даних від сервера до клієнтської машини, і нічого не пов'язаного з продуктивністю мого сервера. Однак, коли я перевірив цю різницю для таких великих веб-сайтів, як Google і bing; різниця склала лише 50% (наприклад, 200мс для США та 300 для Європи).

Чи потрібно щось покращити на міжміських запитах на сервері для сервера?

4

6 Відповіді

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

13
додано

+1 до Chopper3, але я хотів би щось пояснити.

Географічна відстань менше пов'язана з передачею, ніж ви думаєте.

Що має значення:

  1. Пірінг вашого постачальника послуг Інтернету
  2. Пірінг своїх постачальників Інтернет-послуг
  3. Маршрут між цими колегами
  4. формування трафіку

Приклад 1: У моєму університеті, ми отримуємо наш Інтернет через державний ISP. Цей провайдер має власну мережу та колег у Чикаго. Тому для того, щоб з'єднатися з будинком по дорозі, з'єднання має пройти весь шлях до Чикаго. Таким чином, набагато швидше спілкуватися з чимось у Чикаго, ніж підключатися до чогось по дорозі.

Я здогадуюсь ви потребуєте подумати про це люблять дороги а не як ворона летить. Тільки тому, що щось ближче не означає, що це дійсно ближче через Інтернет. Це також не означає, що це швидше. Це вкрай перебільшено в Інтернеті. Наприклад, якщо один "вільний шлях" між далласом і Нью-Йорком насичений, це може бути швидше, щоб перейти з Європи на Даллас.

7
додано

Потрібно спробувати служби CDN (Мережа доставки контенту). Це допомагає зменшити затримку для користувачів, які знаходяться далеко від сервера. Для отримання додаткової інформації відвідайте веб-сайт maxcdn. Ви знайдете необхідні деталі щодо вашої проблеми.

5
додано

Ключове слово - затримка. Це залежить від того, чи потрібно багато маленьких взаємодій, щоб дістатися до вашого вмісту, або якщо є просто великий переказ.

Перша буде залежати від латентності, остання не стільки.

Приклад:

If there are 1000 small transactions with a latency of 0,01 s each you will need 10s for the transactions to finish. The constant factor is the payload divided through the available bandwidth. The "local" latency might be factor 10 smaller (0,001s latency) -> 1s for the whole bunch - that feels just about fast enough for a user.

Тепер, якщо ви можете доставити одну і ту ж корисну навантаження з 2 транзакціями, 0,02 не буде мати значення.

Отже, відповідь: Зменшіть кількість tcp-трансакцій, необхідних для доставки корисного навантаження.

2
додано

Наскільки великий ваш тестовий файл?

Не забувайте, що ефект повільного запуску TCP означає, що затримка відіграє велику роль у уповільненні початкових з'єднань.

Прочитайте "Міф про широкосмуговий доступ" в http://www.bookofspeed.com/chapter3.html

У ці дні, залежно від того, яку версію запущено, можна збільшити значення initcwnd на серверах Linux і Windows, щоб зменшити деякі ефекти затримки.

2
додано

Майте на увазі, що одне навантаження не є репрезентативним для всього сайту. Неминуча трансатлантична затримка вплине на кожен елемент, завантажений як додатковий 90ms (YMMV) або близько того, а не як відсоток від кожного запиту. Це означає, що більші предмети не будуть "поганішими", ніж менші предмети.

За винятком першого запиту, деякі з ваших запитів відбуватимуться паралельно (наприклад, може бути завантажено 3 або 4 зображення на вашому сайті і CSS одночасно), тому ці затримки будуть менше відчуватися користувачем.

Сказавши це, CDNs є хорошим способом зменшити ці затримки, і дуже простий у використанні для статичних активів, таких як зображення і CSS. Вони також не дорогі.

1
додано