- Использование команды TRACERT для устранения неполадок TCP/IP в Windows
- Аннотация
- Дополнительная информация
- Использование служебной программы TRACERT
- Использование команды TRACERT для устранения неполадок
- Сведения о параметрах команды TRACERT
- Как сделать трассировку маршрута в Windows 7
- Программа анализа производительности dotnet-trace dotnet-trace performance analysis utility
- Установка Install
- Краткий обзор Synopsis
- Описание Description
- Параметры Options
- Команды Commands
- dotnet-trace collect dotnet-trace collect
- Краткий обзор Synopsis
- Параметры Options
- dotnet-trace convert dotnet-trace convert
- Краткий обзор Synopsis
- Аргументы Arguments
- Параметры Options
- dotnet-trace ps dotnet-trace ps
- Краткий обзор Synopsis
- dotnet-trace list-profiles dotnet-trace list-profiles
- Краткий обзор Synopsis
- Сбор трассировки с помощью dotnet-trace Collect a trace with dotnet-trace
- Запуск дочернего приложения и получение трассировки от запуска с помощью dotnet-trace Launch a child application and collect a trace from its startup using dotnet-trace
- Использование порта диагностики для сбора данных трассировки из запуска приложения Use diagnostic port to collect a trace from app startup
- Просмотр трассировки, собранной с помощью dotnet-trace View the trace captured from dotnet-trace
- Использование dotnet-trace для получения значений счетчиков за период времени Use dotnet-trace to collect counter values over time
- Использование файла RSP, чтобы не вводить длинные команды Use .rsp file to avoid typing long commands
Использование команды TRACERT для устранения неполадок TCP/IP в Windows
Microsoft Windows 2000 версия этой статьи 162326см.
Аннотация
В данной статье описывается TRACERT (Trace Route), служебная программа командной строки, который можно использовать для трассировки путь, который принимает пакет Internet Protocol (IP) до места назначения. В данной статье рассматриваются следующие вопросы:
Использование служебной программы TRACERT
Использование команды TRACERT для устранения неполадок
Сведения о параметрах команды TRACERT
Дополнительная информация
Использование служебной программы TRACERT
Диагностические программы TRACERT определяет маршрут к месту назначения, посылая эхо-сообщений протокола ICMP (Internet Control) пакетов в место назначения. В этих пакетов TRACERT использует разные значения IP Time To Live (TTL). Поскольку каждый маршрутизатор на пути обязан уменьшить значение поля TTL пакета, по крайней мере на 1 перед дальнейшей пересылкой пакета, значение TTL по сути является эффективным счетчиком переходов. Когда срок ЖИЗНИ пакетов достигает нуля (0), маршрутизатор посылает ICMP «Time Exceeded» сообщений на исходном компьютере. TRACERT отправляет первого эхо-пакета с TTL равным 1 и увеличивает значение TTL на 1 для каждого последующего отправляемого пока назначение не ответит или пока не будет достигнуто максимальное значение поля TTL. Сообщений ICMP «Time Exceeded», который промежуточные маршрутизаторы отправить назад отображается маршрут. Однако обратите внимание, что некоторые маршрутизаторы просто отбрасывать пакеты с истекшим сроком TTLs, и эти пакеты не видны для команды TRACERT. Команда TRACERT выводит упорядоченный список промежуточных маршрутизаторов, которые возвращают ICMP «Time Exceeded» сообщения. Параметр -d с помощью команды tracert программа TRACERT не требуется выполнять поиск в DNS для каждого IP-адреса, так, что команда TRACERT отображает IP-адрес ближних интерфейсов маршрутизаторов. В следующем примере команда tracert и ее результаты пакет проходит через два маршрутизатора (157.54.48.1 и 11.1.0.67), чтобы достигнуть узла 11.1.0.1. В этом примере основной шлюз — 157.54.48.1 и IP-адрес маршрутизатора в 11.1.0.0 сети находится в 11.1.0.67.The команды:
C:\>tracert 11.1.0.1В результате выполнения команды: Tracing route to 11.1.0.1 over a maximum of 30 hops ————————————————— 1 2 ms 3 ms 2 ms 157.54.48.1 2 75 ms 83 ms 88 ms 11.1.0.67 3 73 ms 79 ms 93 ms 11.1.0.1 Trace complete.
Использование команды TRACERT для устранения неполадок
TRACERT можно использовать, чтобы узнать в каком месте сети останавливаются пакеты. В следующем примере основной шлюз обнаружил, что существует не правильный путь для размещения на 22.110.0.1. Вероятно, либо маршрутизатор имеет проблемы конфигурации или 22.110.0.0 сети не существует, отражая неправильный IP-адрес. Команда:
C:\ > tracert 22.110.0.1В результате выполнения команды: Tracing route to 22.110.0.1 over a maximum of 30 hops —————————————————— 1 157.54.48.1 reports: Destination net unreachable. Trace complete. TRACERT полезна для устранения неполадок в больших сетях, где несколько путей может привести к той же точке или где задействовано множество промежуточных компонентов (мосты или маршрутизаторы).
Сведения о параметрах команды TRACERT
Существует несколько параметров командной строки, которые можно использовать с помощью команды TRACERT, несмотря на то, что параметры не являются обычно требуются для стандартных неполадок. В следующем примере синтаксис команды показывает все возможные варианты:
Tracert -d -h максЧисло -j списокУзлов — w Таймаут target_hostЧто делают параметры: -d Specifies to not resolve addresses to host names -h maximum_hops Specifies the maximum number of hops to search for the target -j host-list Specifies loose source route along the host-list -w timeout Waits the number of milliseconds specified by timeout for each reply target_host Specifies the name or IP address of the target host
Как сделать трассировку маршрута в Windows 7
Сейчас мы расскажем о том, как сделать трассировку маршрута применительно к операционной системе Windows 7. Итак, первоначально нажимаем кнопку «Пуск» и поисковой строке набираем «cmd». В результатах поиска, в верхней строке, отобразится необходимая нам программа, по ссылке которой необходимо перейти.
Теперь необходимо поработать с «черным окном», которое напоминает об операционной системе MS-DOS. Для дальнейшей работы, необходимо знать команду трассировка маршрута. Итак, запоминайте, команда трассировки маршрута: tracert.
В качестве примера, проведем трассировку до сайта Вконтаке. Для этого, необходимо набрать tracert vk.com и нажать на клавишу Enter. После завершения трассировки, можно ознакомиться с ее результатом.
Как видно из результатов трассировки, была проблема в переходе между 10 и 11 прыжками, о чем свидетельствует сообщение «Превышен интервал ожидания для запроса». Тем не менее, удалось достигнуть сайта Вконтаке за 12 прыжков. Обратите внимание, что IP-адрес сайта Вконтакте, на момент написания этих строк 87.240.143.246.
Если вам не удается, во время трассировки достигнуть сайта (при условии, что имя сайта указано верно), то тут могут быть две основные причины:
- Сайт временно недоступен;
- Проблемы у вашего провайдера.
Если, при трассировке неверно набрано имя сайта, то появится сообщение: «Не удается разрешить системное имя узла …»
Программа анализа производительности dotnet-trace dotnet-trace performance analysis utility
Эта статья относится к следующему. ✔️ SDK для .NET Core 3.0 и более поздних версий This article applies to: ✔️ .NET Core 3.0 SDK and later versions
Установка Install
Есть два способа загрузки и установки dotnet-trace : There are two ways to download and install dotnet-trace :
Средство dotnet global: dotnet global tool:
Чтобы установить последнюю версию пакета NuGet dotnet-trace , используйте команду dotnet tool install. To install the latest release version of the dotnet-trace NuGet package, use the dotnet tool install command:
Прямое скачивание: Direct download:
скачайте исполняемый файл средства, соответствующий вашей платформе: Download the tool executable that matches your platform:
OS OS | Платформа Platform |
---|---|
Windows Windows | x86 | x64 | arm | arm-x64x86 | x64 | arm | arm-x64 |
macOS macOS | x64 x64 |
Linux Linux | x64 | arm | arm64 | musl-x64 | musl-arm64x64 | arm | arm64 | musl-x64 | musl-arm64 |
Для использования dotnet-trace в приложении x86 необходима соответствующая версия средства для архитектуры x86. To use dotnet-trace on an x86 app, you need a corresponding x86 version of the tool.
Краткий обзор Synopsis
Описание Description
Программа dotnet-trace — The dotnet-trace tool:
- это кроссплатформенное средство .NET Core. Is a cross-platform .NET Core tool.
- Выполняет сбор трассировок .NET Core для запущенного процесса без встроенного профилировщика. Enables the collection of .NET Core traces of a running process without a native profiler.
- Построен на EventPipe среды выполнения .NET Core. Is built on EventPipe of the .NET Core runtime.
- Предоставляет одинаковые возможности в Windows, Linux и macOS. Delivers the same experience on Windows, Linux, or macOS.
Параметры Options
-h|—help
Отображение справки в командной строке. Shows command-line help.
—version
Отображение версии служебной программы dotnet-trace. Displays the version of the dotnet-trace utility.
Команды Commands
dotnet-trace collect dotnet-trace collect
Собирает диагностическую трассировку для выполняющегося процесса. Collects a diagnostic trace from a running process.
Краткий обзор Synopsis
Параметры Options
—buffersize
Задает размер кольцевого буфера в памяти (в мегабайтах). Sets the size of the in-memory circular buffer, in megabytes. По умолчанию используется значение 256 МБ. Default 256 MB.
Если для целевого процесса события записываются слишком часто, это может привести к переполнению буфера и удалению некоторых событий. If the target process writes events too frequently, it can overflow this buffer and some events might be dropped. Если удаляется слишком много событий, увеличьте размер буфера и посмотрите, уменьшается ли число удаленных событий. If too many events are getting dropped, increase the buffer size to see if the number of dropped events reduces. Если не уменьшается, причиной может быть медленная работа средства чтения, из-за чего целевой буфер процесса не освобождается. If the number of dropped events does not decrease with a larger buffer size, it may be due to a slow reader preventing the target process’ buffers from being flushed.
—clreventlevel
Уровень детализации создаваемых событий среды выполнения. Verbosity of CLR events to be emitted.
—clrevents
Список ключевых слов поставщика среды выполнения CLR, которые должны быть разделены знаками + . A list of CLR runtime provider keywords to enable separated by + signs. Это простое сопоставление, позволяющее указывать ключевые слова событий посредством псевдонимов строк, а не их шестнадцатеричных значений. This is a simple mapping that lets you specify event keywords via string aliases rather than their hex values. Например, dotnet-trace collect —providers Microsoft-Windows-DotNETRuntime:3:4 запрашивает тот же набор событий, что и dotnet-trace collect —clrevents gc+gchandle —clreventlevel informational . For example, dotnet-trace collect —providers Microsoft-Windows-DotNETRuntime:3:4 requests the same set of events as dotnet-trace collect —clrevents gc+gchandle —clreventlevel informational . В таблице ниже приведен список доступных ключевых слов. The table below shows the list of available keywords:
Псевдоним строки ключевого слова Keyword String Alias | Шестнадцатеричное значение ключевого слова Keyword Hex Value |
---|---|
gc | 0x1 |
gchandle | 0x2 |
fusion | 0x4 |
loader | 0x8 |
jit | 0x10 |
ngen | 0x20 |
startenumeration | 0x40 |
endenumeration | 0x80 |
security | 0x400 |
appdomainresourcemanagement | 0x800 |
jittracing | 0x1000 |
interop | 0x2000 |
contention | 0x4000 |
exception | 0x8000 |
threading | 0x10000 |
jittedmethodiltonativemap | 0x20000 |
overrideandsuppressngenevents | 0x40000 |
type | 0x80000 |
gcheapdump | 0x100000 |
gcsampledobjectallocationhigh | 0x200000 |
gcheapsurvivalandmovement | 0x400000 |
gcheapcollect | 0x800000 |
gcheapandtypenames | 0x1000000 |
gcsampledobjectallocationlow | 0x2000000 |
perftrack | 0x20000000 |
stack | 0x40000000 |
threadtransfer | 0x80000000 |
debugger | 0x100000000 |
monitoring | 0x200000000 |
codesymbols | 0x400000000 |
eventsource | 0x800000000 |
compilation | 0x1000000000 |
compilationdiagnostic | 0x2000000000 |
methoddiagnostic | 0x4000000000 |
typediagnostic | 0x8000000000 |
Дополнительные сведения о поставщике CLR см. в справочной документации по поставщику среды выполнения .NET. You can read about the CLR provider more in detail on the .NET runtime provider reference documentation.
Задает формат выходных данных для преобразования файла трассировки. Sets the output format for the trace file conversion. Значение по умолчанию — NetTrace . The default is NetTrace .
-n, —name
Имя процесса, из которого нужно получить трассировку. The name of the process to collect the trace from.
Имя создаваемого порта диагностики. The name of the diagnostic port to create. О том, как использовать этот параметр для сбора данных трассировки из запуска приложения, см. в разделе Использование порта диагностики для сбора данных трассировки из запуска приложения. See Use diagnostic port to collect a trace from app startup to learn how to use this option to collect a trace from app startup.
Выходной путь для собранных данных трассировки. The output path for the collected trace data. Если это значение не указано, по умолчанию используется trace.nettrace . If not specified, it defaults to trace.nettrace .
Идентификатор процесса, из которого нужно получить трассировку. The process ID to collect the trace from.
Заранее определенный именованный набор конфигураций поставщиков, который позволяет кратко указывать типичные сценарии трассировки. A named pre-defined set of provider configurations that allows common tracing scenarios to be specified succinctly. Доступны следующие профили. The following profiles are available:
Профиль Profile | Описание Description |
---|---|
cpu-sampling | Подходит для отслеживания загрузки ЦП и общих сведений среды выполнения .NET. Useful for tracking CPU usage and general .NET runtime information. Этот вариант используется по умолчанию, если другой профиль или поставщики не указаны. This is the default option if no profile or providers are specified. |
gc-verbose | Отслеживает коллекции GC и распределения объектов samples. Tracks GC collections and samples object allocations. |
gc-collect | Отслеживает коллекции GC только при очень низких издержках. Tracks GC collections only at very low overhead. |
- Provider[,Provider]
- Provider имеет формат KnownProviderName[:Flags[:Level][:KeyValueArgs]] ; Provider is in the form: KnownProviderName[:Flags[:Level][:KeyValueArgs]] .
- KeyValueArgs имеет формат Trace program c windows[;key2=value2] . KeyValueArgs is in the form: Trace program c windows[;key2=value2] .
- В Windows его можно получить, например, через диспетчер задач или с помощью команды tasklist . On Windows, you can use Task Manager or the tasklist command, for example.
- В Linux можно использовать, например, команду ps . On Linux, for example, the ps command.
- dotnet-trace ps dotnet-trace ps
- использовать EventCounter для простого мониторинга работоспособности в средах с высокой чувствительностью к производительности, Use EventCounter for basic health monitoring in performance-sensitive environments. например рабочих; For example, in production.
- собирать трассировки, чтобы их не нужно было просматривать в режиме реального времени. Collect traces so they don’t need to be viewed in real time.
Список применяемых поставщиков EventPipe , разделенный запятыми. A comma-separated list of EventPipe providers to be enabled. Поставщики из этого списка применяются в дополнение к тем, которые подразумеваются в —profile
. These providers supplement any providers implied by —profile
. При наличии несогласованности по конкретному поставщику указанная здесь конфигурация имеет приоритет над неявной конфигурацией из профиля. If there’s any inconsistency for a particular provider, this configuration takes precedence over the implicit configuration from the profile.
Список поставщиков предоставляется в следующем формате: This list of providers is in the form:
Дополнительные сведения о некоторых известных поставщиках в .NET см. в статье Стандартные поставщики событий в .NET. To learn more about some of the well-known providers in .NET, refer to Well-known Event Providers.
— (только для целевых приложений, использующих .NET 5.0) — (for target applications running .NET 5.0 only)
После параметров конфигурации коллекции пользователь может добавить — , а затем команду для запуска приложения .NET с помощью среды выполнения версии не ниже 5.0. After the collection configuration parameters, the user can append — followed by a command to start a .NET application with at least a 5.0 runtime. Это может быть полезно при диагностике проблем, происходящих на ранних этапах процесса, таких как проблема с производительностью при запуске или ошибки загрузчика и модуля привязки. This may be helpful when diagnosing issues that happen early in the process, such as startup performance issue or assembly loader and binder errors.
При использовании этого параметра выполняется мониторинг первого процесса .NET 5.0, который передает результаты обратно в средство. Это означает, что если команда запускает несколько приложений .NET, данные будут собираться только о первом приложении. Using this option monitors the first .NET 5.0 process that communicates back to the tool, which means if your command launches multiple .NET applications, it will only collect the first app. Поэтому рекомендуется использовать этот параметр для автономных приложений или с помощью параметра dotnet exec . Therefore, it is recommended you use this option on self-contained applications, or using the dotnet exec option.
Для больших приложений остановка трассировки может занять много времени (до нескольких минут). Stopping the trace may take a long time (up to minutes) for large applications. Среде выполнения необходимо передать кэш типов для всего управляемого кода, захваченного при трассировке. The runtime needs to send over the type cache for all managed code that was captured in the trace.
В Linux и macOS эта команда ожидает, что целевое приложение и dotnet-trace будут совместно использовать одну и ту же переменную среды TMPDIR . On Linux and macOS, this command expects the target application and dotnet-trace to share the same TMPDIR environment variable. В противном случае время ожидания команды истечет. Otherwise, the command will time out.
Чтобы получить трассировку с помощью dotnet-trace , ее необходимо запустить от имени пользователя, запустившего целевой процесс, или от имени привилегированного пользователя. To collect a trace using dotnet-trace , it needs to be run as the same user as the user running target process or as root. В противном случае средство не сможет установить соединение с целевым процессом. Otherwise, the tool will fail to establish a connection with the target process.
Если появится сообщение об ошибке, подобное сообщению [ERROR] System.ComponentModel.Win32Exception (299): A 32 bit processes cannot access modules of a 64 bit process. , вы пытаетесь использовать средство dotnet-trace , разрядность которого не соответствует требуемой целевым процессом. If you see an error message similar to the following one: [ERROR] System.ComponentModel.Win32Exception (299): A 32 bit processes cannot access modules of a 64 bit process. , you are trying to use dotnet-trace that has mismatched bitness against the target process. Скачайте средство с соответствующей разрядностью по ссылке, приведенной в разделе Установка. Make sure to download the correct bitness of the tool in the install link.
dotnet-trace convert dotnet-trace convert
Преобразует трассировки nettrace в альтернативные форматы для использования с другими средствами анализа трассировок. Converts nettrace traces to alternate formats for use with alternate trace analysis tools.
Краткий обзор Synopsis
Аргументы Arguments
Исходный файл трассировки для преобразования. Input trace file to be converted. По умолчанию используется значение trace.nettrace. Defaults to trace.nettrace.
Параметры Options
—format
Задает формат выходных данных для преобразования файла трассировки. Sets the output format for the trace file conversion.
-o|—output
Имя файла выходных данных. Output filename. К нему добавляется расширение целевого формата. Extension of target format will be added.
Преобразование файлов nettrace в файлы chromium или speedscope является необратимым. Converting nettrace files to chromium or speedscope files is irreversible. Файлы speedscope и chromium не содержат всей информации, необходимой для воссоздания nettrace файлов. speedscope and chromium files don’t have all the information necessary to reconstruct nettrace files. Однако команда convert сохраняет исходный файл nettrace , поэтому не удаляйте этот файл, если вы планируете открывать его в будущем. However, the convert command preserves the original nettrace file, so don’t delete this file if you plan to open it in the future.
dotnet-trace ps dotnet-trace ps
Список процессов dotnet, из которых можно получить трассировку. Lists the dotnet processes that traces can be collected from.
Краткий обзор Synopsis
dotnet-trace list-profiles dotnet-trace list-profiles
Список предварительно созданных профилей трассировки с перечислением поставщиков и фильтров в каждом профиле. Lists pre-built tracing profiles with a description of what providers and filters are in each profile.
Краткий обзор Synopsis
Сбор трассировки с помощью dotnet-trace Collect a trace with dotnet-trace
Для сбора трассировок с помощью dotnet-trace выполните указанные ниже действия. To collect traces using dotnet-trace :
Получите идентификатор процесса (PID) для трассируемого приложения .NET Core. Get the process identifier (PID) of the .NET Core application to collect traces from.
Выполните следующую команду: Run the following command:
Приведенная выше команда создает выходные данные наподобие следующих: The preceding command generates output similar to the following:
Чтобы остановить сбор, нажмите клавишу . Stop collection by pressing the key. dotnet-trace завершит запись событий в файл trace.nettrace. dotnet-trace will finish logging events to the trace.nettrace file.
Запуск дочернего приложения и получение трассировки от запуска с помощью dotnet-trace Launch a child application and collect a trace from its startup using dotnet-trace
Это работает только для приложений, использующих .NET 5.0 или более поздней версии. This works for apps running .NET 5.0 or later only.
Иногда бывает полезно получить трассировку процесса от запуска. Sometimes it may be useful to collect a trace of a process from its startup. Для приложений, использующих .NET 5.0 или более поздней версии, это можно сделать с помощью dotnet-trace. For apps running .NET 5.0 or later, it is possible to do this by using dotnet-trace.
Это приведет к запуску hello.exe с arg1 и arg2 в качестве аргументов командной строки и сбору трассировки при запуске среды выполнения: This will launch hello.exe with arg1 and arg2 as its command-line arguments and collect a trace from its runtime startup:
Приведенная выше команда создает выходные данные наподобие следующих: The preceding command generates output similar to the following:
Вы можете отключить сбор данных трассировки, нажав клавишу или . You can stop collecting the trace by pressing or key. Это также приведет к выходу из hello.exe . Doing this will also exit hello.exe .
При запуске hello.exe с помощью dotnet-trace выполняется перенаправление входных и выходных данных, и вы не сможете взаимодействовать со стандартным stdin/stdout. Launching hello.exe via dotnet-trace will make its input/output to be redirected and you won’t be able to interact with its stdin/stdout. Выход из средства с помощью клавиш CTRL+C или SIGTERM приведет к безопасному завершению работы средства и дочернего процесса. Exiting the tool via CTRL+C or SIGTERM will safely end both the tool and the child process. Если дочерний процесс завершает работу до средства, средство также завершит работу, а трассировка будет доступна для безопасного просмотра. If the child process exits before the tool, the tool will exit as well and the trace should be safely viewable.
Использование порта диагностики для сбора данных трассировки из запуска приложения Use diagnostic port to collect a trace from app startup
Это работает только для приложений, использующих .NET 5.0 или более поздней версии. This works for apps running .NET 5.0 or later only.
Порт диагностики — это новый компонент среды выполнения, который появился в .NET 5. Он позволяет запускать трассировку из запуска приложения. Diagnostic port is a new runtime feature that was added in .NET 5 that allows you to start tracing from app startup. Чтобы сделать это с помощью dotnet-trace , можно использовать либо dotnet-trace collect — , как показано в приведенных выше примерах, либо параметр —diagnostic-port . To do this using dotnet-trace , you can either use dotnet-trace collect — as described in the examples above, or use the —diagnostic-port option.
Использование dotnet-trace — для запуска приложения в качестве дочернего процесса — самый простой способ быстрой трассировки приложения с момента запуска. Using dotnet-trace — to launch the application as a child process is the simplest way to quickly trace it from its startup.
Однако если требуется более точное управление временем трассировки приложения (например, отслеживать приложение только в течение первых 10 минут, а затем продолжать выполнение), или если необходимо взаимодействовать с приложением их интерфейса командной строки, используйте параметр —diagnostic-port , который позволяет управлять как отслеживаемым целевым приложением, так и dotnet-trace . However, when you want to gain a finer control over the lifetime of the app being traced (for example, monitor the app for the first 10 minutes only and continue executing) or if you need to interact with the app using the CLI, using —diagnostic-port option allows you to control both the target app being monitored and dotnet-trace .
Следующая команда заставляет dotnet-trace создать сокет диагностики с именем myport.sock и ожидать соединения. The command below makes dotnet-trace create a diagnostics socket named myport.sock and wait for a connection.
Выходные данные: Output:
В отдельной консоли запустите целевое приложение с переменной среды DOTNET_DiagnosticPorts , для которой задано значение в выходных данных dotnet-trace . In a separate console, launch the target application with the environment variable DOTNET_DiagnosticPorts set to the value in the dotnet-trace output.
Это должно позволить dotnet-trace начать трассировку my-dotnet-app : This should then enable dotnet-trace to start tracing my-dotnet-app :
Запуск приложения с помощью dotnet run может привести к проблемам: интерфейс командной строки dotnet может порождать множество дочерних процессов, которые не являются вашим приложением, и они могут подключаться к dotnet-trace до приложения, в результате чего ваше приложение будет приостановлено во время выполнения. Launching your app with dotnet run can be problematic because the dotnet CLI may spawn many child processes that are not your app and they can connect to dotnet-trace before your app, leaving your app to be suspended at runtime. Рекомендуется использовать автономную версию приложения или запускать его с помощью dotnet exec . It is recommended you directly use a self-contained version of the app or use dotnet exec to launch the application.
Просмотр трассировки, собранной с помощью dotnet-trace View the trace captured from dotnet-trace
В Windows файлы NETTRACE можно просматривать и анализировать в PerfView. Если трассировка была собрана на другой платформе, ее файл можно переместить на компьютер с Windows для просмотра в PerfView. On Windows, .nettrace files can be viewed on PerfView for analysis: For traces collected on other platforms, the trace file can be moved to a Windows machine to be viewed on PerfView.
В Linux трассировку можно просмотреть, изменив формат выходных данных с dotnet-trace на speedscope . On Linux, the trace can be viewed by changing the output format of dotnet-trace to speedscope . Чтобы изменить формат выходного файла, укажите параметр -f|—format . При значении -f speedscope программа dotnet-trace создаст файл speedscope . The output file format can be changed using the -f|—format option — -f speedscope will make dotnet-trace produce a speedscope file. Вы можете выбрать варианты nettrace (по умолчанию) или speedscope . You can choose between nettrace (the default option) and speedscope . Файлы Speedscope можно открывать с помощью https://www.speedscope.app. Speedscope files can be opened at https://www.speedscope.app.
Среда выполнения .NET Core создает трассировки в формате nettrace . The .NET Core runtime generates traces in the nettrace format. В формат speedscope (если требуется) они преобразуются уже после завершения трассировки. The traces are converted to speedscope (if specified) after the trace is completed. Так как некоторые преобразования приводят к потере данных, исходный файл nettrace сохраняется рядом с преобразованным файлом. Since some conversions may result in loss of data, the original nettrace file is preserved next to the converted file.
Использование dotnet-trace для получения значений счетчиков за период времени Use dotnet-trace to collect counter values over time
Программа dotnet-trace позволяет выполнять следующие задачи: dotnet-trace can:
Например, если вам нужны значения счетчика производительности из среды выполнения, используйте следующую команду: For example, to collect runtime performance counter values, use the following command:
Эта команда означает, что счетчики среды выполнения будут отслеживаться каждую секунду, то есть реализует не требовательную к ресурсам схему мониторинга работоспособности. The preceding command tells the runtime counters to report once every second for lightweight health monitoring. Заменив EventCounterIntervalSec=1 большим значением (например, 60), вы получите трассировку данных счетчиков меньшего объема и с меньшим уровнем детализации. Replacing EventCounterIntervalSec=1 with a higher value (for example, 60) allows collection of a smaller trace with less granularity in the counter data.
Следующая команда сокращает накладные расходы и размер трассировки сильнее, чем предыдущая: The following command reduces overhead and trace size more than the preceding one:
Эта команда отключает события среды выполнения и профилировщик управляемого стека. The preceding command disables runtime events and the managed stack profiler.
Использование файла RSP, чтобы не вводить длинные команды Use .rsp file to avoid typing long commands
Можно запустить команду dotnet-trace с файлом .rsp , содержащим аргументы для передачи. You can launch dotnet-trace with an .rsp file that contains the arguments to pass. Это может быть полезно при включении поставщиков, для которых требуются длинные аргументы, или при использовании среды оболочки, которая обрезает символы. This can be useful when enabling providers that expect lengthy arguments or when using a shell environment that strips characters.
Ниже приведен пример поставщика, команда трассировки которого слишком громоздка, чтобы каждый раз набирать ее вручную. For example, the following provider can be cumbersome to type out each time you want to trace:
Кроме того, в предыдущем примере аргумент содержит символ » . In addition, the previous example contains » as part of the argument. Так как кавычки в каждой оболочке обрабатываются по-разному, могут возникать различные проблемы. Because quotes are not handled equally by each shell, you may experience various issues when using different shells. Например, команда в zsh будет отличаться от команды в cmd . For example, the command to enter in zsh is different to the command in cmd .