powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / .NET Remoting -- 7-8 threads и всё, остальные входящие ждут очереди
14 сообщений из 14, страница 1 из 1
.NET Remoting -- 7-8 threads и всё, остальные входящие ждут очереди
    #34270857
Через Remoting (WCF) на сервере запускается всего несколько потоков, независимо от размера тредпула и заданного количества параллельно обрабатываемых коннекшенов. Кроме Remoting ThreadPool никто не использует. Увеличение BacklogLimit (или как там они его называют?) просто отдаляет смерть.

Количество коннекшенов вообще непонятная цифирь, разве что MS для Remoting использует fibers (несколько физических потоков обрабатывают большую пачку пользовательских потоков).

Но MS отказалась от повсеместного внедрения fibers, кроме SQL Serever 2005.

Нашёл пока только у MS рекомендацию хостить Remoting-сервисы через IIS, якобы там управление ресурсами гораздо круче, да ещё и GC какой-то убермощный используется.
...
Рейтинг: 0 / 0
.NET Remoting -- 7-8 threads и всё, остальные входящие ждут очереди
    #34270877
Вопрос, собственно, в увеличении количества потоков для Remoting.
Пока писал, пришла идея увеличить максимальный размер ThreadPool. Но думается, что поможет это как мёртвому припарка...

Может, есть решения по отпусканию Remoting-потока, чтобы можно было сделать что-нибудь длинное и потом вернуть его себе и отдать клиенту результат?
...
Рейтинг: 0 / 0
.NET Remoting -- 7-8 threads и всё, остальные входящие ждут очереди
    #34270879
guest00x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Иванов АндрейЧерез Remoting (WCF) ...
Remoting <> WCF, как минимум, "формально", т.е. "по доке", внутри наблюдаются те же прокси и т.п., но, как я понял, Remoting !=(строго не равен) WCF.
Так с чем у Ва проблемы - с Remoting или с WCF ?
...
Рейтинг: 0 / 0
.NET Remoting -- 7-8 threads и всё, остальные входящие ждут очереди
    #34270883
Иванов Андрей, Вопрос не в тему, но вы случайно, не преподавали в этом году в СПбГУ?
...
Рейтинг: 0 / 0
.NET Remoting -- 7-8 threads и всё, остальные входящие ждут очереди
    #34270931
guest00x Иванов АндрейЧерез Remoting (WCF) ...
Remoting <> WCF, как минимум, "формально", т.е. "по доке", внутри наблюдаются те же прокси и т.п., но, как я понял, Remoting !=(строго не равен) WCF.
Так с чем у Ва проблемы - с Remoting или с WCF ?

Проблемы с WCF.
Но я уверен, что с Remoting будут те же проблемы. Может быть, числа будут разные, сути это не меняет - при наличии свободных 1000 потоков всего 10 (когда-то давно для Remoting цифра была ~20 одновременно обрабатываемых запросов, сколько физических потоков, не посмотрели) выделяется для WCF/Remoting.

Я, естественно, попробую увеличить размер ThreadPool, но даже если это поможет, решение не очень красивое получается.
...
Рейтинг: 0 / 0
.NET Remoting -- 7-8 threads и всё, остальные входящие ждут очереди
    #34270932
студент_спбГУИванов Андрей, Вопрос не в тему, но вы случайно, не преподавали в этом году в СПбГУ?
Нет, я никогда не преподавал и в Питере ни разу не был.
Но побывать хочется =)
...
Рейтинг: 0 / 0
.NET Remoting -- 7-8 threads и всё, остальные входящие ждут очереди
    #34272024
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может помогут настройки ServiceThrottlingBehavior?

Как вариант, можно организовать("вручную") выполнение любого удаленного метода в своем(новом) треде. Стоимость "увода" в новый тред относительно незначительна...
...
Рейтинг: 0 / 0
.NET Remoting -- 7-8 threads и всё, остальные входящие ждут очереди
    #34273279
LRМожет помогут настройки ServiceThrottlingBehavior?
Не помогают. Тестировали на Professional и WS2003.

LRКак вариант, можно организовать("вручную") выполнение любого удаленного метода в своем(новом) треде. Стоимость "увода" в новый тред относительно незначительна...
А это как? Я предполагал, что такое может быть, но чуть не сломал голову с ExecutionContext.
Быстро с ним разобраться не получилось, если нет прямых ссылок, посоветуйте, куда копать надо, чтобы выполнение уводилось в мой тред.

