NOTES_OF_PROGRAMMER Telegram 481
Возвращаясь к теме профайлинга в контейнерах.

На днях мне эти инструменты - а конкретно dotnet-trace и dotnet-counters - помогли выяснить, что перф просирается в контейнере по причине перекомпиляции EF запроса при каждом вызове. Простой вынос его в EF.CompiledQuery снизил утилизацию проца почти в 8 раз. Да, этот запрос вызывался много раз в секунду, но я первый раз такое вижу, чтобы оно ТАК влияло.

В любой контейнер эти инструменты ставятся очень просто. У меня на данный момент контейнеры собираются на базе mcr.microsoft.com/dotnet/aspnet:8.0.2-alpine3.19 и там надо

apk add dotnet7-sdk
dotnet tool install --global dotnet-trace
dotnet tool install --global dotnet-counters
...


Потом снимаешь трейсы с помощью dotnet-trace, выносишь из контейнера (с помощью docker cp) и рассматриваешь их с помощью Jetbrains dotTrace (два чая этим господам, исключительно удобная штука для рассматривания следов преступления под лупой)

PS Не забудьте убедица, что в вашем dockerfile НЕТ этой строки:

ENV DOTNET_EnableDiagnostics=0


потому что у меня она изначально была и инструменты соответственно не работали - просто не видился процесс :))
👍11🔥61



tgoop.com/notes_of_programmer/481
Create:
Last Update:

Возвращаясь к теме профайлинга в контейнерах.

На днях мне эти инструменты - а конкретно dotnet-trace и dotnet-counters - помогли выяснить, что перф просирается в контейнере по причине перекомпиляции EF запроса при каждом вызове. Простой вынос его в EF.CompiledQuery снизил утилизацию проца почти в 8 раз. Да, этот запрос вызывался много раз в секунду, но я первый раз такое вижу, чтобы оно ТАК влияло.

В любой контейнер эти инструменты ставятся очень просто. У меня на данный момент контейнеры собираются на базе mcr.microsoft.com/dotnet/aspnet:8.0.2-alpine3.19 и там надо

apk add dotnet7-sdk
dotnet tool install --global dotnet-trace
dotnet tool install --global dotnet-counters
...


Потом снимаешь трейсы с помощью dotnet-trace, выносишь из контейнера (с помощью docker cp) и рассматриваешь их с помощью Jetbrains dotTrace (два чая этим господам, исключительно удобная штука для рассматривания следов преступления под лупой)

PS Не забудьте убедица, что в вашем dockerfile НЕТ этой строки:

ENV DOTNET_EnableDiagnostics=0


потому что у меня она изначально была и инструменты соответственно не работали - просто не видился процесс :))

BY 📓 Записки программера


Share with your friend now:
tgoop.com/notes_of_programmer/481

View MORE
Open in Telegram


Telegram News

Date: |

The administrator of a telegram group, "Suck Channel," was sentenced to six years and six months in prison for seven counts of incitement yesterday. bank east asia october 20 kowloon The court said the defendant had also incited people to commit public nuisance, with messages calling on them to take part in rallies and demonstrations including at Hong Kong International Airport, to block roads and to paralyse the public transportation system. Various forms of protest promoted on the messaging platform included general strikes, lunchtime protests and silent sit-ins. When choosing the right name for your Telegram channel, use the language of your target audience. The name must sum up the essence of your channel in 1-3 words. If you’re planning to expand your Telegram audience, it makes sense to incorporate keywords into your name. Telegram channels enable users to broadcast messages to multiple users simultaneously. Like on social media, users need to subscribe to your channel to get access to your content published by one or more administrators.
from us


Telegram 📓 Записки программера
FROM American