Книга: Настольная книга 1С:Эксперта по технологическим вопросам
Назад: 3.19.Работа с SQL Server. Настройка и использование бэкапов различных видов
Дальше: 4.2.Выяснение скорости диска

Глава 4. Инструкции

4.1.Как настроить сбор информации о загрузке оборудования и как оценить эту загрузку

На двух проектах, загрузка оборудования с которых приведена на рис. 4.1.1, были проблемы производительности. Про первый говорили: «У нас сервер перегружен, хотим новый – втрое мощнее». Про второй: «Мы купили новый сервер, он очень хороший».

Рис. 4.1.1. Пример неосведомленности сотрудников заказчиков о загрузке оборудования. На правом графике средняя длина очереди к диску >50 в течение всего рабочего дня, и сохраняется исключительно высокой, с небольшими перерывами, до 4 утра

С помощью Performance monitor в простых случаях достаточно контролировать следующие параметры:

  1. Memory (Память) – Committed bytes in use (% использования выделенной памяти) – счетчик показывает процент относительно суммы размера оперативной памяти и файла подкачки, а не только использование оперативной памяти. Не должен превышать размер оперативной памяти.
  2. Memory (Память) – Available Mbytes (Доступно, Мбайт) – счетчик показывает объем свободной физической оперативной памяти. Приближение к нулю свидетельствует о недостатке оперативной памяти.
  3. Processor [_Total] (Процессор [_Total]) – % Processor Time (% загрузки процессора) – рекомендованный максимум – не более 70 % в течение длительного времени.
  4. System (Система) – Processor Queue Length (Очередь к процессорам) – рекомендованный максимум – не более 2 * количество ядер процессоров в течение длительного времени.
  5. Physical Disk (Физический диск) – Avg. Disk Queue Length (Средняя длина очереди к дискам) – обязательно для системных дисков отдельно, для диска с базой отдельно, для диска с журналом транзакций (если такой есть) отдельно. Рекомендованный максимум – не более 2 * количество дисков, работающих параллельно (при этом всегда надо иметь в виду, что RAID0, обеспечивающий параллельность работы дисков, на дисках с базой собирают крайне редко). На практике этот счетчик достаточно сложно применять при оценке загруженности дискового хранилища. По этой причине этот счетчик может быть заменен на \PhysicalDisk(_Total)\Avg. Disk Sec/Read и \PhysicalDisk(_Total)\Avg. Disk Sec/Write. При работе с дисковым кешем нормальное время на чтение или запись обычно составляет менее 10 мс. В случае работы с дисками время на чтение или запись не должно превышать 50–200 мс. Если вы видите, что есть периоды, в которые среднее время значительно возрастает и превышает 200 мс, то это серьезный повод задуматься о производительности дискового хранилища, с которым вы работаете.
  6. LogicalDisk – % Free Space – показатель наличия свободного места на диске и динамики его изменения.
  7. Network Interface (Сетевой интерфейс) – Bytes Total/sec (всего байт/с). Рекомендованный максимум – не более 65 % от пропускной способности адаптера в течение длительного времени.

Практика показала, что показатель Memory (Память) – Pages/sec (обмен страниц/с), рекомендованный для контроля достаточности оперативной памяти, слишком часто дает ложноположительное срабатывание. Его можно включать в состав контролируемых параметров (рекомендованная норма – 0, максимум – не более 20), но обращать на него внимание надо по факту постоянно ненулевого значения и в совокупности с параметрами «% использования выделенной памяти» и «Средняя длина очереди к дискам». Тогда будет видно, например, идет ли речь о свопинге. Если же этот показатель имеет высокое среднее значение, но речь идет о «гребенке» из пиков и нулей с интервалом в несколько шагов замера, без загрузки диска и при большом запасе свободной оперативной памяти, то, вероятнее всего, ситуация нормальная, а не проблемная.

Важное дополнение: в системах, использующих виртуализацию, надо уточнять, что именно показывают счетчики Performance monitor. На текущий момент для систем Hyper-V они показывают загрузку физического оборудования, а не его виртуальной части. Напротив, для систем VMware они показывают загрузку именно виртуальной машины. Эти уточнения необходимо отслеживать и учитывать при анализе.

Если показатели, особенно следующие: % загрузки процессора, средняя длина очереди к дискам, % использования выделенной памяти, превышают рекомендованные максимумы, это означает, что оборудование не справляется с нагрузкой. Надо понимать, что речь идет о систематическом превышении, а не о кратковременных пиках. Кроме того, если вы получили высокие показатели загрузки в период, когда выполнялись заведомо ресурсоемкие операции, например, шло восстановление базы из dt-файла, и вы об этом знаете, то и решение о нехватке мощностей надо принимать с учетом этого.

Однако не спешите радоваться, если загрузка близка к нулю. Это может означать следующее:

  1. Вы переплатили за оборудование, которое используете всего на 5–10 %. Но это не самое плохое. Следующий пункт намного хуже.
  2. В системе есть очень серьезные проблемы параллельности. В этом случае, как правило, есть и другие симптомы, например, ошибки блокировок, о подсчете которых поговорим позже.

Можно руководствоваться следующим правилом: если информационная система «1С» работала нормально, а потом стала работать хуже, и если нет явной нехватки производительности оборудования (например, 100 % загрузки процессора в течение длительного времени), то апгрейд оборудования исправить ситуацию не поможет. Это приходится утверждать вопреки распространенной практике.

Как настроить сбор логов perfmon (для Windows Server 2008 и Windows 7)

  1. Если вы не администратор, попросите включить вас в группы Performance monitor users и Performance log users.
  2. Пуск – Выполнить – Perfmon.
  3. Группы сборщиков данных – Особый (правой кнопкой) – Создать – Группа Сборщиков данных.
  4. Ввести имя (например, 1s, как показано на рис. 4.1.2), переключатель установить на Создать вручную (для опытных), нажать Далее.

