Настройка сервера 1С и MS SQL Server

Оптимальные настройки СУБД зависят от:

  • Конфигурации компьютера (включая влияние виртуализации, совмещение с ролью терминального сервера, от количества сетевых карт);
  • Количества данных, хранящихся в БД;
  • Отношения количества запросов на чтение к запросам на запись;
  • Наличия других процессов, использующих ресурсы.
  • На производительность сервера существенно могут настройки, управляющие поведением мощностей процессора, дисков, доступа к памяти и т.п.

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

    В BIOS сервера отключаем все настройки по экономии электропитания процессора.

    Если есть «C1E» — обязательно ОТКЛЮЧАЕМ!!

    Для некоторых не очень параллельных задач также рекомендуется выключить гипертрейдинг в биосе.

    В некоторых случаях (особенно для HP!) надо зайти в BIOS сервера, и ВЫКЛЮЧИТЬ там пункты, в названии которых есть EIST, Intel SpeedStep и C1E.
    Взамен надо там же найти пункты, связанные с процессором, в названии которых есть Turbo Boost, и ВКЛЮЧИТЬ их.
    Если в биосе есть общее указание режима энергосбережения — включить его в режим максимальной производительности (он ещё может называться «агрессивный»)

    Смотрите также http://www.gilev.ru/bioshp/

    Обратите внимание, что такие настройки популярны, но бывают исключения, когда вендоры реализуют обозначенные выше настройки и механизмы работы иначе, и тогда может потребоваться не выключать, а включать какие-то пункты, связанные с EIST, SpeedStep и Turbo Boost.

    Не забываем и также и про настройки схемы в операционной системе.

    Схема энергопотребления для 1с

    В конечном итоге надо не ориентироваться на названия этих пунктов, а на итоговые максимальные частоты процессоров. Можно контролировать их утилитой CPU-Z. Приведём пример:

    вот снимок системы на базе процессора i7-4770, тактовой частотой 3.4 ГГц (о чём в явном виде написано в поле Specification: @3.40Ghz). В группе Clocks (Core #0) в пункте Multiplier (множитель) указан весь допустимый для данного процессора диапазон множителей: от 8 до 39. 8 – это состояние покоя, а 39 – это максимально возможный множитель при загрузке одного ядра. Если умножить значение множителя на написанную ниже частоту шины (Bus Speed), в данном случае 99.76 МГц, то получится текущая тактовая частота (Core Speed). В данном случае, 99.76*27 примерно равно 2693.57 МГц. Как видим, это ниже даже паспортной тактовой частоты.
    Допустим, мы проделали некоторый набор изменений, и хотим увидеть разницу. Заходим сюда же, и видим искомый максимальный множитель:

    Но не спешим радоваться, на снимке всего лишь моментально зафиксированная частота одного из ядер. А как обстоит ситуация на остальных ядрах? В новых версиях CPU-Z появилась возможность наблюдать множитель и частоту по всем имеющимся ядрам (меню Tools – Clocks)

    Заходим туда, и видим, что не на всех ядрах множитель максимальный, некоторые ядра «сачкуют»!

    Продолжаем изыскания с настройками до тех пор, пока не увидим, что при отсутствии максимальной загрузки процессоров, частота всех ядер максимальна для данного процессора:

    Вот теперь уже можно со спокойной совестью запускать тест TPC и смотреть там улучшение результата.

    Сервера с архитектурой Intel Sandy Bridge умеют динамически менять частоты процессора.

    Для управления под линуксом отправляем к документации редхат  .

    Скачайте утилиту PowerSchemeEd.7z , распакуйте с помощь  7zip и запустите PowerSchemeEd.exe

    Выберите раздел Управление питанием процессора и выставите параметры как на картинке.

    настройка производительности питания процессора для 1с

     

    Убедитесь что после настройки схемы энергоснабжения процессор работает на нужной максимальной частоте, заявленной производителем. Для этого посмотрите с помощью утилиты cpu-z на core speed.

    Контроль частоты процессора

    Использование виртуальной среды означает что может быть 4 места где надо проверить влияние настроек на частоты процессора (биос физического сервер, схему электоснабжения хостовой ОС, биос виртуального сервера, схему электоснабжения виртуальной ОС ).

    На серверах 1С и MS SQL Server использование антивирусов (даже сам факт инсталяции без включения) будет приводить к снижению производительности в виде периодических массовых замедлений и подвисаний интерфейса.

    Совмещение ролей сервера 1С и сервера MS SQL Server дает большую производительность, особенно если использовать протокол обмена данных напрямую через память «Shared Memory».

    Для настройки протокола воспользуйтесь статьей http://www.gilev.ru/sqland1c/

    Наши «рекомендуемые практики», полученные на основе  опыта выполненных проектов

    Очень многие проекты выполнены нами с помощью MS SQL Server 2008 R2.

    Рекомендуем Вашему вниманию наш доклад на международной конференции компании Microsoft Teched Russia 2011.


    Материал статьи можно обсудить на форуме http://www.gilev.ru/forum/

    См. также http://www.gilev.ru/dfss/

    ЕСЛИ ВЫ ВЫПОЛНИЛИ ВСЕ НАСТРОЙКИ И НЕ СМОГЛИ ДОСТИЧЬ НУЖНОЙ ПРОИЗВОДИТЕЛЬНОСТИ, ТО МОЖНО ВОСПОЛЬЗОВАТЬСЯ НАШЕЙ ПОМОЩЬЮ