Несмотря ни на что, 1С:Предприятие 7.7 все еще продолжает широко использоваться на просторах нашей страны. В связи с этим вопросы обеспечения максимального быстродействия остаются весьма актуальными для системных администраторов. Вместе с тем стоит отметить, что в админских кругах и интернете широко распространено большое количество мифов и заблуждений относительно различных режимов работы 1С. Чтобы развеять их мы решили провести свое тестирование.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
О тестировании
Основной целью проводимого исследования было нахождение оптимального режима работы 1С:Предприятие 7.7 конфигурации "Торговля и склад" применительно к условиям конкретного заказчика. Вторичной целью было исследование влияния различных режимов работы 1С:Предприятия на производительность при выполнении различных действий и операций.
Нами были протестированы: файловый и SQL режимы работы 1С с использованием как MS SQL Server 2000, так и PostgreSQL совместно с SELTA@Etersoft в сетевом и терминальном режимах. Все тесты проводились на Windows платформе. Тестирование варианта с PostgreSQL на Linux нами не проводилось в связи с окончанием тестовой лицензии на Selta и тем, что разработчик (Etersoft), ознакомившись с результатами тестирования под Windows, потерял интерес к дальнейшему сотрудничеству.
Результаты данного тестирования могут оказаться для кого-то неожиданными. Мы советуем тщательно ознакомиться с ними и сделать выводы, что позволит избежать ряда проблем и недоразумений, когда результат внедрения окажется прямо противоположным ожиданиям.
Тестовый стенд
В качестве тестового стенда использовались 2 ПК Core2 Duo E8400 - P45 - 2 Гб PC2-8500 под управлением Windows Server 2003 SP2 и Windows XP SP3 в качестве сервера БД, сервера терминалов и основной рабочей станции. Еще два ПК AMD ATHLON II X2 245 - nForce630a - 2 Гб PC3-8500 использовались в качестве дополнительных рабочих станций. Все ПК объединены в сеть 1 Гбит.
В качестве тестовой использовалась информационная база конфигурации "Торговля и склад" реального оптово-розничного предприятия за 6 месяцев. Тесты отражают реальные условия эксплуатации данной информационной базы.Тестировались следующие режимы:
- Файловый (DBF)
- MS SQL 2000 SP4 (MS SQL 2000)
- PostgreSQL 8.3 через транслятор SELTA@Etersoft (PostgreSQL)'
Результаты тестирования последнего режима следует рассматривать не как результаты PostgreSQL, а как результаты SELTA в связке с PostgreSQL.
Загрузка дампа БД
Загрузка дампа производилась локально на сервере в режиме Конфигуратора, общий объем дампа перед развертыванием 354 Мб.
Результаты в файловом режиме и c использованием MS SQL 2000 незначительно отличаются друг от друга, явный аутсайдер PostgreSQL, возможно дает о себе знать транслятор SELTA, но в любом случае результат неудовлетворительный.
Проведение документов
Скорость проведения документов один из наиболее важных параметров, характеризующих быстродействие ИБ. В нашем случае использовалось групповое проведение документов за неделю в сетевом и терминальном режиме. Два дополнительных ПК выполняли во время тестирования дополнительную нагрузку на ИБ в виде заранее предопределенного набора действий (ввод новых документов, проведение, подбор остатков, печать), характерных для повседневной деятельности фирмы.
Результаты данного теста могут оказаться для многих неожиданными, поэтому разберем их подробнее. В терминале файловый вариант однозначно быстрее MS SQL. Почему? 1С:Предприятие 7.7 не использует большинства возможностей SQL сервера, который выполняет исключительно функции хранилища. Работа с данными выполняется по прежнему средствами 1С, не используя возможностей SQL, добавьте сюда накладные расходы - результат налицо.
Однако все меняется при работе по сети, падение производительности в файловом режиме (всего при 3 клиентах) уже весьма ощутимо, в 3,88 раз, чего не скажешь о SQL версии, всего лишь в 1,43 раза. Уже сейчас можно говорить о сравнимой производительности DBF и MS SQL, при 5-7 клиентах результаты будут уже в пользу SQL версии. Стоит также учитывать запас по пропускной способности сети, которого в реальных условиях (сеть загружена иным трафиком) может и не быть, да и наиболее распространены сейчас все еще менее скоростные сети 100 Мбит.
Результаты SELTA + PostgreSQL комментировать не хочется, они крайне низки и мало зависят от режима (сеть / терминал), что заставляет подозревать узкое место в трансляторе SELTA.
Отчеты
Сразу честно признаемся - отчеты в 1С:Предприятие 7.7 слабое место SQL версий. Причины описаны выше. В повседневной работе нужно найти разумный компромисс между скоростью выполнения основных операций и скоростью формирования отчетов.
Одним из наиболее актуальных и востребованных отчетов можно назвать "Остатки ТМЦ", он же наиболее ресурсоемок, если выполняется в разрезе всего предприятия. Мы сформировали отчет с детализацией по складам.
MS SQL 2000 стабильно отстает от файлового режима почти вдвое как в сетевом, так и в терминальном режиме. Если вы часто используете отчеты, то возможно потребуется дополнительное исследование для выбора оптимального режима. В терминале с большой долей вероятности следует отдать предпочтение файловому режиму 1С.
PostgreSQL показал гораздо более низкие результаты, особенно в терминале, и опять таки слабо зависящие от режима работы, хотя общее быстродействие в данном случае вполне приемлемо.
Следующим отчетом, попавшим в наше тестирование, будет "Отчет по продажам ТМЦ" за месяц. Тестирование проводилось в двух режимах: в первом отчет формировала одна рабочая станция, остальные имитировали рабочую нагрузку на ИБ, во втором на трех рабочих станциях одновременно, результат представляет среднюю от трех измерений.
Несомненный лидер - файловый режим, однако он демонстрирует сильное падение производительности при переходе от терминального режима к сетевому и при увеличении одновременной нагрузки на ИБ. MS SQL 2000 при более низких показателях быстродействия показывает гораздо лучшую способность держать нагрузку, особенно в сетевом режиме.
SELTA + PostgreSQL снова разочаровали, результат весьма низкий, при увеличении нагрузки достигающий неприемлемых значений.
На десерт мы оставили довольно простой отчет "Динамика продаж" по группе номенклатуры.Количество данных требуемых для данного отчета и количество запросов гораздо ниже, чем для вышеперечисленных, результат не заставил себя долго ждать.
В терминальном режиме результаты примерно у всех равны, в сетевом SQL версии даже оказываются быстрее файловых. Но это скорее исключение, чем правило.
Замер производительности
Цель данного теста - оценка производительности при выполнении набора определенных действий, максимально приближенных к повседневной работе отдела продаж, составляющих основную нагрузку на ИБ. Тестирование производилось в монопольном режиме с помощью одноименного инструмента из Отладчика. Тест представляет собой воспроизведение ряда заранее определенных действий: получения заявки от покупателя, выставления счета, выписки накладной и т.п. Мы использовали два варианта теста: с расчетом задолженности по контрагенту (формирование отчета) и без.
Если необходимости в получении отчетов нет, то результаты вполне удовлетворительны и ожидаемы. Файловый режим по прежнему лидирует, за ним идет MS SQL 2000 и PostgreSQL. Производительность во всех случаях достаточно высока.
Теперь посмотрим на ту же ситуацию с формированием задолженности по контрагенам, наиболее популярного повседневного отчета.
Вот здесь и начались проблемы. Если быстродействие MS SQL еще можно с некоторой натяжкой назвать приемлемым, то PostgreSQL (точнее его связка с SELTA) демонстрирует совсем беспомощные результаты.
Выводы
Какие выводы можно сделать из полученных результатов? Небольшие по размеру базы с небольшим количеством пользователей покажут наилучшую производительность в файловом режиме. При увеличении размеров базы при небольшом количестве активных пользователей лучшим вариантом будет переход к терминальному режиму, нежели использование SQL. При большом количестве пользователей активно использующих базу переход на SQL будет вполне оправдан, особенно в сетевом режиме.
Сильные стороны DBF: высокая скорость формирования отчетов и проводок, высокая скорость в терминальном режиме. Недостатки DBF: сильное падение производительности в сетевом режиме и при активном использовании базы несколькими пользователями. К достоинствам SQL следует отнести способность выдерживать гораздо более высокую нагрузку без сильного снижения быстродействия, на небольших базах SQL всегда будет медленнее DBF. Слабая сторона SQL - проводки и отчеты и это следует учитывать.
Теперь о практической стороне данных исследований. На момент их проведения у заказчика имелась собственно ИБ объемом 354 Мб работавшая на MS SQL 2000 в сетевом режиме. Нагрузку на базу составляли 12 пользователей. Субъективно SQL обеспечивал гораздо более высокую производительность, чем файловый режим по сети. По результатам данного тестирования был приобретен терминальный сервер и база была переведена обратно в файловый режим. Сотрудники много работающие с отчетами отметили значительное увеличение быстродействия.
Несколько слов о SELTA. Использование транслятора, позволяющего отказаться от использования дорогого MS SQL Server 2000, безусловно весьма привлекательно. Однако производительность связки SELTA + PostgreSQL не оставляет данному решению шансов. Разве что только для случаев, когда на первый план выходит экономическая составляющая и на недостатки можно закрыть глаза. Например при наличии большого количества рабочих мест использующих базу только для формирования первичных документов (выписка товара и т.п.), а на длительное формирование отчетов можно закрыть глаза.
Наше обращение к разработчику с результатами данного тестирования не принесло результата. Нам было замечено, что вообще то PostgreSQL следовало бы использовать для платформы Linux, и были приведены общие рекомендации по тонкой настройке. Дальнейший интерес к общению с нами также пропал, во всяком случае мы так и не смогли получить продление тестовой лицензии и провести проверку связки SELTA + PostgreSQL под Linux.
Дополнительные материалы:
1. 1С Предприятие 7.7 + PostgreSQL. Реально? Да!
2. Настраиваем 1С Предприятие 7.7 для работы с SQL Server 2000
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Последние комментарии