Рис. 4.1.2. Ввод имени группы сборщиков данных

Рис. 4.1.3. Выбор типа журнала

- Memory (Память) – Committed bytes in use (% использования выделенной памяти);

- Memory (Память) – Available Mbytes (Доступно, Мбайт);

- Processor [_Total] (Процессор [_Total]) – % Processor Time (% загрузки процессора);

- System (Система) – Processor Queue Length (Очередь к процессорам);

- Physical Disk (Физический диск) – Avg. Disk Queue Length (Средняя длина очереди к дискам) – обязательно для системных дисков отдельно, для диска с базой отдельно, для диска с журналом транзакций (если такой есть) отдельно;

- PhysicalDisk (Физический диск) – Avg. Disk Sec/Read (Среднее время чтения с диска в секундах);

- PhysicalDisk (Физический диск) – Avg. Disk Sec/Write (Среднее время записи на диск в секундах);

- LogicalDisk (Логический диск) – % Free Space (процент свободного места);

- Network Interface (Сетевой интерфейс) – Bytes Total/sec (всего байт/с);

- Memory (Память) – Pages/sec (обмен страниц/с). Если он нужен, см. уточнение в начале главы.

Рис. 4.1.4. Интерфейсы добавления счетчиков

Но если вы не администратор, в окне «корневая папка», показанном на рис. 4.1.5, лучше выбрать свою папку для логов там, куда гарантированно есть права на запись, например, в библиотеке «Документы», или на другом, не системном диске, потому что вам, скорее всего, не хватит прав на C:\PerfLogs.

Рис. 4.1.5. Назначение папки сохранения логов

Рис. 4.1.6. Запуск группы сборщиков данных

  1. После этого, даже если завершить сеанс пользователя, сборщик продолжит работу.
  2. Если надо остановить счетчик или отослать файл, там же надо выполнить пункт меню Действия – Стоп (или нажать на черный квадрат рядом с зеленой стрелкой).

Для старта перезагружать сервер не требуется.

Файлы по умолчанию собираются в папке %systemdrive%\PerfLogs\Admin\1s (это 1s – имя группы сборщиков, заданное выше при настройке) или в папке, которую вы указали в качестве пути в п. 8.

Каждый перезапуск счетчика начинает новый файл.

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

Просматривать записанные логи можно, выбирая нужный файл в качестве источника в свойствах окна: Средства наблюдения – Системный монитор на закладке Источник, как показано на рис. 4.1.7.

Рис. 4.1.7. Выбор источника данных для анализа

Аналогичную настройку можно создать, создав и выполнив от имени администратора bat-файл, листинг которого приведен на рис. 4.1.8. При необходимости что-либо изменить или поправить это можно сделать вручную в уже созданной этим bat-файлом группе 1s, используя описанный выше оконный интерфейс.

@ECHO OFF

ECHO Adding counter "1C_counter"...

 

logman create counter 1s  –f bincirc -c "\Processor(_Total)\%% Processor Time" "\Memory(_Total)\Pages/sec" "\Memory(_Total)\%% Committed Bytes In Use" "\Memory(_Total)\Available Bytes" "\System(_Total)\Processor Queue Length" "\PhysicalDisk(_Total)\Avg. Disk Queue Length" "\PhysicalDisk(*)\Avg. Disk Queue Length" "\Network Interface(*)\Bytes Total/sec" "\PhysicalDisk(_Total)\Avg. Disk Sec/Read" "\PhysicalDisk(_Total)\Avg. Disk Sec/Write" -si 15 -v mmddhhmm

 

C:\Windows\System32\perfmon.exe

 

ECHO done

Рис. 4.1.8. Листинг bat-файла

Если нет навыков, но прав хватает, в первый раз настройка может занять полчаса.

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

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

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

Для операционных систем Linux и AIX нами использовалась утилита nmon.

Для операционной системы HP-UX мы использовали команды sar и top.

Для операционной системы Linux по рекомендации из статьи А. Бурмистрова, размещенной на сайте технологических вопросов крупных внедрений, следует использовать утилиту vmstat. Для этого нужно запустить команду со следующими параметрами: vmstat -n 15 480 > StatResult.txt, где:

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

Первую строку после заголовка нужно удалить, т. к. это усредненные статистические данные, собранные с начала работы системы.

Нужна следующая информация:

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

Для анализа загруженности сети в той же статье рекомендуется использовать утилиту PktStat. PktStat необходимо запускать только под пользователем root. Интересует только один показатель – максимальное количество переданных байт (Max Bps).

Таблица 4.1.1. Описание значений и предельные значения показателей производительности, полученных утилитой vmstat

Описание Значение Критерий Узкое место
Интенсивность обмена между дисковой подсистемой и оперативной памятью Колонка si Среднее: около 0 Максимальное: не более 20 Недостаточно оперативной памяти
Загруженность процессоров Колонки us и sy Максимальное значение us: не более 70 Максимальное значение sy: не более 35 Недостаточная производительность процессоров
Очередь к процессорам Колонка r Не более 2 * количество ядер процессоров в течение длительного времени Недостаточная производительность процессоров
Очередь к дискам Колонка b Не более 2 * количество дисков, работающих параллельно Недостаточная производительность дисковой подсистемы
Скорость передачи данных через сеть Max Bps Не более 65 % от пропускной способности сетевого адаптера Недостаточная пропускная способность сетевого интерфейса
Назад: 3.19.Работа с SQL Server. Настройка и использование бэкапов различных видов
Дальше: 4.2.Выяснение скорости диска