Первая страница
Наша команда
Контакты
О нас

    Головна сторінка



Розглянуто питання підвищення ефективності обробки запитів до веб-сервера, підвищення його продуктивності апаратними та програмними методами та засобами. Проаналізовано можливі варіанти підвищення продуктивності опрацювання запитів

Скачати 69.01 Kb.

Розглянуто питання підвищення ефективності обробки запитів до веб-сервера, підвищення його продуктивності апаратними та програмними методами та засобами. Проаналізовано можливі варіанти підвищення продуктивності опрацювання запитів




Скачати 69.01 Kb.
Дата конвертації03.06.2017
Розмір69.01 Kb.

УДК 004.451

М.І. Шах

Національний університет ‘’Львівська політехніка’’,

кафедра електронно-обчислювальних машин

ЗАСОБИ ПІДВИШЕННЯ ПРОДУКТИВНОСТІ ВЕБ-СЕРВЕРІВ

© Шах М.І., 2015



Розглянуто питання підвищення ефективності обробки запитів до веб-сервера, підвищення його продуктивності апаратними та програмними методами та засобами. Проаналізовано можливі варіанти підвищення продуктивності опрацювання запитів серверами.

Ключові слова: балансери, диски SSD, Gigabit Ethernet, RAID мисиви, оптимізація коду.
Gigabit Ethernet (GbE) - термін, що описує набір технологій для передачі пакетів Ethernet зі швидкістю 1 Гбіт/с. Він визначений в документі IEEE 802.3-2005.


Web server Productivity tools

© Shakh М.І., 2015



In the article the issue of increasing the efficiency of processing flow requests to the web server. Increasing its productivity with hardware and software methods and utilities. The possible options for increasing productivity query processing servers.

Key words: Balancing distribution,SSD discs, Gigabit Ethernet, RAID arrays, code optimization.
Вступ

