cro-logo      
Добро пожаловать, Гость. Пожалуйста, выберите Вход или Регистрация

 
 
  ГлавнаяСправкаПоискВходРегистрация  
 
Страниц: 1 2 3 
Послать Тему Печать
Замедление поиска при нескольких подключениях (Прочитано 10 036 раз)
yavik
Опытный пользователь
***
Вне Форума



Сообщений: 66
Замедление поиска при нескольких подключениях
10.11.2016 :: 01:40:22
 
Есть w2008 сервер на котором открыт общий доступ к каталогу в котором находится база Кроноса. В этом же каталоге Cronos 5.0.11003.0. Доступ полный для всех кто работает с базой - 3 человека.
Если один пользователь по сети работает с базой то все летает, если подключится второй то все работает но очень медленно. Причем пробовал сам кронос запускать с клиентской машины оставив только базу на сервере - не помогает. Пробовал разные ОС клиента XP, Windows7 - не влияет. Интересно что при выполнении поиска первым пользователем, только подключится второй сразу поиск круто замедляется, не могу понять почему второе подключение так замедляет работу Озадачен
Наверх
 
 
IP записан
 
Leo
Бета-тестер
Вне Форума


Мое поколение...

Сообщений: 1 571
Калуга - Москва
Re: Замедление поиска при нескольких подключениях
Ответ #1 - 10.11.2016 :: 10:38:31
 
У Вас проблемы с настройкой сети или с работой сервера.
Попробуйте добавить памяти, увеличить производительность дисковой системы, пропускную способность сети. Ищите решения проблемы в техническом направлении.
Наверх
 

Леонтьев Ю. Ю.
**************
leo6@mail.ru
sgv.leo6@gmail.com
 
IP записан
 
Пытливый
Профи
****
Вне Форума



Сообщений: 382
Мурманск
Re: Замедление поиска при нескольких подключениях
Ответ #2 - 10.11.2016 :: 14:31:07
 
Давайте угадаю, у вас стоит 100мб сеть и вы не используете терминал сервера.
Наверх
 
 
IP записан
 
yavik
Опытный пользователь
***
Вне Форума



Сообщений: 66
Re: Замедление поиска при нескольких подключениях
Ответ #3 - 11.11.2016 :: 11:47:24
 
Пытливый писал(а) 10.11.2016 :: 14:31:07:
Давайте угадаю, у вас стоит 100мб сеть и вы не используете терминал сервера.

А что если просто расшарить папку на сервере в которую положить сам Кронос и базу то по сети 3 человека работать будут с тормозами ? Вы тоже с таким сталкивались. Leo советует смотреть техническую часть - но с виду все круто - у сервера 8 Gb памяти, проц 4 ядра - дисковая система - отдельный sas винт, гигабитная сеть. Не думаю что для 3 человек нужно больше ? Тормозит уже при втором подключении, может дело в блокировках файлов помню у Кроноса с этим когда-то были проблемы.
Наверх
 
 
IP записан
 
Leo
Бета-тестер
Вне Форума


Мое поколение...

Сообщений: 1 571
Калуга - Москва
Re: Замедление поиска при нескольких подключениях
Ответ #4 - 11.11.2016 :: 12:23:20
 
Пока непонятно, Ваша конфигурация очень неплоха, в худших условиях все работает нормально, спокойно отрабатывая 10-15 одновременных подключений.
Есть подозрения на винт.... попробуйте, если есть такая возможность, поставить обычный винт без наворочек и поместить на него массивы и Кронос.
Пока других советов нет.
Как вариант - переход на терминальные сессии.
Наверх
 

Леонтьев Ю. Ю.
**************
leo6@mail.ru
sgv.leo6@gmail.com
 
IP записан
 
Пытливый
Профи
****
Вне Форума



Сообщений: 382
Мурманск
Re: Замедление поиска при нескольких подключениях
Ответ #5 - 11.11.2016 :: 12:48:17
 
В похожей ситуации, при хорошем серверном железе, решить проблему тормозов аналогичным шаманством не удалось. Говорят, что помогает переход или на гигабитную сеть (но мне это проверить не удалось), или активация сервера терминалов с последующим подключением клиентов через терминал (это проверено и работает очень хорошо).
Наверх
 
 
IP записан
 
yavik
Опытный пользователь
***
Вне Форума



Сообщений: 66
Re: Замедление поиска при нескольких подключениях
Ответ #6 - 11.11.2016 :: 15:08:23
 
