|
TCP-server - какие ограничения?
|
|||
---|---|---|---|
#18+
Добрый день! Опробовал эту технологию ( http://karataev.nm.ru/cache/mdapi.html ) на Caché Evaluation. Впечатления самые хорошие, но опыта реальной работы под хорошей нагрузкой нету. В связи с этим вопросы: 1.Сколько обслуживающих процессов может породить мастер-процесс(listener)? Ограничения лицензионные или аппаратные? 2.Когда клиент отключается, обслуживающий процесс закрывается. Для нового клиента будет порожден новый процесс. Есть ли возможность не закрывать обслуживающий процесс при отключении клиента? И, соответственно, не порождать новый процесс под нового клиента, а приконнектить TCP-клиента к ждущему процессу? Т.е. иметь пул активных процессов. 3.Насколько существенны затраты ресурсов на создание/завершение процессов? Для случая, когда сеансы короткие, типа передать один-два пакета - 80% создание процесса и 20% на передачу данных, или наоборот? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2015, 12:19 |
|
TCP-server - какие ограничения?
|
|||
---|---|---|---|
#18+
DirksDR , Хорошо бы ссылки перед публикацией проверять. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2015, 12:47 |
|
TCP-server - какие ограничения?
|
|||
---|---|---|---|
#18+
Очевидно, имелось в виду: https://web.archive.org/web/20131105094134/http://karataev.nm.ru/cache/mdapi.html P.S. Жаль, что сайт закрылся... ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2015, 13:53 |
|
TCP-server - какие ограничения?
|
|||
---|---|---|---|
#18+
Alexey Maslov, Хостер прекратил поддерживать проект nm.ru. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2015, 14:12 |
|
TCP-server - какие ограничения?
|
|||
---|---|---|---|
#18+
Не смотрел subj, но из общих соображений (если автор не ввёл своих ограничений): - Cache' позволяет пользователю запустить до 25 процессов в рамках одной лицензионной единицы (ЛЕ); 26-й запущенный процесс приведёт к расходу 26 ЛЕ; - способ идентификации пользователей зависит от версии Cache' и некоторых настроек механизма лицензирования; по умолчанию это обычно IP-адрес клиента; - в однопользовательской версии потратить более 1 ЛЕ не получится; - Cache' позволяет иметь пул рабочих процессов ОС, настройку ищите в Портале ( [Home] > [Configuration] > [Startup Settings] - параметр JobServers ). Это позволяет свести запуск/остановку процесса к инициализации его памяти и созданию/очистке записи в таблице процессов Cache', в ОС он будет запущен при старте Cache' и в дальнейшем завершаться не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2015, 14:20 |
|
TCP-server - какие ограничения?
|
|||
---|---|---|---|
#18+
Alexey Maslov, Спасибо, Алексей. Про пул почитаю. Вы сами этим пользовались? Прирост производительности имеет место? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 16:24 |
|
TCP-server - какие ограничения?
|
|||
---|---|---|---|
#18+
Дмитрий, практически не пользовался. Когда-то давно во времена Cache 5.0 была задача, где часто запускались JOBы, что навело на мысль воспользоваться JobServers, но в текущем релизе была ошибка (утечка памяти, ЕМНИП) и предупреждение от ISC фичей пока не пользоваться. Когда ошибку исправили, проект уже был сдан, и настройки решено было не трогать. В дальнейшем я поостыл к этой идее. Соображения такие. В Cache нет команды "запустить job из пула", поэтому пулом пользуются все: суперсервер, CSP, и т.д. Если вы делаете небольшой пул, "основному потребителю" может его и не хватить. Значит, придётся делать пул с запасом, учитывая максимальное количество параллельных JOBов. Иметь множество запущенных процессов ОС, которые пусть даже ничего не делают, но всё равно занимают память, согласитесь, тоже не лучший вариант. Сейчас мне больше нравится иметь ограниченный набор рабочих процессов (обычно не более количества доступных ядер), которые получают задания на обработку из общего источника. Примерно так работают CSP, DeepSee и некоторые утилиты InterSystems. Тогда время обработки заданий отдельным JOBом становится заведомо больше временных затрат на его запуск, и снижаются накладные расходы на диспетчеризацию большого количества JOBов, каждый из которых выполняет какую-то мелочь. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 11:10 |
|
TCP-server - какие ограничения?
|
|||
---|---|---|---|
#18+
Alexey MaslovСоображения такие. В Cache нет команды "запустить job из пула", поэтому пулом пользуются все: суперсервер, CSP, и т.д. Если вы делаете небольшой пул, "основному потребителю" может его и не хватить. Значит, придётся делать пул с запасом, учитывая максимальное количество параллельных JOBов. Иметь множество запущенных процессов ОС, которые пусть даже ничего не делают, но всё равно занимают память, согласитесь, тоже не лучший вариант. Сейчас мне больше нравится иметь ограниченный набор рабочих процессов (обычно не более количества доступных ядер), которые получают задания на обработку из общего источника. Примерно так работают CSP, DeepSee и некоторые утилиты InterSystems. Тогда время обработки заданий отдельным JOBом становится заведомо больше временных затрат на его запуск, и снижаются накладные расходы на диспетчеризацию большого количества JOBов, каждый из которых выполняет какую-то мелочь. Вставлю свои пять копеек по JOB. Первое . Да имеется ограничение на количество одновременно запущенных, точнее на количество СРАЗУ запускаемых. ПК не справляется и виснет. Если делать их с задержкой хотя бы по 5 сек (пакетами по 5-10 штук), то можно запускать хоть 100, без изменения настроек в Каше. Второе - по поводу кол-ва лицензий. Можно их "устаканить", если запускать через основную программу как if (sek1#300)=0 {Job Analiz^DohodVnutriDna} // где ^DohodVnutriDna - отдельно запускаемый процесс (программа) //а сама программа DohodVnutriDna начинается Analiz //(как метка начала программы - иначе запускаться не будет) //и выходим из программы через Halt Quit В этом случае - отнимание лицензий не происходит. У меня эта программа запускается каждые 5 минут в течении 9 часов. Кол-во активированный лицензий не меняется (стабильно), чего не скажешь, если запускать постоянно Studio и Terminal, вот они за час работы (при постоянном входе-выходе) могут запросто съесть все лицензии. Но в любом случае, вам придется менять настройки памяти в Каше, чтобы она не висла (увеличивать её). С настройками по умолчанию, тяжелые приложения напрочь стопорят работу Cache. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 14:26 |
|
TCP-server - какие ограничения?
|
|||
---|---|---|---|
#18+
Количество всех процессов пользователя не может превышать кол-во лицензий умноженное на 24 и минус 1 Если 4 лицензии, то 4*24-1=96-1=95 одновременно запущенных процесса. Важно учесть ЕЩЕ одну особенность. КАЖДОЕ соединение по DDE и по ODBC также воспринимаются Cache как одна лицензия. Есть еще подводные камни. Так если вы заходите в локальный сервер для просмотра графика, то каждый заход-выход отнимает одну лицензию. Можно четыре раза зайти, чтобы посмотреть график - и у вас отнимается 4 лицензии, даже если в текущее время все графики закрыты полностью!!! ПРИ ЗАХОДЕ В ПЯТЫЙ РАЗ вас уже не пустят, так как ВСЕ ЛИЦЕНЗИИ ЗАНЯТЫ, хотя по факту - ничего не работает!!! Через 30-60 минут, Каше обнуляет счётчик используемых лицензий. Поэтому, рекомендуется для пользователей создать учетную запись, и тогда лицензии не отнимаются (если закрыли-открыли окно заново), могут отниматься всевдо лицензии (лицензия на поток из 24 остаться 23 или 22). То же самое касается и Terminal. В первое время очень сильно по этому поводу напрягался, потом понял в чём дело и проблема решилась. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 14:50 |
|
TCP-server - какие ограничения?
|
|||
---|---|---|---|
#18+
О-О-ОКоличество всех процессов пользователя не может превышать кол-во лицензий умноженное на 24 и минус 1 Если 4 лицензии, то 4*24-1=96-1=95 одновременно запущенных процесса.Если вы имели в виду процессы всех пользователей , то 25*Max_Licensed, в вашем случае 100, считая "запускающие" процессы. Т.е. каждый пользователь, вошедший через терминал, CacheActiveX, etc (практически всё кроме CSP), может запустить ещё 24 процесса. О-О-ОКАЖДОЕ соединение по DDE и по ODBC также воспринимаются Cache как одна лицензия.Точнее, как ещё одно соединение соответствующего пользователя. Это не означает автоматического списания ещё одной ЛЕ, т.к. если пользователь уже был активен на момент установления нового соединения, списания ЛЕ не будет до тех пор, пока не будет запущено суммарно 25 процессов. На 26-й раз спишется сразу 25 ЛЕ. С маленькой лицензией этого не прочувствуешь, будет просто отказ в соединении. О-О-ОЕсть еще подводные камни. Так если вы заходите в локальный сервер для просмотра графика, то каждый заход-выход отнимает одну лицензию. Можно четыре раза зайти, чтобы посмотреть график - и у вас отнимается 4 лицензии, даже если в текущее время все графики закрыты полностью!!!Скорее всего, CSP Grace Period, на эту тему немало копий было сломано, но сейчас документировано вполне нормально. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 15:25 |
|
|
start [/forum/topic.php?fid=39&fpage=14&tid=1556607]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
92ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 290ms |
total: | 476ms |
0 / 0 |