Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
1. hogik 430 05.12.12 00:25 Сейчас в теме

Проведите, пожалуйста, простой тест в 1С 8.х

Цель:
Выявить наличие эффекта "второго пользователя" при использовании файловой версии 1С 8.х в сетевом режиме.
По мотивам темы:
"медленное фомирование бух баланса по сети"(с)
http://forum.infostart.ru/forum26/topic74125/
Железо:
1) Файл-сервер для расположения базы данных.
2) Две рабочие станции для запуска сессий.
Конфигурация содержит один справочник:
Код С(5) - имеет индекс.
фКод С(5) - без индекса.
фЗначение С(50) - без индекса.
Записываем в него 100 записей.
Значения Код должно получить от "00001" до "00100".
Значение фКод во всех записях равно " ".
Значение фЗначение во всех записях равно " ".
Суть теста состоит в замере времени выполнения трех циклов:
1) Выполняется один запрос выборки нулевого количества записей по условию фКод="Х".
2) Выполняется два запроса, в каждом одно условие Код="00005" и Код="00095".
3) Выполняется два НайтиПоКоду(), в каждом значение аргумента "00010" и "00090".
Три цикла выполняются за один вызов теста. Замеряется время выполнения каждого цикла. Количество итераций - по вкусу. Но, время выполнения каждого цикла не должно быть меньше 5 минут для самых "плохих" условий тестирования.
Условия тестирования:
1) Файл-сервер 1 сессия.
2) Файл-сервер 2 сессии.
3) По сети 1 рабочая станция.
4) По сети 2 рабочие станции.
В случае двух сессий/станций вторая сессия бездействует. Перед выполнением каждого пункта выполняется перезагрузка всех ЭВМ-ов, участвующих в тестировании.
Вознаграждение за ответ
Показать полностью
Найденные решения
2. AlexO 127 05.12.12 00:28 Сейчас в теме
(1) hogik,
я даже готов сделать обработку "миллион чтений элемента из справочника" :)
Остальные ответы
Избранное Подписка Сортировка: Древо
2. AlexO 127 05.12.12 00:28 Сейчас в теме
(1) hogik,
я даже готов сделать обработку "миллион чтений элемента из справочника" :)
3. AlexO 127 05.12.12 00:29 Сейчас в теме
(1) hogik,
только как съимитировать "предположим, индексы мы забыли включить" - никак не придумаю.
Ведь вмешаться в структуру в хранения данных 1С мы не можем.
4. hogik 430 05.12.12 00:34 Сейчас в теме
(3)
Перестаньте, пожалуйста, валять дурака в моём лице.
В ТОЙ теме написано: "Для поля фКод не создаем индекс."(с)
В ЭТОЙ теме написано: "Код С(5) - имеет индекс."(с)
Какие еще могут быть вопросы по индексам?
5. AlexO 127 05.12.12 00:41 Сейчас в теме
(4) hogik,
Перестаньте, пожалуйста, валять дурака в моём лице.

Да какая разница, как сформулировано "про индексы" там и тут, проблема совсем в другом.
Сейчас поймете, что
"В ТОЙ теме написано: "Для поля фКод не создаем индекс."(с)
В ЭТОЙ теме написано: "Код С(5) - имеет индекс."(с)"
- совершенно аннулируются сами по себе.
Получить тот же элемент справочника в 1С можно двумя способами:
- запросом
- через менеджер и метод Найти.
Ни о каких рабочих индексах, подобно индексации SQL, речи не идет - и, следовательно, мы не можем их "включить или выключить".
Нам вообще недоступен уровень хранения данных 1С, и как там и чего - только туман. Может, там и есть настоящие индексы по базе (почему тогда такая из рук вон плохая производительность?), а скорей всего, и нет (были бы - так их и устанавливать можно было, и контролировать, и управлять).
Все остальные "индексы" в 1С - либо подмена понятий и попытка выдать нечто невразумительное за "те самые настоящие индексы", либо - работают не на уровне базы, а на уровне 1с-платформы (сервера) (индексация полей в запросе).
7. hogik 430 05.12.12 00:50 Сейчас в теме
(5)
Меня совершенно не волнует:
"Ни о каких рабочих и ндексах, подобно индексации SQL"(с).
Перестаньте приписывать свои мысли другим людям.
8. AlexO 127 05.12.12 00:53 Сейчас в теме
(7) hogik,
Меня совершенно не волнует:

тогда эксперимент будет в условиях, которых Вы не знаете :)
10. hogik 430 05.12.12 01:11 Сейчас в теме
(8)
Еще раз. Последний! ;-)
Попытайтесь понять или спросить ЧТО проверяется данным тестом.
(9)
Уберите, зрительно, все слова про индексы в описании справочника.
Теперь понятнее?
15. AlexO 127 06.12.12 18:13 Сейчас в теме
(10) hogik,
ЧТО проверяется данным тестом

так что проверяется-то? :)
16. hogik 430 06.12.12 18:32 Сейчас в теме
(15)
"Протокол CIFS поддерживает такую технологию оптимизации производительности, как оппортунистическая блокировка (opportunistic locking, или oplock). Существует две основные причины для использования оппортунистической блокировки.
Первая заключается в блокировке файла и инициализации его локального кэширования. Когда условие блокировки больше не может поддерживаться, протокол допускает определенную задержку, в течение которой клиент должен очистить кэш. Блокировка и разблокировка выполняются незаметно для приложения с помощью механизмов CIFS клиентской и серверной систем. При этом для повышения производительности модификации приложения не требуется.
Представьте себе приложение, которое открывает файл на сетевом сервере для чтения и записи и записывает в файл 128-байтовые записи. Без оппортунистической блокировки каждая запись размером 128 байт потребует передачи данных по сети. Использование oplock позволяет локально кэшировать файл на клиентской системе и объединять несколько операций записи в одну, которая приводит к передаче данных по сети. Например, предположим, что клиент использует буферы размером 4096 и последовательно записывает в файл по 128 байт. Первый буфер будет содержать данные 32 операций записи (4096/128 = 32), и все данные 32 записей будут переданы по сети одним запросом на запись в файл. Если операция записи не может быть кэширова- на, по сети будет передаваться 32 операции записи (а не одна, как при кэшировании). Сокращение количества операций записи с 32 до одной приводит к значительному снижению нагрузки на сеть и существенному повышению производительности.
Вторым назначением оппортунистической блокировки является расширение условий, при которых подобная блокировка возможна. При использовании oplock можно увеличить эффективность кэширования. Расширение условий, при которых возможна оппортунистическая блокировка, предоставляет несколько дополнительных преимуществ. Предположим, что экземпляр приложения открывает файл (на сетевом сервере) для чтения и записи. При этом запрашивается и предоставляется оппортунистическая блокировка. Программный код клиента может кэшировать операции записи в файле. Предположим, что другой экземпляр того же приложения запущен на другом клиенте. Одним из выходов из подобной ситуации будет снятие оппортунистической блокировки и использование сетевого ввода-вывода для передачи запросов на запись в файл от обоих приложений. Еще одним способом будет снятие оппортунистической блокировки в тот момент, когда второй экземпляр приложения попытается выполнить операцию записи. Очень часто приложения вообще не выполняют операции записи.
При изменении условий сервер отправляет уведомление клиенту о снятии оппортунистической блокировки. В качестве примера ситуации, когда сервер отправляет уведомление о снятии оппортунистической блокировки, можно указать запрос на доступ к файлу или запись данных в файл другим клиентом. Сервер обеспечивает очистку данных состояния сервера (включая закрытие сеанса клиента), если клиент не отвечает на запрос о снятии оппортунистической блокировки. Клиент запрашивает oplock только в случае необходимости; например, если приложение запрашивает открытие файла для эксклюзивного доступа, запрос оппортунистической блокировки просто не имеет смысла.
Оппортунистические блокировки реализуются в трех вариантах: ..."(с)


Название: Системы хранения данных в Windows
Автор: Дайлип Найк

Далее читайте тут: http://lib.ec/b/205468/read#t28
Про "нюансы" будем говорить после проведения тестов из (1) сообщения данной темы.
6. AlexO 127 05.12.12 00:48 Сейчас в теме
(1) hogik,
т.е. - как перебрать именно ПО БАЗЕ 100 записей, не загружая их в "прослойку" платформы (ТЗ, объекты, etc)?
Есть момент с выборкой - но она тоже получает неизвестно какие записи в неизвестном порядке.
9. AlexO 127 05.12.12 00:55 Сейчас в теме
(1) hogik,
Таким образом, Вы упорно не хотите расшифровать, что это такое
Код С(5) - имеет индекс.
:)
19. pumbaE 628 11.12.12 23:12 Сейчас в теме
Странно в век виртуализации, облаков просить сделать вышеперечисленное в (1) на реальном железе.
20. hogik 430 11.12.12 23:42 Сейчас в теме
(19)
Евгений (pumbaE).
Чего странного?
Описана суть теста. И, именно, это важно. А технические условия - ерунда.
Вот из исходной темы:
http://forum.infostart.ru/forum26/topic74125/message806244/#message806244
12. necropunk 6 06.12.12 16:25 Сейчас в теме
Блин, с нетерпением слежу за топиком, неужели никому не интересно?
13. hogik 430 06.12.12 17:37 Сейчас в теме
(12)
"неужели никому не интересно?"(с)
Думаю, кто понимает в чем суть-задача теста - тот и без теста легко представляет результат замеров. А тот кто не понимает - тот не понимает... :-) Однако, есть маленький нюанс, который имеет смысл выяснить даже при полном понимании сути теста. И обсудить нюансы...
14. alcoholic 06.12.12 18:03 Сейчас в теме
ничего не понятно, зачем??
17. hogik 430 10.12.12 22:04 Сейчас в теме
18. hogik 430 11.12.12 20:56 Сейчас в теме
21. start2000 22 11.12.12 23:49 Сейчас в теме
Для стимулирования вместо описания какие должны быть справочники и что они должны содержать, лучше бы выложили конфу 7 уже все это содержащую и написанные отчеты с методикой их проведения. Тогда бы и от желающих потестировать отбоя не было, да и с интерпретацией результатов теста тоже. А так хрен знает что кто там натестирует =)
22. hogik 430 11.12.12 23:59 Сейчас в теме
(21)
1) Что такое: "конфу 7" ?
2) "А так хрен знает что кто там натестирует =)"(с)
Дык. В том и задачка:
а) Написать и представить исходный тест (лучше с конфой).
б) Название ОС-ов на всех ЭВМ-ах.
в) Время выполнения.
г) Ответить на мои вопросы, выясняющие кто/что "хрен знает"(с). ;-)
23. start2000 22 12.12.12 00:28 Сейчас в теме
Бывает, циферки перепутал 7<->8
Вам результата одного тетсера хватит или статистику собираете?
24. hogik 430 12.12.12 00:42 Сейчас в теме
(23)
Конечно - одного.
Сравнивается разница скорости в рамках ОДНОЙ тестовой "платформы".
25. It-developer 20 14.12.12 14:04 Сейчас в теме
Функция ПользователюРазрешеноЗапускатьНеограниченноеЧислоСоединенийК­Базе() Экспорт

Если РольДоступна("НеограниченноеЧислоПодключенийКБазе") Тогда
Иначе
МассивСоединений = ПолучитьСоединенияИнформационнойБазы();
КоличествоСоединений = 0;
Для Каждого Соединение Из МассивСоединений Цикл
Если
Соединение.Пользователь <> Неопределено И
Соединение.Пользователь.Имя = ИмяПользователя() И Соединение.ИмяПриложения = "1CV8" Тогда
КоличествоСоединений = КоличествоСоединений + 1;
КонецЕсли;
КонецЦикла;
Если КоличествоСоединений > 2 Тогда
Возврат Ложь;
КонецЕсли;
КонецЕсли;

Возврат Истина;

КонецФункции
-------------------------
Еще хочу сказать админам сайта: в Хроме кнопка Ответить (на форуме) недоступна.
26. hogik 430 14.12.12 18:25 Сейчас в теме
(25)
Zhurov Kostya (It-developer).
Думаю, Вы ошиблись темой.
Извините, помечу (25) сообщение как "Спам".
P.S.
Прошу Администрацию сайта удалить (26)(25)(27) сообщения.
27. homer77726 14.12.12 20:09 Сейчас в теме
28. hogik 430 18.12.12 00:29 Сейчас в теме
Всем спасибо.
Закрываю тему.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Рязань
зарплата от 90 000 руб.
Полный день

Программист 1С
Красноярск
зарплата от 50 000 руб.
По совместительству

Бизнес-архитектор 1С, ведущий консультант
Санкт-Петербург
Полный день

Руководитель проектов 1С
Санкт-Петербург
Полный день