gifts2017

Сравнение производительности 1с под DBF-ADS-CodeBase-SQL.

Опубликовал Александр Тарасенков (tarasenkov) в раздел Администрирование - Тестирование и исправление

Представлено сравнение выполнения таких задач в 1с, как заполнение, проведение и отмена проведения документа в режиме сервера терминалов через Virtual PC на одном ПК.
При проведении тестов использовались разработки многоуважаемого hogik:
http://infostart.ru/profile/2905/
1) DBEng32 (6.0.1.4, Advantage 8.1) - http://infostart.ru/projects/1359/
2) DBEng32 (5.1.2.8, CodeBase 6.5) - http://infostart.ru/projects/811/

При заполнении документа происходит выборка данных, при проведении - выборка и вставка данных, при отмене проведения - удаление данных из справочника. Таблица справочника занимает 0.5 Гб, индексный файл 0.1 Гб.

Приводится среднее время выполнения в секундах (минуты:секунды).
1. Заполнение документа в трех сеансах параллельно, в каждом сеансе выборка из различных частей файла.
DBF - 0:24. ADS - 0:43. CB - 2:03. SQL - 1:44.
ADS/DBF: 1.8, CB/DBF: 5.1, SQL/DBF: 4.3
Пиковое потребление памяти на клиента 1с в DBF - 60-80 Мб, в SQL - 106 Мб.
Пиковое потребление памяти на сервер: ADS - 30 Мб. CB - 2 Мб. SQL - 180 Мб.

2. Проведение документа в одном сеансе.
DBF - 3:24. ADS - 3:51. CB - 6:29. SQL - 5:54.
ADS/DBF: 1.1, CB/DBF: 1.9, SQL/DBF: 1.7
Пиковое потребление памяти на сервер: ADS - 114 Мб. CB - 10 Мб. SQL - 926 Мб.

3. Отмена проведения документа в одном сеансе.
DBF - 1:11. ADS - 1:02. CB - 2:07. SQL - 2:13.
ADS/DBF: 0.9, CB/DBF: 1.8, SQL/DBF: 1.9

4. Заполнение документа в 10 сеансах параллельно, выборка из одинаковых частей файла (параметры заполнения совпадают).
DBF - 0:32. ADS - 2:16. CB - 7:06. SQL - 2:37.
ADS/DBF: 4.3, CB/DBF: 13.3, SQL/DBF: 4.9

5. Заполнение документа в одном сеансе.
DBF - 0:12. ADS - 0:25. CB - 1:06. SQL - 0:26.
ADS/DBF: 2.1, CB/DBF: 5.5, SQL/DBF: 2.2

6. Конвертация базы с помощью ConvDBF, размер базы 1.2 Гб.
ADS - 7:00. CB - 2:00. Переиндексация + 3:40.

Примечания
Версия SQL - 2000 MSDE без SP. ADS - 8.1. CB - 6.5.
В CB была отключена оптимизация чтения и записи, лог-файл размещался на RAM-диске.

Для CB - замечено, что при нехватке места под лог-файл (при проведении) 1с-ка вылетает, документ остается непроведенным, но изменения внесенные в транзакции остаются. Не экономьте на объеме RAM-диска! 32 Мб в данном случае оказалось недостаточно.
При принудительном завершении сеанса пользователя, проводящего документ, транзакция откатилась нормально.

Для ADS замечено - при принудительном завершении сеанса пользователя, проводящего документ, работа для других пользователей будет приостановлена на некоторое время, это связано с очисткой блокировок. В данном случае очистка заняла 10-15 секунд.

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

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Владимир (hogik) 12.02.08 01:30
Спасибо автору от автора.
Несколько замечаний.
1) Размер RAM диска действительно надо выделять с запасом. Но при нехватке места под лог-файл и заваливании сессии 1С никаких изменений выполняемых в транзакции в базу не должно попадать. Да и сервер тоже должен завалиться. Скорее всего, описанная Вами ситуация, возникает из-за последовательности команд “Записать”, “Провести” для нового документа. Т.е. на выполнение команд “Записать” места в лог-файле хватило, а на команду “Провести” уже не хватило. Если мне не изменяет память – это две транзакции. Для более точного заключения с моей стороны надо смотреть текст теста.
2) Я понял так, что клиенты запускались в Virtual PC, а сервера CB и ADS на реальной машине. Если это так то, к сожалению, результаты очень сильно отличаются от работы по реальной сети. Особенно, если в Virtual PC запущено несколько сессий 1С (тест #4).
3) “Для ADS замечено - при принудительном завершении сеанса пользователя, проводящего документ, работа для других пользователей будет приостановлена на некоторое время…”. Но связано это с другим. Клиенты ожидают освобождение блокировки файла 1SxTTS.lck по требованию серверной системы ввиду исчезновения задачи на рабочей станции.
Присоединяюсь к Вашему пожеланию: “увидеть результаты тестирования в сетевом режиме, и для большого числа компьютеров”. Мы не сравнивали производительность CB и ADS с SQLной версией 1С и режимом терминал сервер для DBFной версии.
2. Сhe Burashka (CheBurator) 12.02.08 02:49
ничего не понял... DBF - рулез форева?
3. Владимир (hogik) 12.02.08 03:12
Да. В терминал серверном режиме DBFная версия в некоторых тестах быстрее, чем ADS. И это естественно для такой платформы тестирования. Т.е. сравнивается локальный режим с сетевым. В случае ADS данные проталкиваются через виртуальный сетевой адаптер (он работает очень странно). А в терминальном режиме (для DBFной версии) этого не требуется. Но и даже при таком дополнительном расходе ресурсов для ADS в некоторых тестах он работает быстрее. Что касается CodeBase, то я, даже, в документации написал, что проводить сравнение его производительности в Virtual PC не стоит. Результат очень сильно отличается от реальной сети.
4. Владимир (hogik) 12.02.08 03:23
И еще. Никто не обещал, что CB и/или ADS будет работать быстрее, чем DBF в локальном режиме. Говорилось, что быстрее, чем SQLная версия и на уровне сетевого доступа к DBFам. Однако ADS работает быстрее DBFов в одинаковых условиях сравнения (локальный с локальным, сетевой с сетевым). А при увеличении количества пользователей – быстрее, чем терминал серверное решение. У нас это происходит для 3-5 пользователей.
5. aae (AAE) 18.02.08 10:48
Спасибо за сравнительный анализ.
Хотелось бы увидеть еще и сравнение с SELTA@Etersoft http://etersoft.ru
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа