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


Рис. 4.1.1. Пример неосведомленности сотрудников заказчиков о загрузке оборудования. На правом графике средняя длина очереди к диску >50 в течение всего рабочего дня, и сохраняется исключительно высокой, с небольшими перерывами, до 4 утра
С помощью Performance monitor в простых случаях достаточно контролировать следующие параметры:
Практика показала, что показатель Memory (Память) – Pages/sec (обмен страниц/с), рекомендованный для контроля достаточности оперативной памяти, слишком часто дает ложноположительное срабатывание. Его можно включать в состав контролируемых параметров (рекомендованная норма – 0, максимум – не более 20), но обращать на него внимание надо по факту постоянно ненулевого значения и в совокупности с параметрами «% использования выделенной памяти» и «Средняя длина очереди к дискам». Тогда будет видно, например, идет ли речь о свопинге. Если же этот показатель имеет высокое среднее значение, но речь идет о «гребенке» из пиков и нулей с интервалом в несколько шагов замера, без загрузки диска и при большом запасе свободной оперативной памяти, то, вероятнее всего, ситуация нормальная, а не проблемная.
Важное дополнение: в системах, использующих виртуализацию, надо уточнять, что именно показывают счетчики Performance monitor. На текущий момент для систем Hyper-V они показывают загрузку физического оборудования, а не его виртуальной части. Напротив, для систем VMware они показывают загрузку именно виртуальной машины. Эти уточнения необходимо отслеживать и учитывать при анализе.
Если показатели, особенно следующие: % загрузки процессора, средняя длина очереди к дискам, % использования выделенной памяти, превышают рекомендованные максимумы, это означает, что оборудование не справляется с нагрузкой. Надо понимать, что речь идет о систематическом превышении, а не о кратковременных пиках. Кроме того, если вы получили высокие показатели загрузки в период, когда выполнялись заведомо ресурсоемкие операции, например, шло восстановление базы из dt-файла, и вы об этом знаете, то и решение о нехватке мощностей надо принимать с учетом этого.
Однако не спешите радоваться, если загрузка близка к нулю. Это может означать следующее:
Можно руководствоваться следующим правилом: если информационная система «1С» работала нормально, а потом стала работать хуже, и если нет явной нехватки производительности оборудования (например, 100 % загрузки процессора в течение длительного времени), то апгрейд оборудования исправить ситуацию не поможет. Это приходится утверждать вопреки распространенной практике.
Как настроить сбор логов perfmon (для Windows Server 2008 и Windows 7)

Рис. 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. Запуск группы сборщиков данных
Для старта перезагружать сервер не требуется.
Файлы по умолчанию собираются в папке %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 % от пропускной способности сетевого адаптера | Недостаточная пропускная способность сетевого интерфейса |