Інтернет Windows Android

SO Оптимізація серверної інфраструктури. SO Оптимізація серверної інфраструктури Технічні рішення оптимізації для серверів

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

Оптимізація операційної системи (FreeBSD)

  • Перехід на 7.х є корисним для багатоядерних систем, так як можна використовувати новий ULE 3.0 Scheduler і jemalloc. Якщо ви застосовуєте систему legacy 6.x і вона не справляється з навантаженнями, то саме час зробити перехід на 7.х.
  • Перехід на 7.2 дозволить збільшити KVA, оптимізувати по-дефолту sysctl і застосовувати superpages. Уже готується новий FreeBSD 8.0, який допоможе значно збільшити продуктивність.
  • Перехід на amd64 дає можливість збільшити обсяги KVA і Shared Mem більше 2Gb. Необхідно створити умови для розвитку сервера, адже бази даних постійно збільшуються і вимагають великих розмірів.
  • Розвантаження мережевої підсистеми у FreeBSD допоможе оптимізувати сервер. Цей процес можна зробити в два етапи: тюнінг параметрів ifconfig і налаштувань sysctl.conf / loader.conf. На етапі підготовки слід перевірити можливості мережевої карти. Драйвери від Яндекса допоможуть збільшити швидкість завдяки залученню декількох потоків, вони часто застосовуються для багатоядерних процесів. Для третьосортної мережевої карти кращим рішенням стане polling'e. Остання оновлена \u200b\u200bверсія тюнінга FreeBSD 7 допоможе вирішити поставлену задачу.
  • FreeBSD і величезна кількість файлівчудово працюють завдяки кешування імен файлів в директорії. Пошук по хеш-таблиці допоможе швидко знайти необхідний файл. Хоча максимальна кількість пам'яті близько 2Мб, можна її збільшувати поки vfs.ufs.dirhash_mem це дозволяє.
  • Softupdates, gjournal іmount options - це нові терабайтниє гвинти, які мають прекрасну продуктивністю. При відключенні електроживлення їх fsck займе дуже багато часу, тому можна використовувати softupdates або виробляти журнал через gjournal.

Оптимізація фронтендів (nginx)

Цей вид можна віднести в передчасної оптимізації, хоча він допоможе збільшити загальний response time сайту. Серед стандартних оптимізацій варто звернути увагу на reset_timedout_connection; sendfile; tcp_nopush і tcp_nodelay.

  • Accept Filters - це технологія, яка дає можливість передавати інформацію від ядра до процесу в разі приходу нових даних або отримання валидного http запиту. Ці фільтри допоможуть провести розвантаження сервера при величезній кількості з'єднань.
  • кешування в nginx характеризується гнучкістю, і проводиться від fastcgi або від proxy backend'ов. Кожен зможе по-розумному використовувати кешування в своєму проекті.
  • AIO є дуже корисним при деяких специфічних навантаженнях на сервер, адже він зберігає response time, в той час як зменшується число Воркер. Нові версії nginx дають можливість використовувати тандем aio з sendfile.

оптимізація бекенда

  • APC - це фреймворк, який дозволяє зменшити навантаження завдяки кешування скомпільованої коду в ОП. APC locking варто оновити, так як він може гальмувати і замість APC багато хто починає застосовувати eAccelerator. Варто зробити заміну locking на spinlock або pthread mutex. Значення APC hints варто піднімати при величезному колічестве.php файлів або при частому кешування в APC user cache. APC fragmentation є ознакою того, що ви застосовуєте APC не за призначенням. Він не може самостійно займатися видаленням записів по TTL або LRU.
  • PHP 5.3 допоможе збільшити приріст продуктивності, тому варто оновити версію PHP, хоча список deprecated функцій може налякати багатьох.

Оптимізація бази даних

Ідей щодо поліпшення роботи MySQL є дуже багато в інтернеті, адже кожен веб-проект рано чи пізно стикається з обмеженнями обсягу пам'яті, диска або процесора. Тому прості рішення не допоможуть впоратися з проблемою, варто приділити більше часу профайлером (dtrace, systemtap і oprofile), а також задіяти велику кількість додаткового програмного забезпечення. Необхідно не тільки досконало вміти використовувати індекси, виробляти їх сортування і угрупування, але також знати, як це все функціонує всередині MySQL. Також необхідно знати переваги та недоліки різних storage engine, розуміти Query cache і EXPLAIN.