Ещё есть вариант заморочиться со своим каналом или одной из его частей, но это не лучше, на мой взгляд, чем хоститься в IIS.
...
Рейтинг: 0 / 0
.NET Remoting -- 7-8 threads и всё, остальные входящие ждут очереди
    #34273329
LRМожет помогут настройки ServiceThrottlingBehavior?
Пример в MSDN неправильный был.
В Гугле встретился тоже неправильный =)
Решили сделать немного иначе и всё заработало.
...
Рейтинг: 0 / 0
.NET Remoting -- 7-8 threads и всё, остальные входящие ждут очереди
    #34273422
LRМожет помогут настройки ServiceThrottlingBehavior?

Как вариант, можно организовать("вручную") выполнение любого удаленного метода в своем(новом) треде. Стоимость "увода" в новый тред относительно незначительна...
Спасибо за совет про Remoting.
Но про треды всё равно интересно, можете подсказать?
...
Рейтинг: 0 / 0
.NET Remoting -- 7-8 threads и всё, остальные входящие ждут очереди
    #34273827
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иванов АндрейНо про треды всё равно интересно, можете подсказать?
в двух словах :)
в FW 2.0 появился ParameterizedThreadStart, значит, в тред можно передать завернутую в параметр всю необх.инфу, ну и вернуть результат (типа object)

в static ("утилитного" класса, доступного отовсюду) методе:
new Thread(ParameterizedThreadStart)
newThread.Start(параметр)
newThread.Join()
return параметр.результат

в private static методе ParameterizedThreadStart:
параметр.результат = параметр.obj.type.InvokeMember(параметр.название_метода, BindingFlags.InvokeMethod, ..., параметр.target, параметр.args)
...
Рейтинг: 0 / 0
.NET Remoting -- 7-8 threads и всё, остальные входящие ждут очереди
    #34275862
LR Иванов АндрейНо про треды всё равно интересно, можете подсказать?
в двух словах :)
в FW 2.0 появился ParameterizedThreadStart, значит, в тред можно передать завернутую в параметр всю необх.инфу, ну и вернуть результат (типа object)

в static ("утилитного" класса, доступного отовсюду) методе:
new Thread(ParameterizedThreadStart)
newThread.Start(параметр)
newThread.Join()
return параметр.результат

в private static методе ParameterizedThreadStart:
параметр.результат = параметр.obj.type.InvokeMember(параметр.название_метода, BindingFlags.InvokeMethod, ..., параметр.target, параметр.args)
Дык, это получится, что поток, созданный в Remoting, будет спать, пока не отработает мой новый поток.
То есть, увода никакого не получается.
Я думал, что можно выполнение Remoting-потока перенаправить в другой поток, а Remoting-поток вернуть обратно в пул.
...
Рейтинг: 0 / 0
.NET Remoting -- 7-8 threads и всё, остальные входящие ждут очереди
    #34276375
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иванов АндрейДык, это получится, что поток, созданный в Remoting, будет спать, пока не отработает мой новый поток.
То есть, увода никакого не получается.
Да, действительно "будет спать"... но весь вопрос какой поток, если "персональный пользователя" то картина выглядит вполне приемлемо... При коннекте можно увести в отдельный поток CAO-пользовательская_сессия (аналогично, но без thread.Join()), и вот в этом "персональном" потоке и создавать новые потоки для выполнения всех методов разных серверных объектов...

Но это было в Remoting'е, есть надежда (но еще не тестировал), что в WCF все лучше на этот счет.
Кстати, "Решили сделать немного иначе и всё заработало." - в двух словах, в чем была проблема, мож тож на те же грабли наступать придется? :)
...
Рейтинг: 0 / 0
.NET Remoting -- 7-8 threads и всё, остальные входящие ждут очереди
    #34277657
LRКстати, "Решили сделать немного иначе и всё заработало." - в двух словах, в чем была проблема, мож тож на те же грабли наступать придется? :)
Секция в сэмплах стоит не та, которая надо.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / .NET Remoting -- 7-8 threads и всё, остальные входящие ждут очереди
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]