Проанализировал нагрузку. Поставил HD Tune Pro и включил в нем монитор диска на сервере - запустив запрос по образцу на сервере - увидел что в процессе выполнения прочитано с винта  Total read = 7Гб  а Read I/O s - 7356115. Записано Total write 255 кб write I/O s 270 .     Из чего сделал вывод что идет довольно интенсивное чтение по обьему если верить HD Tune. Выходит при 100мбит сети если скорость 10Мбайт/с  то 1 Гб прочитает чуть более чем за 100сек. грубо 2 минуты  а 7 Гб за 14 минут.   Но реально запрос по сети одним пользователем выполняется быстрее - около 2-3 минут.  Монитор сети показал на пиках не более 8-10% загрузки. Служба cronos.exe процессора откусывает на 25% а памяти ест 30Мб.  Интересно что если на самом сервере выполнять такой запрос подключив базу с локального диска - запрос просто летает. А если эту базу скормить ему по сети - уже заметны тормоза раза в 2. Выходит лучшее решение по скорости будет использование интернет-компонента как ни крути.
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
На Форуме


Старинный пользователь
Кронос

Сообщений: 2 967
Санкт-Петербург
Re: Замедление поиска при нескольких подключениях
Ответ #7 - 11.11.2016 :: 15:39:10
 
Дело может быть как в самом запросе, так и в выдаче, предусмотренной запросом. Если Вы пытаетесь выдать статистику по всей базе (банку), то будет огромный тормоз. Если в запросе указать в Обработке - ничего, то скорость будет очень большая. Однако, должны быть соблюдены условия:
1. Поиск осуществляется по простым полям;
2. Простые поля, участвующие в поиске должны быть проиндексированы.

В случае, если запрос осуществляется по связанным базам, скорость поиска будет значительно меньше.
Наверх
 
 
IP записан
 
yavik
Опытный пользователь
***
Вне Форума



Сообщений: 66
Re: Замедление поиска при нескольких подключениях
Ответ #8 - 11.11.2016 :: 18:12:29
 
Спасибо Zulus за советы, но пока непонятно, почему второе подключение к расшареному кроносу с БД резко замедляет поиск по всем запросам кстати нагрузка на процессор падает с 25% до 4-8% на клиенте который до подключения второго выполнял запрос. В качестве тестового выполняю один и тот же запрос по образцу в котором участвуют 2 базы данных связанных по полю ФИО с выдачей по выходной форме с обработкой по формуле (сравнение дат рождения).  Чтоб оценить возможную скорость локального поиска, как самого быстрого на разных ОС и винтах беру каталог БД с кроносом  и копирую на SSD диск на этом же 2008 сервере, он выполняется на секунд  5-10 быстрее. То есть если он на SAS винте шел 40 - 45 секунд, то на SSD диске 30 -35 секунд (хотя скорость чтения у SSD в 4 раза выше  Озадачен).  Теперь беру этот каталог и копирую на клиентский комп с ОС Windows 7 на обычный SATA винт скорость примерно такая же как и на 2008 SAS винте, а вот когда я его скопировал на W2003 там такой же SAS винт как и на  2008 отработал за 14 секунд, другие запросы пробовал также намного быстрее 8-10 сек,  Круглые глаза . Ниче не понимаю у меня на 2003 сервере с SAS винтом локально все запросы выполняются в 2 раза быстрее чем на SSD или SAS в ОС 2008 или ОС Windows7.  Итак есть что-то в ОС W2008, Windows7 что заметно снижает скорость поиска локально,  и этого что-то нет в W2003.  Железо (процессор, память, винт) одинаковы. Антивирус NOD настроен одинаково. Разные только ОС.   И есть проблема с замедлением работы по сети с БД и кроносом нескольких пользователей, она проявляется во всех ОС. С одним пользователем все ОК.
Наверх
 
 
IP записан
 
Leo
Бета-тестер
Вне Форума


Мое поколение...

Сообщений: 1 571
Калуга - Москва
Re: Замедление поиска при нескольких подключениях
Ответ #9 - 11.11.2016 :: 18:41:04
 
Мне нравится Ваши эксперименты, жаль что они не в научных целях проводятся, а по необходимости.
Посмотрите настройки теневого копирования.
А скажите, на сервере 2003 при подключении нескольких пользователей есть такие же замедления?
Наверх
 

Леонтьев Ю. Ю.
**************
leo6@mail.ru
sgv.leo6@gmail.com
 
IP записан
 
yavik
Опытный пользователь
***
Вне Форума