Існує кілька способів оптимізації MySQL, причому навіть без змін кодів, адже половину тюнінгу сервера можна здійснювати в напівавтоматичному режимі за допомогою утиліт tuningprimer, mysqltuner і mysqlsla.

  • Перехід на 5.1 дає багато переваг, серед яких варто виділити оптимізацію оптимізатора, Partitioning, InnoDB plugin і Row based replication. Для прискорення роботи сайту деякі екстремали вже тестують версію 5.4.
  • Перехід на InnoDB дає багато переваг. Він сумісний з ACID, тому будь-яка операція проводиться за допомогою всього однієї транзакції. Він має row-level locking, який дає можливість одночасно читати і записувати багато потоків ізольовано один від одного.
  • Вбудований кеш MySQL - Query Cache є досить складною для розуміння, тому багато користувачів його використовують нераціонально або відключають. Для нього більше не означає краще, тому не варто доводити цю підсистему до максимуму. Query Cache є розпаралеленого, в результаті при використанні більше восьми процесів вона буде тільки гальмувати весь процес, а не сприяти зменшенню часу завантаження сайту. Вміст цієї підсистеми, яке відноситься до певної таблиці, анулюється при змінах в цій таблиці. Це означає, що Query Cache дає позитивний результат тільки при використанні грамотно складених таблиць.
  • Індекси можуть бути шкідливими як для SELECT (при їх відсутності), так і для INSERT / UPDATE (при наявності зайвих). Індекс, яким вже не використовується, все одно займає пам'ять і тим самим уповільнює зміни даних. Щоб впоратися з цією проблемою, варто скористатися простим SQL запитом.

PostgreSQL

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

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

  • індекси PostgreSQL завжди на першому місці, в той час як у MySQL вони займають завжди останні позиції і це можна пояснити тим, що у PostgreSQL індекси володіють величезними можливостями. Програміст повинен прекрасно орієнтувати в таких індексах, і знати коли і який слід використовувати, як GiST, GIN, hash і B-tree, а також partial, multicolumn і on expressions.
  • pgBouncer і його альтернативи необхідно в першу чергу встановлювати на сервер з базою даних. Без наявності пулером з'єднань, кожен запит створює окремий процес, який використовується оперативну пам'ять. Начебто нічого страшного, але при створенні більш 200 сполук навіть дуже потужний сервер насилу справляється з обробкою інформації. pgBouncer допомагає впоратися з цією проблемою.
  • pgFouine є незамінною програмою, так як її можна сміливо назвати аналогом mysqlsla на php. У тандемі з Playr вона може здійснювати оптимізацію запитів в складних умовах на staging серверах.

Розвантаження бази даних

Для оптимізації роботи бази даних і збільшення її продуктивності слід якомога менше її використовувати.

  • SphinxQLможна використовувати в якості MySQL сервера. Для цього тільки потрібно створити sphinx.conf, а також записи для indexer в cron і зробити перемикання на іншу базу. При цих дії навіть немає необхідності змінювати код. Перехід на SphinxQL допоможе підвищити швидкість і якості пошуку, а також забути про MyISAM і FTS.
  • Ні-RDBMS сховище дозволяє не застосовувати реляційну БД. Можна зупинити свій вибір на Hive або Oracle. База даних key-value завдяки своїй швидкості застосовує вибірки з реляційних баз для подальшого кешування. Власники великих проектів на PHP, можуть використовувати відмінну можливість opcode cache для зберігання всіх custom даних. З його допомогою можна надійно зберегти навіть зміни глобального значення, адже вони займають мало місця і практично не займають пам'ять, а також швидкість вибірки значно підвищитися. Якщо для великого проекту блок глобальних змін записати тільки на одну машину, то трафік зростає, і вона починає сильно гальмувати. Для вирішення цієї проблеми необхідно зберігати глобальні змінні в opcode cacher'e або зробити клонування змінних по всіх серверів і в алгоритмі consistency hashing прописати виключення.
  • кодування відносяться до дієвих методів розвантаження бази даних. Варто відзначити, UTF-8 - це прекрасний вибір, але російською мовою вона займає дуже багато місця, тому для одномовного контингенту спочатку слід подумати про раціональне використання кодування.
  • Асинхронність допоможе зменшити час реакції програми або сайту, а також істотно знизити навантаження на сам сервер. Batch запити виконуються набагато швидше, ніж звичні поодинокі. Для величезних проектів можна використовувати повідомлення RabbitMQ, ApacheMQ або ZeroMQ, а для малих можна задіяти лише cron.

Існують різноманітні програми для проведення оптимізації

  • SSHGuard або його альтернатива є стандартною практикою для ssh. Анти-Брутфорс допомагають створити надійний захист сервера від нападок спамерських пошукових роботів.
  • Xtrabackup від Percona - це прекрасний інструмент для бекапа MySQL, який володіє великою кількістю налаштувань. Але ідеальним рішенням все ж варто назвати клони в ZFS, адже вони створюються дуже швидко, а щоб провести відновлення БД, досить змінити шляху до файлів в конфігурації м'яз. Клони дозволяють зробити відновлення системи з нуля.
  • Перенесення пошти на інший хост дозволить врятувати трафік і IOPs, якщо ваш сервер просто засипають спамом.
  • Інтеграція із стороннім програмним забезпеченням допоможе провести оптимізацію mysql сервера. Наприклад, для обміну повідомленнями можна використовувати зв'язку smtp / imap, яка не займе багато пам'яті. Для створення чату досить використовувати основу jabber сервера з javascript клієнтом. Ці системи, які створені на основі адаптерів до готових продуктів, відрізняються прекрасною можливістю масштабування.
  • Моніторинг - це дуже важлива складова частина, адже неможливо здійснювати оптимізацію чого-небудь без детального аналізу. Необхідно стежити за метриками продуктивності, вільними ресурсами і затримками, в цьому допоможе Zabbix, Cacti, Nagios і інші інструменти. Web Performance Test дозволяє обчислити швидкість завантаження сайту або проекту, тому дуже допомагає при моніторингу. При налаштуванні performance сервера, пам'ятайте, що тільки ретельний аналіз допоможе усунути всі виниклі проблеми і провести оптимізацію.

Але не зрозуміли вони половини з написаного - не біда.

", Напрямок" Системи передачі даних ".

Перш ніж вдаватися в технічні тонкощі роботи WAN-оптимізації, давайте розберемося, що ж це таке і для чого призначене.

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

Централізація ресурсів і даних демонструє вищеописані переваги, але є різні «підводні камені», які повинні мати на увазі організації, які планують оптимізувати IT-інфраструктуру. Одна з проблем, з якою вони зіткнуться, це - зниження продуктивності додатків. Популярність розподіленої моделі обчислень була в основному обумовлена \u200b\u200bнеобхідністю тримати IT-ресурси якомога ближче до користувачів розподіленої мережі, щоб забезпечити максимальну продуктивність. Консолідація серверів в центрі змінює схему розподілу ресурсів на прямо протилежну і тому продуктивність багатьох додатків погіршується.

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

Глобально, такі рішення оптимізації WAN можуть скоротити витрати організацій декількома способами:

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

    консолідувати інфраструктуру в центрі обробки даних. Компанії зможуть прибрати з віддалених офісів значну частину IT-інфраструктури (файлові і поштові сервери, сервери поширення ПО, портали SharePoint, стрічкові накопичувачі і т. П.) Без втрат в продуктивності і керованості;

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

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

Існує кілька виробників, що пропонують рішення в області оптимізації передачі трафіку по протяжним WAN-каналах. До найбільш відомих з них на російському ринку відносяться компанії Riverbed (з продуктом SteelHead), Cisco (продукт WAAS), Juniper (продукт WXC) і BlueCoat (продукт ProxySG).

Процес оптимізації пропонованого ними обладнання заснований на приблизно однакових механізмах, до яких відноситься компресія даних, кешування, оптимізація роботи TCP-протоколу і оптимізація логіки функціонування самих бізнес-додатків.

Всі розглянуті механізми оптимізації додатків використовують сегментацію сесії, розбиваючи її між клієнтом і сервером на три сегменти: між пристроєм оптимізації і робочою станцією, між пристроями - поверх мережі WAN, і між пристроєм оптимізації та ЦОД (сервером). У першому і третьому сегментах сесія працює поверх ЛВС, і недоробки протоколу TCP не впливають на затримку додатків. Другий сегмент оптимізується засобами регулювання швидкості роботи TCP. В результаті забезпечуються необхідні мінімуми: по затримці при передачі трафіку через WAN і за часом відгуку додатків. Розглянемо механізми, які в тому чи іншому вигляді лежать в основі рішень кожного з виробників оптимізаторів.

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

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

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

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

