Готовність сайту до високих навантажень визначає комплекс заходів, що спрямовані на оптимізацію роботи сайту, та в кінцевому підсумку повинні дозволити працювати сайту з великими навантаженнями. Іншими словами, коли мова йде про highload, це означає що мова йде про високі «стресових» навантаженнях на сайт, що в нашому звичному розумінні мається на увазі здатність сайту обслуговувати значну кількість користувачів, чого важко досягти без спеціальних підприємств дій по оптимізації.

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

Коли потрібно замислюватися про highload?
Перед тим як замислюватися на цю тему, добре було б провести аналіз роботи вашого проекту. Це дозволить визначити наявність проблемних місць, а в разі необхідності дозволить вжити необхідних заходів по оптимізації. Для діагностування та виявлення проблем з сайтом існує безліч інструментів, в основному це системи моніторингу, найпопулярніші з них це Munin, Zabbix і Nagios. Щоб розуміти, як впливає відвідуваність на продуктивність так само можна користуватися інструментами веб-аналітики google analytics» і «яндекс метрика». Використовуючи ці інструменти в комплексі, можна накопати багато корисних даних для роздумів над масштабуванням.

Сайт перевантажується тоді, коли ми спостерігаємо явища пов’язані з погіршенням продуктивності, які можуть проявлятися час від часу або постійно. По ряду причин, ви можете спостерігати такі явища як:

  • Довгий відгук сервера на запит
  • Помилки при підключенні до бази даних
  • Появи помилок під час запиту, як наслідок через брак ресурсів
  • Скидання з’єднання з сервером, при спробі запиту сторінки
  • Переривчаста завантаження статичних даних (картинки, js-скрипти, та інше)

З чого почати оптимізувати?
Перше що потрібно зробити, це виявити проблемне місце. Якщо ви його знайшли, то можна сказати чималу частину проблеми ви вирішили. Насправді точно діагностувати проблему не завжди буває просто, тому традиційно слід починати діагностику з програмного забезпечення сервера. В мережі інтернет зв’язка LAMP (Linux Apache Mysql PHP) у вигляді своєї популярності використовується на багатьох серверах. Популярність програмного забезпечення насправді дозволяє визначити потенційних проблем з використанням.

Веб-сервер
Веб-сервер Apache, відомий багатьом веб-розробникам, і не тільки, насправді має серйозні проблеми, які чітко можуть проявлятися при високих навантаженнях на сервер. Сьогодні, її продуктивності менш ніж достатньо, щоб працювати з highload, і це однозначно говорить про необхідність знаходити додаткові рішення, які здатні компенсувати одне з слабких місць веб-сервера. Одним з таких засобів є Nginx, який може виступати в ролі проксирующего сервера, або зовсім веб-сервера в цілому. Nginx, налаштований належним чином, може з великою швидкістю віддавати статичні файли, і навіть працювати у ролі основного веб-сервера. Крім того, оптимізація запитів до веб-сервера може проводитися і на стороні клієнтської частини. Мета — зменшити кількість запитів браузером на сервер, що позитивно позначається на продуктивності в цілому.

MySQL
Бази даних MySQL використовується практично на кожному сервері, і досить добре підходить для зберігання даних. Проте з великою кількістю запитів до сервера баз даних його нездатність працювати з ними так само призводить до пошуку додаткових рішень, які здатні позбавити сервер баз даних від неабияких перевантажень. Насправді, кожен подібний софт заслуговує окремої рубрики постів. Крім усього складні запити можуть створити затор, від якого відгук сервера баз даних буде збільшуватися, що неодмінно позначиться на продуктивності сайту в цілому. Сучасні технології сьогодні дають можливість всіляко кешувати важкі запити на сервер баз даних, крім того є рекомендації по виконанню архітектури бази даних, а так само методи запиту до них, при яких досягається істотний приріст в продуктивності MySQL.

PHP
PHP інтерпретується в microsoft мова програмування. Якщо ви трохи знайомі з принципом його роботи, то ви зрозумієте, що перед тим як скрипт починає відпрацьовувати, він спочатку інтерпретується в бінарний код, після чого відбувається безпосередньо саме виконання коду. Крім того, великі ділянки коду можуть займати більше часу на виконання, що так-таки, може бути вузьким місцем на сайті. У випадку з інтерпретацією скриптів існують програмні засоби, що встановлюються на сервер. Найбільш популярні з них це акселератори, називають так тому, що вони кешують скомпільований код, за рахунок чого повторне звернення до скриптів дозволяє виконати його в значній мірі швидше.
Коли ви знайшли місця свого проекту, які вимагають оптимізації, саме час взятися за пошук розв’язання завдання втрати продуктивності. Продумувати highload по хорошому варто заздалегідь ще до запуску проекту, якщо ви знаєте, що його чекають високі навантаження. Таким чином, буде менше переробок вже в момент функціонування проекту «в бою». Тексту вийшло забагато, що не добряче не втомлювати цією темою, на цьому зупинюся. Успіхів в оптимізації!

Додав: htmaker, 10.11.2016 р.
(1 голосів, середній: 5,00 з 5)

Завантаження…

Діліться з друзями:

См. також:


Вічний хостинг від Eternalhost
Рубрика: Проектування сайту

Що таке UX/UI простими словами
Рубрика: Проектування сайту

Добірка популярних шаблонизаторов PHP
Рубрика: Проектування сайту

Робимо шаблон сайту (шпаргалка)
Рубрика: Проектування сайту

Вибір тематики сайту
Рубрика: SEO, Проектування сайту

Файл humans.txt
Рубрика: Проектування сайту

Проектування сайту, про те, навіщо це потрібно
Рубрика: Проектування сайту

Проектування макетів в Balsamiq Mockups
Рубрика: Інструменти, Проектування сайту

Концепція «єдиної точки входу»
Рубрика: Apache, Проектування сайту