Size: a a a

2020 December 18

LU

Lars Ulrich in pro.net
Ilya Chernoudov
Aspnet? Или как?
чтоб меньше дергать стороннее апи (хотя это и есть основная работа приложения), есть пару подписок на сокет этого апи, которые организованы через сервис вебсокетов pusher.com
источник

LU

Lars Ulrich in pro.net
Ilya Chernoudov
Aspnet? Или как?
ну мое приложение - да. и клиентская библиотека к сокетам этого пушера синхронная
источник

k

karb0f0s in pro.net
фабрика вроде как должна держать пул клиентов и время от времени их убивать и пересоздавать снова. а для контроля времени жизни скорее всего под капотом использует таймеры, а резкий рост CPU обычно связан с большим числом этих таймеров. т.е. косвенно клиенты не убиваются и все процессорное время начинает тратится на срабатывание таймеров и поиск кого-бы безуспешно прибить
источник

IC

Ilya Chernoudov in pro.net
Lars Ulrich
ну мое приложение - да. и клиентская библиотека к сокетам этого пушера синхронная
Есть вероятность, что это оно
источник

IC

Ilya Chernoudov in pro.net
Lars Ulrich
ну мое приложение - да. и клиентская библиотека к сокетам этого пушера синхронная
А оно на винде или на линуксе?
источник

LU

Lars Ulrich in pro.net
Ilya Chernoudov
А оно на винде или на линуксе?
на линуксе
источник

IC

Ilya Chernoudov in pro.net
Lars Ulrich
А можете дать коммент по поводу IHttpClientFactory плиз?  Есть синглтон, в который заинжекчен typed client. Этот клиент постоянно дергает апи стороннего сервиса, в среднем получается порядка 2-3 запроса в секунду. Все работает ок первые часов 12-15, а потом начинаются пляски с процом, многие запросы отпадают по тайм-ауту, хотя апи живо. Лечат все ребутом, никто не может разобраться,  в чем соль, я предлагаю отказаться от фабрики для тестов, но в таком случае стреляет tcp connections exhaustion, поэтому пришли к фабрике, но не умеют ее готовить. Так вот: правильно ли я понимаю, что есть смысл инжектить саму фабрику, и создавать там клиент под каждый запрос?
Может быть зависают ещё полу открытые соединения? Можно попробовать тайм-аут коннекшена сильно уменьшить
источник

LU

Lars Ulrich in pro.net
karb0f0s
фабрика вроде как должна держать пул клиентов и время от времени их убивать и пересоздавать снова. а для контроля времени жизни скорее всего под капотом использует таймеры, а резкий рост CPU обычно связан с большим числом этих таймеров. т.е. косвенно клиенты не убиваются и все процессорное время начинает тратится на срабатывание таймеров и поиск кого-бы безуспешно прибить
но по логике вещей там на старте клиент как создан, так и все, фабрика его отдала синглтону, и он же за новым клиентом опять  не приходит
источник

LU

Lars Ulrich in pro.net
Ilya Chernoudov
Может быть зависают ещё полу открытые соединения? Можно попробовать тайм-аут коннекшена сильно уменьшить
таймаут хттп клиента в 3 секунды стоит, там уже точно инфа неактуальная будет
источник

IC

Ilya Chernoudov in pro.net
Lars Ulrich
таймаут хттп клиента в 3 секунды стоит, там уже точно инфа неактуальная будет
Не, я имею ввиду таймаут тсп коннекшенов, которые кешируются
источник

IC

Ilya Chernoudov in pro.net
А не запросов
источник

AH

Ayrat Hudaygulov in pro.net
Lars Ulrich
так в том и дело, что на тестах на локалке все ок. и в проде ок работает до поры до времени, неясно откуда ноги. вот я предположил неправильное использование хттп клиента, так как он основную нагрузку и генерит. если подскажете, как правильно запрофайлить ажуровский линух веб апп, буду благодарен, а то ничего внятного пока не нашел, я еще не настоящий сварщик
если апп инсайт подключен, можно профайлер подрубить, т.к. аппинсайт все снимает
источник

LU

Lars Ulrich in pro.net
Ilya Chernoudov
Не, я имею ввиду таймаут тсп коннекшенов, которые кешируются
речь про тсп коннекшены, открытые сокет клиентом? тут надо клиентскую библиотеку поковырять. или я что-то не усек?
источник

LU

Lars Ulrich in pro.net
Ayrat Hudaygulov
если апп инсайт подключен, можно профайлер подрубить, т.к. аппинсайт все снимает
ажура пока не умеет в линуховые аппки апп инсайт совать
источник

DP

Denis Petukhov in pro.net
Ilya Chernoudov
Да, но дети это не клиенты, а хендлеры
Получается фабрика подменяет ссылку на текущий хэндлер? Не бред ли?
источник

AH

Ayrat Hudaygulov in pro.net
Lars Ulrich
ажура пока не умеет в линуховые аппки апп инсайт совать
тогда колхозить через дотнет-монитор
источник

IC

Ilya Chernoudov in pro.net
Lars Ulrich
речь про тсп коннекшены, открытые сокет клиентом? тут надо клиентскую библиотеку поковырять. или я что-то не усек?
//Set 5 min as the lifetime for the HttpMessageHandler objects in the pool used for the Catalog Typed Client
services.AddHttpClient<ICatalogService, CatalogService>()
   .SetHandlerLifetime(TimeSpan.FromMinutes(5));
источник

IC

Ilya Chernoudov in pro.net
Использование IHttpClientFactory для реализации устойчивых HTTP-запросов | Microsoft Docs
https://docs.microsoft.com/ru-ru/dotnet/architecture/microservices/implement-resilient-applications/use-httpclientfactory-to-implement-resilient-http-requests
источник

LU

Lars Ulrich in pro.net
Ayrat Hudaygulov
тогда колхозить через дотнет-монитор
оно там под капотом через докер контейнер работает. в принципе да, можно по ссш туда сунуться и наколхозить. я правильно уловил направление мысли?
источник

AH

Ayrat Hudaygulov in pro.net
Lars Ulrich
оно там под капотом через докер контейнер работает. в принципе да, можно по ссш туда сунуться и наколхозить. я правильно уловил направление мысли?
можно в том же контейнере запустить дотнет-монитор, он будет аутпут в стдаут отдавать
источник