170 похожих чатов

Есть WCF-сервис. У него в одном endpoint’е всего две строчки

- логирование и асинхронный запуск таска Task.Run() без ожидания результата. Под нагрузкой этот endpoint работает 7 секунд. Я правильно понимаю, что это означает, что забивается .Net Thread Pool?

2 ответов

14 просмотров

О, а вот это интересно! Да, вероятно, что тредпул забит, и поэтому запуск новой таски подтупливает. Но чтобы настолько сильно… странно это всё. Я бы советовал попрофилировать.

Valeriy-Osipov Автор вопроса
Dr. Friedrich von Never
О, а вот это интересно! Да, вероятно, что тредпул ...

А что значит "забит" ThreadPool? То есть, количество потоков в ThreadPool достигло максимального значения? Значение максимального количества потоков в ThreadPool на тестируемом сервере 32767. Я сомневаюсь, что создается столько потоков. Если смотреть на количество потоков через Task Manager, то оно порядка 200+. И тут у меня возникает полнейшее непонимание - что такое вообще Thread в .NET? Является ли .NET Thread оберткой над системным потоком (unmanaged thread)? Или Managed thread с системными потоками слабо связан? Настоящие системные потоки не могут существовать без выполняемого в них кода. Как только код в потоке заканчивает свое выполнение поток завершается. А управляемыке потоки в ThreadPool молучается - это просто объекты, которые могут существовать и без выполняемого в них кода? То есть, ThreadPool - это что-то типа DI-контейнера? А причина торможения я думаю не в "забитии" ThreadPool, а в том, что потоки, которые в этом ThreadPool в основном блокирующие. А ThreadPool создает новые потоки не моментально, а с задержкой (по моему, 500мс). И при быстром запросе большого количества потоков в принципе может возникать задержка. А профилировать я пытался. Пытался использовать dotTrace portable. У него есть несколько режимов профилирования. Мне нужен Timeline profile. И этот Timeline profile почему-то на этом сервере не заработал. Работает только Sample profile

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта