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

Устройства 17.11.2019
Устройства

Недавно поступила просьба о помощи в настройке выделенного сервера для работы интернет-магазина на 1С-Битрикс. Причина обращения - медленная работа сайта.
Посмотрели на сайт - действительно, некоторые страницы грузятся больше минуты!!!. Первое что пришло в голову глядя на сайт - это неоптимальная работа компонент, разработанных другим разработчиком. Но не на столько же..

Исходные данные: Сервер на Xeon - 2Гб памяти, RAID. ОС - FreeBSD. БУС - Бизнес.

Чтож, попробуем хоть как-то исправить ситуацию...
Сразу оговорюсь, что данная статья не инструкция по работе с модулем, просто реальный случай из жизни применения модуля. Может кому будет полезной.

После аудита выявлены следующие основные проблемы:
1. На сервер необходимо установить PHP-акселлератор
2. На старнице /price/ большие проблемы у компонента «nvisions:menu.sections» - генерируется запрос к базе который обрабатывается почти минуту – это основная причина долгой загрузки страницы, а также большая нагрузка на сервер.
3. Медленно работает БД (687 запросов на запись в сек – это очень мало) проблема может быть в конфигурации сервера. Необходимо перевести таблицы в InnoDB и сконфигурировать InnoDB
4. Файловая система не очень быстрая, это могут быть аппаратные особенности сервера (например RAID), но в принципе с такой скоростью сайт должен работать неплохо
5. Проблема в шаблоне сайта (присутствует не существующие ссылки(а)) необходимо ее убрать – это занимает много ресурсов.
6. Необходимо настроить двухуровневую архитектуру на сервере (статическое содержимое отдавать через nginx), это значительно уменьшит нагрузку на сервер Apache, стабилизирует расход памяти на нагрузках, следовательно ускорит работу и повысит надежность проекта в целом.

Проанализируем информацию модуля производительности 1С-Битрикс:

Из рисунка явно видны проблемы с сервером БД, скорее всего не оптимальность настроек, т.к. сервер выделенный.
Также подозрительно низкое число файловых операций.


Явные проблемы с кодом или компонентами на странице /price/index.php
Подозрительно большое время генерации /bitrix/urlrewrite.php – смотрим дальше:

Ага вот он - источник проблем: в шаблоне присутствует ссылка на несуществующую картинку, это генерирует 404 ошибку, и заставляет Apache обрабатывать эту ошибку и генерировать полноценную страницу.

Эта же проблема влияет на все страницы сайта, связанные с проблемным шаблоном:


А вот и проблемные компоненты на странице:


У компонента меню отключено кэширование.
Итог страницы:

Ну вот краткий анализ. Как удобно модуль производительности подсказывает "где находяться проблемы". Приступим к устранению проблем:

Добавили картинку на которую была ссылка, именно добавили картинку, а не удалили ссылки, т.к. ссылок было много, в том числе и в компонентах сторонних разработчиков. Также на этой страницы отключили проблемную компоненту стороннего разработчика (nsvision:menu.sections), т.к. назначение ее не понятно. (после отключения, внешне ничего не изменилось)
Результат:


Urlrewrite.php теперь невызывается на каждом хите



Как видим скорость работы увеличилась в 2 раза(!).

Едем дальше:
Устанавливаем eaccelerator . Здесь не описываю как устанавливается акселлератор, т.к. эту информацию, при необходимости, всегда можно найти на просторах Интернета.







Результат после установки eAccelerator: Еще двух кратный прирост производительности.

Едем дальше: Оптимизируем Базу данных (переводим на InnoDB и оптимизируем настройки)


Как видно из теста модуля производительности скорость работы БД значительно увеличилась
В целом общая производительность после оптимизации БД осталась не изменой, возможно из-за медленной работы файловой системы.

UPDATE:
Рекомендации Модуля Производительности .
Прислушаясь рекомендациям модуля отключаем параметр "open_basedir", т.к. сервер выделен только под наш проект, подразумеваем, что безопасность в целом не нарушиться.

Результат:


Результ как говориться, НАЛИЦО

Осталось переписать "кривоватые" компонеты и проект будет летать.

Также установили и настроили nginx как прокси-сервер для Apache. Картинки не привожу, т.к. цифры практически не изменились. Но по субективной оценки страницы стали грузится еще в пару раз быстрее.

Шаблон все равно генерируется достаточно долго (время генерации практически как у ядра системы) – видимо, не оптимально написан код предыдущим разработчиком. Разбирать чужой код, нет ни времени, ни бюджета, ни желания. Проще, быстрее и дешевле написать свой код с нуля.

Вообщем: Модуль Производительности - очень полезный и удобный инструмент отладки работы проекта и сервера. За что спасибо его разработчикам.

P.S. Лично имею небольшой опыт по работе с Linux. С FreeBSD тесно познакомился в-первые. Удивило, то что после установки некоторого ПО конфг.файлы вообще пустые (например MySQL). Порадовала легкость установки ПО из "портов".

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

Повысьте производительность инфраструктуры баз данных в текущем состоянии и получите рекомендации по дальнейшей оптимизации с помощью облачных сервисов.

Проект Server Optimization актуален в случаях:

  • отсутствия централизованной системы хранения и восстановления данных;
  • проблем с производительностью SQL-серверов;
  • проблем в работе приложений;
  • отсутствия системы обеспечения отказоустойчивости дата-центра;
  • оценки готовности и целесообразности миграции ИТ-инфраструктуры в облака;
  • отсутствия общего понимания состояния инфраструктуры баз данных и виртуальной среды.
    Управляйте серверной средой эффективнее:
    Технический аудит инфраструктуры баз данных SQL
    Обнаружение проблем настройки серверов «Тонкая» настройка SQL-сервера – непростая задача даже для администратора баз данных с достаточным опытом работы. Мы проведем исчерпывающий анализ настроек системного уровня, таких как настройки памяти по умолчанию, партиционирование, параллельные сессии, кэширование, диски, настройки резервного копирования и др.

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

    Оптимизация производительности баз данных У каждого разработчика баз данных существуют свои рекомендации по оптимизации производительности сервера или кластера. Специалисты нашей компании выполняли различные варианты настройки базы данных под разные типы нагрузки и могут предложить оптимальные настройки производительности. Эти рекомендации всегда подкреплены ссылками на документацию и передовой опыт вендоров по развертыванию ПО.

    Анализ логов ошибок и обнаружение критических проблем Логи ошибок – основной источник информации о работе базы и проблемах в приложениях, использующих эту базу. Нашими специалистами разработан собственный инструментарий для анализа проблем и поиска методов их устранения. Как правило, любой проект обязательно содержит анализ логов серверов БД, на основе чего даются рекомендации по оптимизации. 

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

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

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

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

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

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

    Получите точный расчёт проекта у наших или узнайте, как провести обследование без затрат с вашей стороны при поддержке вендора.

  • Зачем нужна оптимизация сервера

    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-компанию.

    Рекомендуем почитать

    Наверх