Важливою відмінністю від звичайних кешуючих пристроїв є той факт, що оптимізатори розбивають інформацію на частини / блоки і вже їх зберігають на жорсткий диск. Це цікаво з тієї точки зору, що якщо ми змінимо частина інформації в заново переданій файлі (наприклад, вставимо слайд або картинку в документ), то буде передано саме зміна, а не весь файл цілком. Механізми динамічного розбиття переданої інформації на блоки і відстеження змін є пропрієтарними і не підлягають розголошенню. Якщо говорити про особливості роботи, то виробники використовують 2 підходи. Відмінною рисою першого з них є його уніфікованість, тобто при передачі одного файлу в різні філії в центральному оптимізаторі буде збережена лише одна копія файлу для всіх віддалених пристроїв оптимізації. У другому випадку простір жорсткого диска динамічно розбивається пропорційно кількості віддалених офісів (віддалених оптимізаторів), і в разі передачі одного файлу всіх філіях аналогічна копія буде відображена в кожному сегменті жорсткого диска, «відповідає» за свою філію.

Очевидно, що механізм кешування працює в парі з механізмом компресії. Саме завдяки цим двом механізмам, виробники оптимізаторів показують гарні графіки, де рівень оптимізації може досягати 150-200Х. Нам вдавалося отримувати такі ж дані при багаторазових пересиланнях одного і того ж об'ємного файлу даних, оскільки після першої передачі він зберігався в кеш пристроїв і далі передавалися лише кілобайти посилань, що вказують на місце файлу в жорсткому диску. Тут відразу виникає логічне запитання - який обсяг жорсткого диска і чи можна до оптимізаторів підключати зовнішні сховища? Деякі виробники якось згадували про можливість появи такого роду обладнання, (але воно вже буде призначено винятково для установки в ЦОД).

Механізми TCP-оптимізації працюють на транспортному рівні. Це основне «поле битви» виробників оптимізаторів до того, коли вони стали «підійматися» на рівні вище (прикладної). Транспортний протокол TCP розроблений в 1980 р, і сьогодні не зазнав серйозних змін, тоді як технології передачі даних серйозно змінилися. При втраті пакетів стандартний TCP-протокол різко знижує швидкість - майже в два рази, і її збільшення від цього рівня в подальшому відбувається лінійно і невеликими кроками. Тому, навіть порівняно невеликий рівень втрати пакетів (2-3% втрат вважається нормальним), призводить до частих і різких втрат швидкості роботи мережі.

Оптимізований протокол TCP при виникненні втрати знижує швидкість не в 2 рази, а всього на кілька відсотків, а при одиночній втрати пакетів швидкість знижується зовсім незначно. Виходить, що рішення оптимізації функціонування мережевих додатків збільшує в першу чергу швидкість передачі інформації. Максимальне заповнення всієї смуги каналів передачі даних забезпечується поліпшеним порядком роботи протоколу TCP.

Механізми оптимізації рівня додатків пропонують прискорення роботи самих бізнес-додатків через WAN-канали. Саме реалізація деяких протоколів в популярних продуктах, на жаль, далека від досконалості. Зокрема, протокол CIFS (Common Internet File System), активно використовується в мережах Microsoft, створює надлишковий обсяг службових повідомлень (підтвердження доставки, готовність пристроїв і т.п.). У локальній мережі ці надлишки не вносять істотної затримки під час відгуку, але в розподіленої мережі стають значущими. Пристрої оптимізації вміють обробляти велику частину малозначущих повідомлень локально, без передачі через WAN, зменшуючи обсяг трафіку і скорочуючи час відгуку ряду функцій мережевих додатків, таких як мережева друк, доступ до файлових сервісів, і т.п. Власне, на цей день як раз в цій області і відбувається конкурентна боротьба у виробників. До найбільш часто оптимізуються протоколам слід віднести CIFS, NFS, MAPI, Video, HTTP, SSL і Windows printing. Цей «джентльменський набір» присутній в портфелі майже будь-якого виробника, а ось оптимізують їх по-різному.

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

Неважко здогадатися, що всі оптимізатори працюють з TCP-based додатками, а значить інший трафік проходить крізь, без оптимізації. Те ж саме можна сказати і про зашифрований зв'язок (виняток, мабуть, становить SSL - багато оптимізаторів можуть «порвати» сесію, провести оптимізацію трафіку, і назад зашифрувати).

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

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

Крім компаній з розподіленою структурою, дане рішення може бути цікаво і операторам, які можуть надавати компаніям послуги з оптимізації (напр., Оренда). Такі послуги стають популярними в Європі.

Найбільш часто зустрічається рішення по оптимізації - це, звичайно, Cisco WAAS. Хороший маркетинг вендора, непогане рішення і стратегія розвитку роблять свою справу. З появою серії доступних і надійних WAVE позиція Сisco ще сильніше зміцнилася.

Рішення WXC від Juniper відрізняється тим, що весь трафік упаковується в UDP-тунель, тобто оптимізація відбувається над всім трафіком. У такому підході, безумовно, є свої переваги. До них я б відніс досить висока «середнє по лікарні» значення оптимізації над всім трафіком (на основі тестування в одного великого замовника).

Riverbed прийшов в Росію не так давно, але активно розвиває партнерську мережу. Має вагомі переваги перед рішеннями конкурентів (напр., Грамотний механізм кешування, оптимізація додатків), але висока ціна за рішення поки заважає зростанню його популярності.

Резюмуючи все вищесказане, хочеться відзначити, що WAN-оптимізація - рішення цікаве, досить прозоре для бізнесу, але, на жаль, поки що не отримало велику затребуваність в російських компаніях. На основі впроваджень виходило добитися зменшення трафіку в середньому в 2-3,5 рази і значно прискорити відгуки додатків. Наприклад, у одного нашого замовника, на супутникових лініях, було збережено близько 20 годин відгуків при місяці тестування. А нашій компанії впровадження даного рішення дозволило досягти дворазовою економії при оплаті мережевого трафіку, а також збільшити швидкість роботи корпоративних додатків в середньому в 1,7 рази. При цьому термін повернення інвестицій в проект склав всього 3 місяці.

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

Навіщо потрібна оптимізація сервера

5 (100%) 2 vote [s]

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

Навіщо потрібна оптимізація роботи серверів?

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

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

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

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

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

Що собою являє оптимізація сервера?

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

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

Наші фахівці пропонують йти іншим шляхом:

  1. визначити саму проблему (що ж заважає сервера функціонувати швидко?),
  2. провести тонке налаштування apache;
  3. встановити і налаштувати під певну конфігурацію сервера кешуючий веб-сервер nginx;
  4. налаштувати сервера баз даних mysql:
  • розміри буферів,
  • кешування запитів,
  • роботу з таблицями,
  1. встановити і налаштувати кешуючий модуль для php (XCache, EAccelerator, і ін);
  2. оптимізувати необхідні настройки операційної системи.

Даний підхід допоможе прискорити швидкодію сервера.

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

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

5 основних параметрів технічної оптимізації

1. Файл robots.txt

Важливо відзначити, що файл robots.txt повинен міститися в кореневій директорії кожного ресурсу. Це перший файл, до якого звертаються роботи ПС, коли заходять на сайт, і в якому зберігаються інструкції для них.

У цьому файлі вказані параметри індексування сайту: які сторінки слід заносити в пошукову базу, а які потрібно виключити. Крім цього, в ньому можна вказувати директиви як для всіх роботів пошукових систем відразу, так і для роботів кожної ПС окремо. Про складання даного файлу і його налаштування можна докладніше дізнатися на сайті допомогою веб-майстрам Яндекса.

Перевірити файл можна в сервісі Яндекс.Вебмастер, Пункт меню «Аналіз robots.txt» (https://webmaster.yandex.ru/robots.xml).

2. Sitemap - карта сайту

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

HTML-карта сайту потрібна користувачам для швидкого і зручного пошуку інформації, а XML - пошукачам для поліпшення індексації сайту.

За допомогою карти сайту пошукові роботи бачать всю структуру і швидше індексують нові сторінки.

Перевірка карти сайту (Https://webmaster.yandex.ru/sitemaptest.xml)

Приклад коректної карти сайту в формате.html:

3. Редіректи (перенаправлення)

Редирект застосовують для перенаправлення відвідувачів ресурсу з однієї сторінки на іншу. Прикладів, для чого потрібні редіректи, досить багато:

  1. Зміна доменного імені сайту.
  2. Переклеювання дзеркал. У багатьох сайтів не налаштований 301 редирект з домену, який містить www в адресі, на домен без www, або навпаки.

Проставляти редіректи необхідно в файле.htaccess. Так як пошукові системи site.ru і www.site.ru можуть вважати різними сайтами, то в видачу можуть потрапляти дублі. Це створить складнощі з ранжируванням у видачі та т. Д.

Основні статус-коди редиректів:

  • 300 - Multiple Choices (кілька варіантів на вибір);
  • 301 - Moved Permanently (переміщено назавжди);
  • 302 - Temporary Redirect (тимчасовий редирект);
  • 303 - See Other (викликана ресурс можна знайти по ін. Адресою);
  • 304 - Not Modified (вміст не змінювалося - це можуть бути малюнки, таблиці стилів і т. П.);
  • 305 - Use Proxy (доступ повинен здійснюватися через проксі);
  • 306 - Unused (не використовується).

Корисний сервіс для визначення відгуків сторінок: http://www.bertal.ru/

4. Налаштування видів URL-сторінки

Важливо перевірити сайт на однаковість адреси всіх його сторінок. Наприклад, на всьому сайті сторінки повинні мати закриває слеш: http://site.ru/katalog/ і http://site.ru/products/. Якщо частина сторінок має вигляд http://site.ru/katalog, а частина - http://site.ru/products/ це невірно.

Перевірити адреси внутрішніх сторінок ресурсу на помилки буде зручно після створення карти сайту.

5. Помилки сайту

Під час завантаження будь-якої сторінки сайту надсилається запит серверу, який відповідає кодом статусу HTTP і завантажує (або не завантажує) сторінку.

Основні статус-коди:

  • 200 - зі сторінкою все в порядку;
  • 404 - неіснуюча сторінка;
  • 503 - сервер тимчасово недоступний.

«404 помилка» - один з найбільш важливих технічних параметрів оптимізації, за яким обов'язково слід проводити доопрацювання.

Якщо сторінка існує, а сервер при її запиті інформує про 404 помилку, то сторінка не буде проіндексована пошуковими системами. Інакше в індекс може потрапити велика кількість сторінок з однаковим текстом, що вкрай негативно впливає на ранжування.

Перевірити коди статусів можна за допомогою http://www.bertal.ru/ або Яндекс.Вебмайстер.

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

Оптимізація інфраструктури баз даних і віртуальних середовищ

Підвищіть продуктивність інфраструктури баз даних в поточному стані і отримаєте рекомендації щодо подальшої оптимізації за допомогою хмарних сервісів.

Проект Server Optimization актуальний у випадках:

  • відсутності централізованої системи зберігання і відновлення даних;
  • проблем з продуктивністю SQL-серверів;
  • проблем в роботі додатків;
  • відсутність системи забезпечення відмовостійкості дата-центру;
  • оцінки готовності та доцільності міграції ІТ-інфраструктури в хмари;
  • відсутність загального розуміння стану інфраструктури баз даних і віртуального середовища.
    Керуйте серверної середовищем ефективніше:
    Технічний аудит інфраструктури баз даних SQL
    Виявлення проблем настройки серверів «Тонка» настроювання SQL-сервера - непросте завдання навіть для адміністратора баз даних з достатнім досвідом роботи. Ми проведемо вичерпний аналіз налаштувань системного рівня, таких як настройки пам'яті за замовчуванням, партіціонірованіе, паралельні сесії, кешування, диски, настройки резервного копіювання та ін.

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

    Оптимізація продуктивності баз даних У кожного розробника баз даних існують свої рекомендації по оптимізації продуктивності сервера або кластера. Фахівці нашої компанії виконували різні варіанти настройки бази даних під різні типи навантаження і можуть запропонувати оптимальні настройки продуктивності. Ці рекомендації завжди підкріплені посиланнями на документацію і передовий досвід вендорів по розгортанню ПО.

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

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

    Створення відмовостійкої архітектури Розробка архітектури бази з режимом роботи 24x7 з часом простою не більше 2 годин на рік передбачає збільшення кількості серверів, детальне опрацювання програмної частини і виключення єдиної точки відмови. Ми допоможемо вирішити подібну задачу, а крім того, ви отримаєте політику резервного копіювання та відновлення як виконуваного коду БД, так і всіх даних.

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

    Оптимізація баз даних для роботи з конкретними додатками Ми проводимо оптимізацію і налаштування бази даних MS SQL і Oracle для роботи бізнес-додатків, таких як системи управління документообігом, системи управлінського обліку, портальні рішення та ін. При виконанні робіт ми керуємося рекомендаціями постачальників програмного забезпечення з налаштування ПО, а також власним досвідом оптимізації БД під різні види користувальницької навантаження.

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

    Аналіз і оптимізація віртуального середовища експлуатації баз даних Проблеми продуктивності будь-якого програмного забезпечення в виртуализированной середовищі, як правило, пов'язані з особливостями кожного конкретного гипервизора і обладнання, на якому працюють віртуальні сервери. Наші фахівці допоможуть визначити причини вповільнень в роботі і оптимізувати розміщення ПО баз даних на віртуальних серверах у вашому дата-центрі.

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