Сообщений: 66
Re: Замедление поиска при нескольких подключениях
Ответ #10 - 11.11.2016 :: 21:18:33
 
Спасибо Leo за советы, теневое копирование выключено для тома на котором находится каталог с БД и Кронос.
Пробовал на 2003 открывать сетевой доступ такие же замедления поиска при втором подключении. Еще наблюдение - запускаю на клиенте с Windows7  виртуальную машину гостевая ОС XP SP3 копирую на нее каталог с БД и Кроносом и запускаю запрос - получаю ответ за 16 секунд. Запускаю его же в родительской ОС Windows 7 -ответ через  41 сек.   Вывод - в старых ОС XP SP3 и Windows 2003 Server -5 версия кроноса работает быстрее в 2 раза при выполнении запроса локально и есть в новых ОС что-то что значительно замедляет работу кроноса. Токма непонятно что.
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
На Форуме


Старинный пользователь
Кронос

Сообщений: 2 967
Санкт-Петербург
Re: Замедление поиска при нескольких подключениях
Ответ #11 - 12.11.2016 :: 00:13:44
 
Наверное еще было бы полезно испытать в одноранговой сети (без сервера) с XP. Мне кажется, что результаты были бы еще лучше, чем в server 2003, тем более в 2008.
CronosPro это файл-серверная система, а не клиент-серверная, будь то толстый или тонкий клиент, поэтому чем меньше будет служб и различных прибамбасов крутиться на сервере, тем лучше.
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
На Форуме


Старинный пользователь
Кронос

Сообщений: 2 967
Санкт-Петербург
Re: Замедление поиска при нескольких подключениях
Ответ #12 - 12.11.2016 :: 00:42:39
 
Цитата:
один и тот же запрос по образцу в котором участвуют 2 базы данных связанных по полю ФИО с выдачей по выходной форме с обработкой по формуле (сравнение дат рождения).

Могу предположить, что у Вас есть две базы, к примеру, одна с полями: ФИО, ДР, телефон, другая: ФИО, ДР, адрес, ну или другие подобные варианты. Если базы связаны через ФИО, например, связь по полю, то поиск будет осуществляться достаточно долго, потому что для сравнения придетс 
я перебирать все записи. При двух подключенных пользователях скорость работы может значительно упасть.
Наверх
 
 
IP записан
 
yavik
Опытный пользователь
***
Вне Форума



Сообщений: 66
Re: Замедление поиска при нескольких подключениях
Ответ #13 - 12.11.2016 :: 02:45:00
 
Zuluss писал(а) 12.11.2016 :: 00:42:39:
Если базы связаны через ФИО, например, связь по полю, то поиск будет осуществляться достаточно долго, потому что для сравнения придетс я перебирать все записи. При двух подключенных пользователях скорость работы может значительно упасть.
Именно так и связаны - созданы поля с типом связь по полю в обоих базах и указаны поля фамилий в качестве полей связи.  Причем в одной базе в одном поле Фамилия и Имя клиента, а во второй Фамимлия Имя Отчество на русском и Английском в одном поле. И постоянно при ревизии пишет что отсутствует взаимная отсылка по полю в котором сразу 2 ФИО рус. и англ. с полем базы в которой только Фамилия и Имя,  и  не понятно как ее создать, ревизия ее ж должна восстанавливать, но при повторной ревизии опять находит отсутствие, поля проиндексированы.   Может поэтому такое большое количество 7 Гигабайт читается с винта при выполнении запроса. Как лучше связать в данном случае чтоб не тормозило ?  Выделить из поля Фамилию и Имя в базе где они с англ. именами замешаны довольно сложно. Просится только прямая отсылка от базы где только Фамилия и Имя.
Еще раз отмечу что в W2003 и XP  запрос к локальной БД выполняется за 14-16 сек, а в Windows7, 2008 около 35-41 сек. то есть в 2 раза медленнее. Тот же запрос при условии, что Кронос и БД лежат в расшареном каталоге выполняется за 1 минуту 15 секунд на любой ОС если подключиться одним пользователем, а если подключиться вторым пользователем по сети скорость выполнения запроса падает очень сильно, можно пойти покурить на минут 20 и первому и второму пользователю
Наверх
 
 
IP записан
 
Энкан
Профи
****
Вне Форума



Сообщений: 361
Владивосток
Re: Замедление поиска при нескольких подключениях
Ответ #14 - 12.11.2016 :: 04:01:13
 
А какой рейд собран на серваке?
Наверх
 
 
IP записан
 
Страниц: 1 2 3 
Послать Тему Печать