У меня есть веб-служба .net Core, которая, кажется, постепенно увеличивает использование процессора. это означает, что в первый день он не превысит 10%, во второй день может подняться до 20% и так далее.
Используя команду TOP
в Linux, все мои веб-службы, кажется, когда-нибудь отображаются там (возможно, когда делается запрос), а затем исчезают. Этот конкретный процесс после некоторого запуска просто остается там, постоянно потребляя процессор, даже если не было сделано никаких запросов.
API все еще работает нормально, похоже, что есть некоторые потоки, которые просто продолжают зависать и потреблять процессор. В прошлый раз, когда я проверил, у меня было 5 потоков, которые потребляли 3-4% процессора и по какой-то причине не умерли. Я предполагаю, что в каком-то конкретном сценарии поток просто остается в живых, потребляя процессор.
Приложение работает на машине ubuntu, моим первым шагом была попытка создать файл дампа с помощью ProcDump, чтобы я мог проанализировать эти потоки и, возможно, найти, где они зависают. ProcDump генерирует огромный файл размером 21 ГБ, который при попытке анализа с помощью lldb выдает исключение из памяти. даже попытался перенести его на машину с Windows для отладки с помощью windbg, никакой помощи там не было, так как он не мог открыть файл.
Поскольку нет конкретного исключения или чего-то еще, я не могу поделиться каким-либо фрагментом кода, поскольку я понятия не имею, в чем проблема ... просто надеетесь на какое-то предложение, которое может помочь мне найти решение или, по крайней мере, понять, где проблема в.
Большое спасибо за чтение, ура