Так як наступила нова ера технологій, і миттєво зростає і розвивається галузь мобільних пристроїв, виникає питання в швидкій взаємодії даних між пристроями. Для того щоб швидко передати повідомлення потрібно його спочатку відправити на сервер де воно буде оброблено, лише після цього сервер перенаправить його іншому клієнту. Також на сучасному етапі розвитку інформаційних технологій веб-сервери є чи не найважливішими елементами веб-систем, що функціонують як в мережі Internet, так і в мережах Intranet, а їх швидкодія є визначальним параметром.
Смартфо́ни (з англ. smart - розумний, і англ. phone - телефон) - окрема категорія телефонів, які - на відміну від простих стільникових телефонів - мають більше оперативної пам'яті і власний потужний, як для кишенькових пристроїв процесор, працюють під операційною системою Symbian 6.
Інформаційні технології Інформаці́йні техноло́гії, ІТ (використовується також загальніший / вищий за ієрархією термін інформаційно-комунікаційні технології (Information and Communication Technologies, ICT) - сукупність методів, виробничих процесів і програмно-технічних засобів, інтегрованих з метою збирання, опрацювання, зберігання, розповсюдження, показу і використання інформації в інтересах її користувачів.
Зростання кількості веб-сервісів та користувачів цих сервісів вимагає значного підвищення швидкості реакції веб-серверів на запити користувачів. Як правило, один веб-сервер не спроможний опрацювати великий потік запитів за прийнятний період часу, тому актуальним є питання розподілу запитів до деякого веб-сервісу між декількома веб- серверами.

Постановка проблеми. Оскільки сучасні сайти не просто відображають певну текстову інформацію на сторінці, а містять чимало мультимедійної інформації, яка зберігається у об’ємних базах даних та динамічно змінюється. Тому сучасні сайти потребують чимало ресурсів і повинні розміщуватись на потужних та надійних серверах. Однак велику частину навантажень на сервері генерує спам. Спам та інші електронні зловживання вже давно в центрі уваги досліджень комп'ютерної безпеки. Проте, останні роботи не піддаються пасивним методам вимірювання. Дослідники стали посередниками або активними учасниками спам поведінки; методологій, які лежать в стику правових, етичних і людських взаємин (наприклад, IRB) [1]. Через величезну кількість користувачів і сайтів веб-сервер отримує велике навантаження, яке позначається на його працездатності і надійності. Через велике навантаження веб-сервер може або постійно не справлятися з обслуговуванням потоку поданих йому заявок, або відчувати короткочасні пікові перевантаження.

Розв’язок задачі

З виниклими проблемами можна боротися двома способами: апаратним ти прорамним. У першому випадку простим, але дорогим способом боротьби з перевантаженістю буде підвищення потужності обладнання (сервера). Одним із апаратних способів підвищення продуктивності веб-сервера є так звані балансери (Диспетчери балансування навантажень).

Диспетчер балансування навантажень отримує запити від клієнтів, надіслані до єдиної віртуальної ІР-адреси, та виконує їх розподіл між реальними ІР-адресами веб-серверів, для чого виконує такі дії.

1. Перевірка працездатності веб-серверів.

2. Періодичне визначення часу відповіді на запити.

3. Визначення ступеня використання перепускної здатності кожного веб-сервера.

4. Визначення кількості активних звертань на кожному сервері.

Диспетчер робить вибір, на який з веб-серверів буде передано запит користувача для здійснення авторизації, враховуючи кількість користувачів, які в цей час вже авторизовані, та час відповіді на запити. Кількість робочих процесів при цьому не враховується. Як тільки користувач авторизується на певному сервері, сесія користувача прив’язується до цього сервера. Таке балансування навантажень на веб-сервери може здійснювати або програма, що виконується на комп’ютері-диспетчері, або спеціальний пристрій. Використання комп’ютера зі стандартною операційною системою, такою як Windows або UNIX, дає переваги, оскільки в аварійних ситуаціях його можна замінити іншою машиною зі схожими характеристиками.

Аварійна ситуація - стан потенційно небезпечного об'єкта, що характеризується порушенням меж та (чи) умов безпечної експлуатації, але не перейшов у аварію, і за якого всі несприятливі впливи джерел небезпеки на персонал, населення та довкілля утримуються у прийнятних межах за допомогою відповідних технічних засобів, передбачених проектом.
Операційна система Операці́йна систе́ма, скорочено ОС (англ. operating system, OS) - це базовий комплекс програм, що виконує управління апаратною складовою комп'ютера або віртуальної машини; забезпечує керування обчислювальним процесом і організовує взаємодію з користувачем.
Використання окремого пристрою дає перевагу в швидкості, оскільки в ньому використовується процесор, оптимізований під конкретне завдання[4].



Диспетчерський метод балансування навантаження

Найшвидша і ефективна зміна, яку ви можете зробити, щоб поліпшити продуктивність - це збільшити обсяг оперативної пам'яті на веб-сервері - візьміть якомога більше (наприклад,16 Гб або більше). Збільшення первинної пам'яті дозволить знизити потребу в процесах, та не записувати дані у файл підкачки на диск і дозволить вашому серверу обслуговувати більше користувачів.

Файл підкачки (англ. swap-file, віртуальна пам'ять) - це файл, який є «продовженням» оперативної пам'яті.


  • Більш висока продуктивність досягається шляхом використання потужного процесора, тобто 8- або 16 ядерних процесорів. Сучасний BIOS дозволить вам включити гіперпоточність та перевірити, якщо це має значення для загальної продуктивності процесорів за допомогою CPU інструментів та CPU  бенчмаркінгу.

  • Якщо ви можете собі це дозволити, використовуйте SSD диски замість дисків SATA. Диски SATA збільшують завантаження процесора вашої системи. Якщо ви хочете мати диски SATA, переконайтеся, що ваша материнська плата і самі диски підтримують NCQ (Native Command Queuing)[3].
    Материнська плата Матери́нська пла́та, систе́мна пла́та, ба́зова пла́та (англ. motherboard), відома також як головна плата (mainboard) - плата, на якій містяться основні компоненти комп'ютера, що забезпечують логіку. Плата є основою не лише персонального комп'ютера, а також смартфонів, гральних консолей.


  • Купуйте жорсткі диски з низьким часом пошуку.
    Тверди́й диск або Тверди́й магні́тний диск, або Накопичувач на магнітних дисках (англ. Hard (magnetic) disk drive, англ. HDD), у комп'ютерному сленгу - «вінчестер» (від англ. winchester), - магнітний диск, основа якого виконана з твердого матеріалу.
    Це дозволить підвищити загальну швидкість роботи системи, особливо при доступу до звітів Moodle.

  • Встановіть правильний розмір файлу підкачки. Загальна порада: встановіть його в 4 х фізична пам'ять.

  • Використовуйте RAID систему диска. Хоча є багато різних конфігурацій RAID, можна створити таке правило, яке працює краще:

    • встановити контролер апаратного RAID (якщо можна);

    • операційна система та підкачка на одному наборі дисків налаштованому як RAID-1;

    • Moodle, веб-сервер і сервер бази даних на різних наборах дисків, налаштованих як RAID-5.

  • Використовуйте Gigabit Ethernet для поліпшеної пропускної здатності. Це особливо важливо, коли у вас веб-сервер і сервер бази даних розташовані на різних хостах.

  • Перевірте налаштування мережевої карти. Ви можете отримати поліпшення в продуктивності за рахунок збільшення використання буферів і передачі/прийому дескрипторів та розвантажувальним підрахунком контрольних сум TCP на карту замість ОC[3].

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

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

Теорія масового обслуговування (теорія черг) - розділ теорії ймовірностей, метою досліджень якого є раціональний вибір структури системи обслуговування та процесу обслуговування на основі вивчення потоків вимог на обслуговування, що надходять у систему і виходять з неї, тривалості очікування і довжини черг .
Інакше кажучи, чим менше час обслуговування і проміжки між надходження заявок відрізняються від середніх, тим менше часу очікування користувачем сайту відповіді на його запит. Неоднорідність потоку заявок визначається типом веб-сайту. Наприклад, веб-сайт для перегляду розкладу електричок виконує запити приблизно однаковою трудомісткості. Запити до пошукової системи Google можуть мати трудомісткість, що розрізняється в сотні разів.
Пошуко́ва систе́ма (або скорочено пошукови́к) певна база даних - онлайн-служба (апаратно-програмний комплекс з веб-інтерфейсом), що надає можливість пошуку інформації в Інтернеті. У просторіччі під пошуковою системою розуміють веб-сайт, на котрому розміщено інтерфейс (фронт-енд) системи.
Підбираючи суміш заявок на виконання з числа, що стоять у черзі, можна значно рівномірніше завантажити устаткування комп'ютера (процесор, диски, оперативну пам'ять і т.д.), тим самим, збільшивши продуктивність системи. Теорія дає лише загальний напрямок вироблення стратегії управління обчислювальним процесом. Практичні способи оптимізації завантаження обладнання для конкретної обчислювальної системи, на якій встановлено веб-сервер, можна підібрати лише емпіричним шляхом. Експерименти з працюючим веб-сервером можуть порушити його роботу або вивести всю систему з ладу, що є недоцільним. Тому для вивчення властивостей веб-сервера краще використовувати імітаційне моделювання [2], або перевіряти завантаженість на віртуальних серверах. Тому важливо вибрати не тільки потужний комп’ютер, але й відповідне надійне програмне забезпечення для його роботи.
Імітаці́йне моделюва́ння - це метод, що дозволяє будувати моделі процесів, що описують, як ці процеси проходили б насправді.
Обчи́слювальна систе́ма (англ. computer system) - сукупність ЕОМ та їх програмного забезпечення, що призначені для організації ефективного обчислювального процесу;
Програ́мне забезпе́чення (програ́мні за́соби) (ПЗ; англ. software) - сукупність програм системи обробки інформації і програмних документів, необхідних для експлуатації цих програм.

Також для зменшення часу обробки запитів, які звертаються через сервер до бази даних (Oracle), є доцільним оптимізація виконання запитів та очікування їх результатів на стороні самої бази.

Наприклад:

Замість використання саб-селектів (Приклад 1), краще використовувати конструкції з join (right, left, outer і т.д.)

Select table1.column1, table1.column2

from table1

Where table1.column1 in (select table2.column1

from table2

where table2.column1 = some value);

Приклад 1


Замість такої конструкції доцільніше використати наступну, тому що запити з join – нами (Приклад 2)оптимізовані на рівні самого ядра оракла.
Select table1.column1, table1.column2

from table1

left join table2 on table2.column1 = table1.column1

where table2.column1 = some value;


Висновки

Розкрито проблему зростання навантаження на веб-сервери у зв’язку з стрімким розвитком технологій та збільшенням користувачів. Проаналізовано деякі можливості підвищення продуктивності веб-серверів за допомогою як програмних так і апаратних засобів. Показано декілька способів збільшення продуктивності веб-серверів за допомогою додавання пам’яті до самих серверів та використання RAID масивів, що значно зменшують час опрацювання даних, які надходять до веб-серверів, Також розкрито питання використання балансувальників навантаження на веб-сервери та методи оптимізації коду (запитів), які виконуються безпосеребньо на самих веб-серверах.

Оптиміза́ція (англ. optimization, optimisation) - процес надання будь-чому найвигідніших характеристик, співвідношень (наприклад, оптимізація виробничих процесів і виробництва). Задача оптимізації сформульована, якщо задані: критерій оптимальності (економічний - тощо; технологічні вимоги - вихід продукту, вміст домішок в ньому та ін.)



1. Andrew G. West, Pedram Hayati, Vidyasagar Potdar, and Insup Lee. Spamming for Science: Active Measurement in Web 2.0 Abuse Research [Електронний ресурс] – Режим доступу: http://repository.upenn.edu/cgi/viewcontent.cgi?article=1524&context=cis_papers

2. Манасова Каринэ Сергеевна. Семейство имитационных моделей для иследования характеристик веб-серверов. [Електронний ресурс] – Режим доступу: http://sibac.info/index.php/2009-07-01-10-21-16/2121-2012-04-19-09-06-51

3. Tony Bourke: Server Load Balancing - O'Reilly, ISBN 0-596-00050-28. Heiss H.-U., Schmitz M. Decentralized dynamic load balancing: The particles approach// Information Sciences. – 1995. – № 84. – P. 115–128.9. Subrata R., Zomaya A.Y., Landfeldt B. Artificial life techniques for load balancing incomputational Grids // Journal of Computer and System Sciences. – 2007. –73, № 8. – P. 1176–1190.

4. Subrata R., Zomaya A.Y., Landfeldt B. Artificial life techniques for load balancing incomputational Grids // Journal of Computer and System Sciences. – 2007. –73, № 8. – P. 1176–1190.


Скачати 69.01 Kb.

  • Ключові слова
  • Web server Productivity tools
  • Key words