オペアンプや計装アンプを備えた基板の配線に関するちょっとした秘密。 列フィルタの設定

04.04.2019 ゲーム

今日はあなたに伝えます サイトへの追跡方法、つまり コマンドラインでコマンドを実行する ウィンドウライン。 なぜこれが必要なのでしょうか?
トレースは通常、技術者がネットワークの問題を特定するために使用します。 たとえば、突然、何の理由もなく、ブラウザの特定のサイトが開かなくなったり、開くのが非常に遅くなったりします。 この問題をインターネット プロバイダーのフォーラムに報告します。 そこでほぼ確実にすぐに質問されるでしょう このサイトへのトレースを作成するそして結果を投稿します。

トレースはコマンドを使用して実行されます。 このコマンドはを使用すると、サイトが配置されているサーバーへのリクエストのパスを見つけて、ルートのどの時点で送信に問題があるかを特定できます。

このトレースはどのように行うのでしょうか?

コンピュータで、「スタート」-「ファイル名を指定して実行」の順に移動します(またはキーボードのキーを同時に押します) 勝利+R)。 チームの募集 cmdそして、「OK」をクリックします。 開いた黒いウィンドウに、コマンドと、関心のあるサイトの名前をスペースで区切って記述します (サイト名の代わりに、その IP アドレスを使用できます)。
この後、 キーを押します 入力キーボードで。

コマンドを使用して、特定の受信者 (サイト) へのデータ パケットの送信を開始します。 送信されたパケットは、コンピュータと受信者間のすべての中間ノード (通常は、サイトの場所に応じて、異なるプロバイダーのルーター) を通過します。 したがって、トレースを使用すると、必要なサイトまたは IP へのルートが決定され、各中間ノードの応答時間がミリ秒単位で決定されます。 応答時間が短いほど、ルートのこの部分でのパケットの送信が速くなります (つまり、データは干渉なしで通過します)。

トレース プロセス中にいずれかの行にアスタリスクが表示された場合、これはリクエストの待機間隔が超過したことを意味し、これはルートのこのセクションでパケットが損失したことに相当します。 それらの。 チェーンのこの時点で問題が発生しています。 パケットがプロバイダーのネットワークを越えない場合、問題はそこにあります。

ご覧のとおり、私の場合、トレースは遠くまで進みませんでした。プロバイダーの機器のどこかで停止が発生しました。

おそらく、受信したデータをプロバイダーのフォーラムに提供する必要があるでしょう。 このウィンドウのスクリーンショットを撮るだけでも構いませんが、このデータをテキストとしてコピーすることをお勧めします。 これを行うには、このウィンドウ内で右クリックし、「すべて選択」を選択します。
次にキーを押します 入力キーボードで。 これで、すべてのテキストがクリップボードに保存されました。任意の場所に貼り付けることができます。 テキストエディタまたは、フォーラムに即座に応答します (マウスの右ボタンをクリックして [貼り付け] をクリックするか、Ctrl + V を押します)。

ルート トレース プログラムは、インターネットまたはローカル ネットワーク上のパス、およびコンピュータとリモート サーバー間の通信に必要な時間を決定するために使用されます。 通常、トレースは、ネットワーク上のパフォーマンスの問題を特定するために技術者によって使用されます。 でも時々 一般ユーザーこれらを使用して、リモート サイトの位置と、リモート サイト間を移動するパス全体を決定します。

通常、オペレーティング システムには、そのようなプログラムのコンソール バージョンが含まれています。 標準パッケージシステム。 たとえば、Windows には 特別なユーティリティトレーサート。 実行するには、コンソールを開いて「tracert」コマンドを入力する必要があります。 パラメータを指定せずに起動すると、次の画面が表示されます。 小さなマニュアルプログラムの操作について。 ただし、このようなユーティリティの機能は通常、基本に近く、追加の機能は提供されません。 便利な機能これにより、ルートを頻繁に作成する場合に時間を大幅に節約できます。

無料のルートトレースプログラムのレビュー

ルート トレース プログラム 3D Traceroute は、高品質な製品の好例です。

VisualRoute ライト版

地元と オンライン版。 有益なルートスケジュール。
ルートを世界地図上に表示したり、リスト形式で表示したりできるのは製品版のみです。

エイリアンIP

地図上に表示します。
場合によっては、疑わしい結果が生じることもあります。 DNS 名から IP アドレスを特定できない場合があります。
残念ながら裁判になってしまいました。 おそらく以前のバージョンはまだインターネット上で見つかるかもしれません
armcode(.)com
16.37 MB 2.40 機能が制限されたフリーウェア Win 98 - Win 7
2016 年 12 月 11 日午後 5 時 48 分

操作性と機能を備えたトレースボードの小さな秘密 楽器用アンプ

  • チュートリアル
基板設計時
これほど安いものはありません
そしてそれほど高く評価されていない
正しくトレースする方法。


モノのインターネットが普及し、プリント基板が利用可能になった時代では、LUT テクノロジの使用だけでなく、その設計は、活動全体がデジタル テクノロジに関連する人々によって行われることがよくあります。

単純なデジタル基板を配線する場合でも、私がプロジェクトで常に従う暗黙のルールがあります。回路のデジタルからアナログへのセクションを備えた測定デバイスを開発する場合、これは単に必要です。

この記事では、初心者の設計者に、回路の安定した動作を実現し、測定誤差を減らしたりオーディオパスの歪み係数を最小限に抑えたりするために従うべきいくつかの基本的なテクニックを紹介したいと思います。 わかりやすくするために、情報は 2 つの例の形式で示されています。

例その 2。 単純なオペアンプ回路をトレースする



米。 1. オペアンプアンプ回路


米。 2. アンプボードからオペアンプまでトレースするための 2 つのオプション

今日の記事のテーマとは直接関係ない、ちょっとした余談です

他のタイプのマイクロ回路、特に ADC、DAC、およびマイクロコントローラーの多数の電源ピンに電力を供給する場合も、同じ手法を使用することを強くお勧めします。 内蔵アナログ マイクロコントローラ モジュール(ADC、DAC、コンパレータ、基準電圧源)を使用する場合は、怠惰にせずにデータシートを見て、どのブロッキング コンデンサを、どのくらいの量、どこに取り付ける必要があるかを確認してください。 マイクロコントローラの主デジタル電源とアナログ電源の間のフィルタまたは少なくとも抵抗の形のデカップリング回路は問題ありません。 アナログ グランドを別個のポリゴン レイヤーまたはスクリーン レイヤーとして配置し、それを 1 点でメイン グランドに接続することをお勧めします。場合によっては、フィルターを通して使用すると便利です。


フィードバック回路要素は、高インピーダンス入力回路との干渉の可能性を最小限に抑えるために、非反転入力にできるだけ近くに配置する必要があります。

トレースが非常に重要となる可能性がある測定分野の、より深刻で興味深いケースに移りましょう。

例その 1。 計装アンプの消費電流モニタのトレース


米。 3. 計装用OPアンプを使用した電流監視回路

図は消費電流計の図を示しています。 測定素子は電源回路に含まれるシャント抵抗です。 電流が測定される負荷は次のとおりです。 R負荷。 測定された電圧は抵抗から除去されます R要素 R1、R2、C1 ~ C3 の対称回路を使用してシャントおよびフィルタリングされます。 U2 チップは供給する役割を果たします。 基準電圧。 R4、C5 - 出力フィルター。

もちろん、トレースするときは、上記のすべての推奨事項に従う必要があります。


米。 4. 計装オペアンプ上でアンプボードを配線するための 2 つのオプション

左の図の欠点を見てみましょう。

  • 差動入力があるため、その 2 つの信号パスを可能な限り対称にする必要があります。 信号線の導体は同じ長さであり、互いに近くに配置されている必要があります。 理想的には、互いに同じ距離にあります。
  • リファレンスフォロワ IC は、計装アンプのリファレンス電圧入力のできるだけ近くに配置する必要があります。
とても観察しています 簡単なルールあなたはあなたの人生を楽にします。 場合によっては、単に害を及ぼさないこともありますが、回路全体の安定性と測定精度の両方を大幅に改善できる場合もあります。

装填済みのガンを壁に掛けたままにしないでください。 いつかそれは間違いなく撮影し、これのために最も不都合な瞬間を選択します。

技術者は仕事中に時々問題に遭遇します。 さまざまなステージ Windows オペレーティング システムの機能: 読み込み、シャットダウン、休止状態、スリープなどの問題。 ほとんどの場合、このようなインシデントは、オペレーティング システムの起動に時間がかかる、または完了するまでに時間がかかるという事実として現れます。視覚的には、これは異常に長い間画面上に「ぶら下がっている」碑文として表現できます。時間、 シャットダウンロード/終了時にカーソルの有無にかかわらず。 場合によっては、そのような段階は良識の限界を超えて非常に長期間続くことがあります。 この種の問題を解決するには多くのアプローチがあります。その中には、起動時およびブート段階のサービスが無効になっているときに実績のある「poke メソッド」を使用するものや、より高度な Microsoft チームの特殊な診断ツールを使用するものもあります。 、問題について十分に理解できるようになります 詳細な情報。 この記事では、おそらくブートの問題を診断する最も効果的な方法の 1 つを検討します。 Windowsのシャットダウン- xbootmgr、xperf、xperfview などの Windows パフォーマンス ツールキット ユーティリティの使用。

少し脱線して、システムのこの動作の一般的な理由について話しましょう。 一般に、Windows の読み込みやシャットダウンが遅い場合は、デバイス ドライバー (通常はサードパーティ)、サービス、または OS 起動のさまざまな段階で開始されるブート段階のアプリケーションの問題が原因である可能性があります。 理論的には、OS のブート/シャットダウン フェーズ中に開始されるオペレーティング システム コンポーネントは、ブート/シャットダウン プロセスのすべてのフェーズを完了するのに必要な時間の大幅な増加の原因となる可能性があります。 原因としては、この設計が間違っていることが考えられます。 ソフトウェア、コンピューターのハードウェアの故障。 たとえば、プログラムはレジストリに対して多数の (冗長な) アクセスを実行する可能性があり、これによってパフォーマンスが全体的に低下する可能性もあります。
問題のあるコンポーネントのコード セクションに至るまで正確に問題の場所を特定するために、Microsoft は幅広い専門家に一連の 特殊なユーティリティシステム パフォーマンスのさまざまな側面を診断するためのツールです。これは Windows パフォーマンス ツールキットと呼ばれます。 Windows パフォーマンス ツールキットはテクノロジーを使用しています イベントトレース(イベントトレース Windows用、ETW)。 実際、ETW はかなり広範な知識分野であり、その研究は専門家にとって特に興味深いものであり、その説明はさらに拡張することができます。 良いシリーズの記事がありますが、ここでは基本的な用語のみを説明します。

Windows 用イベント トレース - イベント トレース ツール。 (特別な API を使用して) ステータス メッセージを生成する機能を提供するテクノロジー。 広い範囲 Windows オペレーティング システムで発生するイベント。

別の言い方をすると、これは Windows システムに組み込まれた拡張可能なログ メカニズムの一種です。 カーネル レベルで実装されると、ユーザー モード アプリケーション、カーネル モード ドライバー、およびカーネル コード自体からイベントをオンデマンドで収集できます。 実際には、多くのコンポーネントが Windows カーネル一部のデバイス ドライバーには、原因を調査するときに蓄積された統計をさらに使用するために操作を追跡する機能が含まれています。 システム障害。 ETW は、コンテキストの切り替え、割り込み統計、遅延プロシージャ コール (DPC)、割り込みサービス ルーチン (ISR)、プロセスとスレッドの作成と破棄、ディスク I/O、ページ フォールト、作業状態でのプロセッサ モードの移行など、広範なパフォーマンス情報を提供します (p -state)、レジストリ操作など。 システムやアプリケーションを再起動することなく、オンザフライでイベントの記録を有効にすることができます。 トレース イベントには、イベント ヘッダーと、アプリケーションまたは操作の現在の状態を説明するベンダー固有のデータが含まれます。

プロバイダー (ベンダー) - Event Trace for Windows API を使用し、要求に応じてイベントを提供するシステム コンポーネント (アプリケーション、ライブラリ、カーネル、ドライバー、サービス)。 トレース データを提供するイベント クラスのグローバル識別子 (GUID) を定義します。

私自身で Windows ツールキットパフォーマンス ツールキットには十分な内容が含まれています たくさんの診断ツール。オペレーティング システムのさまざまな段階での問題を解決するという観点から、xbootmgr、xperf、および xperfview ユーティリティなどのいくつかのアプリケーションのみに注目します。

  • xperf- プロバイダーとトレース セッションのコントローラー。 幅広い機能を備えたコマンド ライン ユーティリティ: トレース プロセスの制御、トレース データの処理 (個々のトレース コンポーネントに関するレポートを生成する、アクションと呼ばれるアナライザーのサポート)、トレース セッションの開始/停止、収集されたイベントのフィルタリング、ポストトレース データの処理 (ETL から XML への変換、トレース データのマージ、トレースへのメタデータの追加)。 このユーティリティは、主な機能に加えて、結果アナライザーとしても使用できますが、コマンド ラインからのみ起動されるため、出力の視覚化には依然として xperfview が使用されます。 興味深い機能このユーティリティは、オペレーティング システムの実行中に別のカーネル レベルのイベント トレーサとして直接使用できるという点にあります。
  • xbootmgr- プロバイダーとトレース セッションのコントローラー。 本質的に同じ xperf で、特定のシナリオを自動化するように設計されています。指定された条件に従って、登録セッションを開始/停止し、オペレーティング システムの状態を変更する手順を自動化し、指定された回数だけシステムを自動的に再起動し、状態切り替え全体のトレースを制御します。厳密に定義された統計を収集する システムイベント(起動、シャットダウン、スリープモードへの移行/スリープモードからの復帰、待機中)。
  • xperfview - パフォーマンス結果のコンシューマ、レシーバ、またはビジュアライザ グラフィカルインターフェース。 主な目的は、ETW セッション ログ ファイルからトレース データを抽出し、それらを グラフィック的にグラフや表の形で。 私の意見では、最も 便利なツールトレース結果を分析します。

将来的には、蓄積されたトレース データをアプリケーションのデバッグやパフォーマンスの問題の診断に使用できます。 xbootmgr/xperf コントローラーは、トレース イベント データを .etl 形式の特別なログ ファイルに収集します。

ETL - イベント トレース ログ。タイムスタンプ、プロセスとスレッドの識別子、イベント クラスで構成される、監視対象のイベントの ETW ヘッダーを含むレコードのセットとして保存される独自のデータ形式です。 クラスは、そのイベントに固有の追加データを表します。

ETW の登場により、組み込みの Windows ログ システムの機能が大幅に拡張され、システムおよびユーザーの ETW プロバイダーからデータを受信できるようになりました。 イベント サービスは、ETW がイベント プロバイダーを通じて提供するあらゆるイベントをサブスクライブできるため、日常の作業では、イベント ビューアー スナップイン ([アプリケーションとサービス ログ] セクション内) のイベント ログ サービスを通じてこれらのイベントを観察できます。
WPT でサポートされる ETW の主な機能の 1 つは、スレッド コール スタックのデコードとプロファイリングのためのシンボルのサポートです。これにより、コード内の関数に至るまで失敗の原因を確認できるようになります。この機能は非常に便利であり、機会が広がります。デバッガを使用しないデバッグなど。

インストールと構成

多かれ少なかれ生きているシステムにインストールする ウィンドウセットパフォーマンス ツールキットは、完全な Windows SDK インストーラーを使用できます。 プロセスについてはすでに詳しく説明しましたが、それを使用すると、Windows パフォーマンス ツールキットを簡単にインストールできます。 インストール中に「Windows Performance Toolkit」をチェックすることを忘れないでください。 プラットフォームのビット数に一致するディストリビューションをインストールすることをお勧めします。 インストールが完了した後、パッケージからインストールする場合のツールキットの作業ディレクトリは次のようになります。 C:\プログラム ファイル\ マイクロソフトウィンドウズパフォーマンスツールキット、オンライン インストーラーを使用してインストールする場合: C:\Program Files (x86)\Windows Kits\XX\Windows パフォーマンス ツールキットただし、将来のディストリビューションではパスが変更される可能性があります。
通常モードでの読み込みに問題があるシステムの場合、状況は多少複雑になります。 事実はそれです..

WPT はセーフ モードではインストールできません。 Windows インストーラー WPT が .msi ファイルとして配信されているにもかかわらず、セーフ モードでは利用できません。 ここで、一般的な状況を想像してください。システムが通常モードで起動せず、同時に診断ツールをセーフ モードでインストールすることもできません:)

このような状況を克服するには、次の 3 つの解決策があります。

  1. WPT コンポーネントは、からコピーするだけでポータブル アプリケーションとして機能します。 作業システムカタログ Microsoft Windows パフォーマンス ツールキットポータブル版として使用してください。 唯一のことは、システムのビット容量を考慮することです。
  2. 賢いレジストリ調整を使用して、セーフ モードで .msi をインストールできます。
  3. 代替ソリューションとして、読み込み段階のロギング モードのユーティリティを使用することもできます。

トレースの実行

トレース手順を開始する直前に、次の簡単な要件に従うことをお勧めします。

  1. 以下で説明するすべてのアクションは、以下から起動したコマンド ラインからだけでなく実行することをお勧めします。 アカウント Performance Log Users または Administrators グループのメンバーですが、複数回の再起動中にカーネル プロバイダーにアクセスする際の問題を避けるために、任意の管理アカウント セッションから直接アクセスします。
  2. Windows オペレーティング システムの起動フェーズ中に問題をトレースする場合は、常に、次のように設定することをお勧めします。 自動ログインユーザーがパスワードを入力するのに費やした時間は測定に大きな影響を与えません。 私はしませんでしたが。

ユーティリティを実行するために、ツールキットのインストール ディレクトリに移動する必要はまったくありません。これは、インストール段階でツールキットが作業ディレクトリをシステム パス変数に追加し、そのファイルがどこからでもアクセスできるようにするためです。
読み込み段階をトレースするには、次のコマンドを実行します。

xbootmgr -trace boot -traceflags BASE+CSWITCH+DRIVERS+POWER -numruns 1 –stackwalk Profile+CSwitch -resultpath C:\TEMP

完了ステージをトレースするには、次のコマンドを実行します。

xbootmgr -trace shutdown -traceflags BASE+CSWITCH+DRIVERS+POWER -numruns 1 –stackwalk Profile+CSwitch -resultpath C:\TEMP -noprepreboot

このコマンドの実行後、xbootmgr コントローラーは、監視する必要があるイベントのクラスに関する情報をカーネル内の ETW コードに渡します。
ちょっとしたメモ: 結果を保存するには、次のディレクトリを使用します。 一時ファイルシステムは変数 %TEMP% で記述されますが、私の場合、通常は伝統的に C:\TEMP です。 一時ファイルの山の中から必要な結果ファイルを見つけるのが非常に困難な場合があることには同意しますが、これは私の個人的な選択であり、任意のターゲット ディレクトリを使用するのはあなたの権利です。
xbootmgr ユーティリティのコマンド ライン オプションについては追加の説明が必要だと思います。

オプション 説明
-痕跡 トレースモード。
  • boot - OS ブート段階のトレース。
  • hibernate - 休止状態モードのトレースと休止状態からの終了。
  • スタンバイ - スリープ モードをトレースし、スリープ モードから終了します。
  • shutdown - OS シャットダウン段階のトレース。
  • rebootCycle - 完全な再起動サイクルのトレース: OS のロードとシャットダウンの段階。
-traceFlags トレースフラグ。 いわゆる「フラグ」は、特定のイベントにアクセスできるイベント プロバイダーです。
プロバイダーに関するさらに詳細な情報は、xperf -help Providers コマンドを使用して取得できます。 デフォルトでは、BASE+CSWITCH オプションが使用されます。 以下で説明します。
-numRuns 特定のステージの繰り返し回数。
-結果パス レポート ファイルを生成するターゲット ディレクトリ。 このオプションは、コントローラ監視モードを指定し、結果をファイルに記録します。 デフォルトでは、ログは %WINDIR%\System32 ディレクトリに保存されます。
-スタックウォーク スタックパスフィルター。 これらは、イベント発生時のコードのセクションとその後の分析を記録することにより、イベントの詳細な分析に使用されます。 この記事では、この機能については考慮しません。 おそらくデフォルトで ProcessCreate+CSwitch の組み合わせが使用されますが、 この事実確認されていません。
-noPrepReboot 準備前の再起動を無効にします。 このオプションを使用すると、いくつかのバグを発見できるため、再起動段階をトレースする場合にこのオプションを使用します。
-prepシステム 次のトレース段階を開始する前にシステムを準備します。 準備は状況に応じて異なりますが、主な利点は次のとおりです。 与えられたキーディスクの最適化プロセスを開始することで構成されます。

xbootmgr ユーティリティには、この表に示されているものよりもはるかに多くのコマンド ライン オプションがあることは明らかです。xbootmgr -help コマンドを実行すると、それらのオプションについて詳しく知ることができます。
xbootmgr ユーティリティのオプションに関する情報によると、私が最も興味を持ったのは、トレース フラグ (プロバイダー) とスタック トラバーサル フィルターに関する情報でした。 後で判明したように、システムには非常に多くのプロバイダーがあり、さらにプロバイダーをユーザー アプリケーションに追加できます。 これらのプロバイダーの多くはさらに説明が必要です。

フラグ 説明
ベース 基本情報。 正確にはどれですか?
PROC_THREAD プロセスまたはスレッドの作成/削除。
ローダ 実行可能ファイルイメージのローダー。 ユーザーモードまたはカーネルモードのイメージ(ライブラリ、ドライバー、プログラム)のロード/アンロードのイベント。
プロフィール プロセッサーのプロファイリング。 1 ミリ秒ごとに発生する個別のイベント。 xbootmgr の実行中、プロファイラーは 1 ミリ秒間隔でプロセッサに割り込み、実行中のスレッドの呼び出しスタックを記録します。 CPU 使用率を調査し、遅いコードを特定するのに役立ちます。
CSスイッチ コンテキストの切り替え。 あるタスクのコンテキストを保存し、別のタスクのコンテキストを復元する手順。 一定期間内のコンテキストスイッチの数?
COMPACT_CSWITCH コンパクトなコンテキスト切り替え。 いつもとどう違うの?
発車係 スケジューラー。 ディスパッチャー。タスク間の制御の切り替えを決定するプロセス。
DPC 遅延プロシージャ呼び出しのイベント。
割り込み 中断します。 ソフトウェアおよびハードウェア割り込みのイベント。
システムコール システムコール。 ユーザーモードコードはカーネル関数を呼び出して、何らかのタスクを実行します。 通話回数は記録されていますか?
優先度 プロセス/スレッドの優先順位を変更するためのイベント?
アルPC 高度なローカル プロシージャ コール。 プロセス間通信ツール 素早い交換メッセージ。 このメカニズムは内部システム プロセスでのみ使用でき、ユーザー コードでは使用できません。
PERF_COUNTER プロセスのパフォーマンス カウンター。 何を意味しています?
DISK_IO ディスク I/O。
DISK_IO_INIT ディスク I/O。 初期化。
FILE_IO ファイルI/O。 ファイル システム操作の時間と結果。
FILE_IO_INIT ファイル I/O の開始。 作成/オープニング。
HARD_FAULTS ページ アクセス エラー (ハード ページフォールト)。ディスクからの読み取りが必要なため、完了までにかなりの時間がかかる場合があります。 プロセスの仮想アドレス空間にマップされているが実際にはロードされていないメモリ ページにプログラムがアクセスしようとしたときに生成される割り込み。 ラム。 これは単なるページ エラー イベントではなく、実際にメモリにロードされる必要があるという点で、ページフォールトとは異なります。
ファイル名 ファイル操作 (作成/削除/要約)。
SPLIT_IO 断片化された (分離された) I/O。 I/O分割率 物理ディスク複数のコンポーネントの下位レベルの操作に分割されます。 下位レベルのディスク ハードウェアが原因で、I/O リクエストが複数の物理ディスク I/O リクエストに分割されたことを示します。 ディスクの応答時間を診断できます。 ディスクのデフラグの概念を定義するのに役立ちます。
レジストリ 活動 システムレジストリ。 レジストリ操作をトレースします。
運転手 ドライバーイベント。 遅れます。
パワーイベント。
ネットワークトレース イベント ネットワーク層(TCP/UDP パケットの送受信など)。
VIRT_ALLOC での操作 仮想メモリ。 仮想アドレス空間内のページ領域の予約、転送、変更、解放。
メミンフォ メモリ使用量の情報。
すべての障害 すべてのページエラー。 これらは、Page_faults イベント、つまりメディアからのロードを必要としない通常のページ アクセス エラーも含むという点で HARD_FAULTS とはおそらく異なります。

いわゆるスタック ウォーキング フラグにも特に注意が払われます。 これらはおそらくアトミック イベントであり、特定のイベントが発生したときにトレース コードが現在のスレッドの呼び出しスタックに移動してデータを記録します。 状況がまだ深く理解されていないため、リストの形式でリストします。

ProcessCreate、ProcessDelete、ImageLoad、ImageUnload、ThreadCreate、ThreadDelete、CSwitch、ReadyThread、ThreadSetPriority、ThreadSetBasePriority、Mark、SyscallEnter、SyscallExit、Profile、ProfileSetInterval、DiskReadInit、DiskWriteInit、DiskFlushInit、FileCreate、FileCleanup、FileClose、FileWrite、FileSetInformation、FileDelete、FileRename、 FileDirEnum, FileFlush, FileQueryInformation, FileFSCTL, FileDirNotify, FileOpEnd, SplitIO, RegQueryKey, RegEnumerateKey, RegEnumerateValueKey, RegDeleteKey, RegCreateKey, RegOpenKey, RegSetValue, RegDeleteValue, RegQueryValue, RegQueryMultipleValue RegSetIn、形成、RegFlush、RegKcbCreate、RegKcbDelete、RegVirtualize、RegCloseKey、HardFault、PagefaultTransition 、PagefaultTransition、PagefaultDemandZero、PagefaultCopyOnWrite、PagefaultGuard、PagefaultHard、PagefaultAV、VirtualAlloc、VirtualFree、PagefileBackedImageMapping、HeapRangeCreate、HeapRangeReserve、HeapRangeRelease、HeapRealloc、Free、HeapDestroy、AlpcSendMessage、 ReceiveMessage、AlpcWaitForReply、AlpcWaitForNewMessage、AlpcUnwait、ThreadPoolCallbackEnqueue、ThreadPoolCallbackDequeue 、ThreadPoolCallbackStart、ThreadPoolCallbackStop、ThreadPoolCallbackCancel、ThreadPoolCreate、ThreadPoolClose、ThreadPoolSetMinThreads、ThreadPoolSetMaxThreads、PowerSetPowerAction、PowerSetPowerActionReturn、PowerSetDevicesState、PowerSetDevicesStateReturn、ify、PowerDeviceNotifyComplete、PowerSessionCallout、PowerSessionCalloutReturn、PowerPreSleep、PowerPostSleep、 fStateChange、PowerIdleStateChange、PowerThermalConstraint、ExecutiveResource、PoolAlloc、PoolAllocSession、PoolFree、PoolFreeSession 。

トレース手順に戻りましょう。 上記のコマンドを実行した後、xbootmgr はセッション (メモリ内のバッファ) を作成し、ユーザーが指定したプロバイダー (この場合、BASE、CSWITCH、DRIVERS、POWER) から ETW プログラミング インターフェイスを介して受信する情報の収集を開始します。 並行して、xbootmgr 動作モードに応じて、特定の主要な段階 (ブート、シャットダウン、スリープ、休止状態) が実行されます。 ユーティリティ オプションによっては、オペレーティング システムを即座に再起動できるように準備する必要があることに注意してください。そのため、最初に作業データを保存することを忘れないでください。

この例では、-noprepreboot オプションが指定されているため、再起動が 1 回実行されます。このオプションが存在しない場合は、1 回目は準備、2 回目はトレースという 2 回の再起動が行われます。

セッションの各主要な段階で、バッファーがいっぱいになると、データがディスクにフラッシュされます。 個別のファイル跡。 その後、最後の段階で、これらすべてのファイルがコントローラーによって 1 つの .etl 形式に結合されます。 したがって、特にせっかちな人は、レポート ターゲット ディレクトリに複数の .etl ファイルが表示されることがあります。これは、ビルド プロセスがまだ完了していないことを示しています。 異種トレース データの収集中、各段階で個別の etl レポート ファイルが作成され、次の警告が表示されます。

画面から消えた後、ターゲット レポート ファイルが統合され、トレース プロセス (またはいずれかの段階) が完了したことを確認できます。ターゲット ディレクトリにファイルが作成されます。 shutdown_BASE+CSWITCH+DRIVERS+POWER_1.etl(名前はコマンドラインで指定されたプロバイダーによって異なります)。

トレース結果の分析

トレース結果の分析を開始する直前に、次の点に注意する必要があります。

ターゲット ディレクトリに、名前にプリマージ サフィックスを含む拡張子 .etl を持つ複数のファイルが含まれている場合 (たとえば、 boot_BASE+CSWITCH+DRIVERS+POWER_1_km_premerge.etl)、これは、トレースプロセスが完了しておらず、レポートが編集中であることを意味します。

この場合、プロセスが完了し、レポート ファイルが 1 つにマージされるまで待つ必要があります。 システムが最終段階で起動した後の xbootmgr ユーティリティによるデータ収集間隔は、コマンド ライン オプション –PostBootDelay を使用して設定され、デフォルトでは 120 秒です。

レポートを見る

したがって、現時点ではトレース結果のファイルが手元にあり、次のステップはもちろんそれを研究することです。 分析を実行するために自由に使える方法がいくつかあります。

  1. xperfview を使用して結果ファイルを開きます。 これを行うには、ユーティリティを直接起動して [ファイル] -> [開く] を選択するか、トレース結果ファイルの名前と同等のコマンド ライン パラメータを指定して xperfview を実行します。
  2. 次のコマンドを使用して、.etl ファイルを .xml ファイルに変換します。 xperf -i shutdown_BASE+CSWITCH+DRIVERS+POWER_1.etl -o shutdown_analysis.xml -a shutdown次に、結果として得られた shutdown_analysis.xml ファイルを Web ブラウザで開きます。 出力フィルターを指定する -a オプションに注意してください。このオプションは、トレースが作成された特定のモードに対応している必要があります。そうでない場合は、このオプションを完全に削除することもできます。
  3. xperf ユーティリティを使用して .etl ファイルを開きます。 これを行うには、次のコマンドを実行します。 xperf shutdown_BASE+CSWITCH+DRIVERS+POWER_1.etl –a シャットダウン

2 番目の方法を選択する場合は、レポートが配置されているディレクトリで xperf ユーティリティを実行するか、コマンド ラインで .etl ファイルへのフル パスを指定することを忘れないでください。

私があなただったら、これ以上苦労せずに、最も簡単な xperfview ユーティリティを使用する最初の方法を選択するでしょう。 なぜなら、今後はトレース結果を調査するこの方法だけを検討するからです。

一般的なアルゴリズム

  1. 読み込みの問題を分析するときは、主な遅延がどの段階で発生しているかを判断します。
  • セッション開始前 (PreSMSS);
  • セッション初期化 (SMSSInit);
  • Winlogon 初期化
  • エクスプローラーの初期化
  • ポストブート
  • 完了の問題を分析するときは、どのコンポーネントが完了するまでに通常よりも時間がかかっているかを特定します。
  • 問題のあるコンポーネントが表示されているグラフ上で、関心のある区間を選択します。 右ボタンマウスを使用してメニューを表示し、「要約テーブル」を選択します。
  • 開いたウィンドウで、ランタイム列 (Time という単語を含む) を使用して、どのモジュール (またはプロシージャ/関数) がその機能にかなりの時間を費やしているかを判断します。
  • ここでは、次の例を見ていきます。 個人的体験。 企業のワークステーションの 1 つでは、シャットダウン/再起動に関する問題が発生し、Windows 7 オペレーティング システムのシャットダウン段階に異常に長い時間がかかり、場合によっては数十分に達しました。 したがって、オペレーティング システムの完成段階では、さらなるレポートと分析が表示されることを直ちに念頭に置いてください。
    xperfview ユーティリティを実行してトレース ファイルを開いた直後に、レポート結果のグラフィック表現が画面に表示されます。 画像をクリックできるので、トレースの結果を詳しく見ることができます。

    デフォルトでは、グラフィック表現は複数 (11) のセクションに分割されています。 これらのセクションの一部は前述のデータ プロバイダーに対応しますが、その他のセクションではさらなる説明が必要です。

    • CPU サンプリング - 使用された CPU 時間の測定値 (パーセント)。
    • CPU 周波数 - プロセッサ周波数の変化を監視します。
    • CPU アイドル状態 - プロセッサーの状態。
    • ディスク I/O - ディスク I/O。 I/O 操作の数。
    • ディスク使用率 - ディスク使用率 (パーセント)。
    • Driver Delays >=100ms - 遅延が 100 ミリ秒のしきい値を超えるドライバー。
    • プロセスの存続期間 - プロセスの完了時間マップ。
    • Hard Faults - ディスクからの情報の読み取りを必要とする「ハード」ページ エラーの数。
    • サービス - サービスのマップ。 注意を払う キーワード(サービス名の後に「stop」が付いています)。 私たちの場合は完成段階をトレースしたということになります。
    • Winlogon - 基本 コントロールポイントウィンログオンステージ。
    • 一般的なイベント - すべてのイベントのマップ。

    スクリーンショットに表示されているすべての結果のうち、おそらく 2 つのセクション、つまり Services と Driver Delays >=100ms だけが興味深いでしょう。 ここでは、典型的なパフォーマンス範囲からの大幅な逸脱を個人的に観察できます。 何らかの不可解な理由により、csc.sys、mup.sys、fltmgr.sys の 3 つのドライバーのアンロードに非常に長い時間がかかりました。 また、gpsvc と wuauserv のサービスはかなり長い間終了していました。

    • %SystemRoot%\System32\Drivers\csc.sysリモート ファイル システム ドライバーであり、システムのオフライン ファイル メカニズムの機能をサポートし、I/O 要求が正確にリモート ファイル システムにリダイレクトされる場所を担当するミニリダイレクターです。 ファイルシステムまたはローカル キャッシュ (%SystemRoot%\CSC) に保存します。 ドライバーはローカル キャッシュを維持し、I/O 要求に応じてキャッシュされたデータを更新します。
    • %SystemRoot%\System32\Drivers\mup.sys- マルチホーミング UNC プロバイダー、リモート ファイル システム ドライバー、システム ファイル システム ドライバーをリモート ファイル システムに直接表示 (マッピング)。 これは最下位レベルの中央ハブのようなもので、UNC パス (\\Server\User\Path) 経由でリモート ファイル システムにアクセスするための I/O リクエストを処理し、I/O を特定のリダイレクタにルーティングします。
    • %SystemRoot%\System32\Drivers\fltmgr.sys- ファイル システム フィルター マネージャーまたは高レベル ファイル システム リクエスト プロセッサーは、システム内のすべてのフィルター ドライバーの機能を担当します。フィルター ドライバーは、ウイルス対策ファイル スキャナー、ファイル レプリケーター、ファイル暗号化機能、ファイル バックアップなど、さまざまな目的のモジュールにすることができます。等

    これらすべての問題のあるコンポーネントの一般的な方向性から判断すると、問題はネットワーク上の何らかのコンポーネントとの相互作用のどこかにあると推測できます。 ネットワークリソース(おそらくドメイン内)、より具体的には、オフライン ファイル機能から始めることができます。

    インターネット サービス プロバイダーまたは技術フォーラムに苦情を申し立てたことがある場合 接続が不安定, 「tracert」コマンドについてはすでにご存知かと思います。 サポート スペシャリストは多くの場合、ユーザーにコマンド ラインで実行して結果を報告するよう求めます。 これは、問題の原因を特定するのに役立ちます。

    もしかしたら、理解できない記号のセットがどのように問題を解決するのに役立つかに驚いたこともあるかもしれません。 ネットワークの問題? これらの数字、列、行は何を意味するのでしょうか? Tracert の使用方法と理解方法を学びたい場合は、 プロよりひどい、この記事はあなたのためのものです。

    Tracert の目的と実際の応用

    トレーサート- コマンドラインが理解できる抽象的なコマンドだけではなく、本格的なプログラムです。 より正確には、ネットワーク パケットが 1 つのノードから別のノードに送信されるパスを決定するように設計されたサービス コンソール (ウィンドウ インターフェイスのない) Windows アプリケーションです。 アプリケーション名の由来は、「経路追跡」を意味する「trace Route」です。

    Tracert プログラムは独自のものです Windows コンポーネント(OS とともにコンピュータにインストールされます)、その実行可能ファイルは TRACERT.exe であり、%windir%/system32 フォルダに永続的に配置されます。

    トレーサーがどのように機能するかを理解しやすくするために、ネットワーク パケットを、郵便で近隣の都市に送信する通常の小包として想像してみましょう。 宛先 (最終ノード) に向かう途中で、荷物はいくつかの場所に立ち寄ります。 仕分けポイント(中間ノード)、そこで登録され、さらに送信されます。 差出人であるあなたは、小包の郵便追跡番号を知っていれば、特別な Web サイトで小包の動きを監視できます。 荷物が時間通りに配達されなかった場合、輸送のどの段階で紛失したかを簡単に知ることができます。

    Tracert も同様の方法で機能します。 郵便ではなくオンライン発送に関する情報のみを提供します。

    これらのエントリ間の類似点に注目してください。

    トレースは、ネットワーク障害を包括的に診断するためのツールの 1 つとして使用されます。 したがって、その助けを借りて、次のことを判断できます。

    • アクセスできない Web リソースはどのレベルでブロックされますか: レベル ホーム・ネットワーク(パケットはゲートウェイを越えて送信されません)、プロバイダーのネットワーク内またはネットワーク外。
    • パケットが正しいルートから外れてしまう場所。 たとえば、要求されたものの代わりに次のような理由が考えられます。 マルウェアユーザーのコンピュータ上で、および何らかのネットワーク ノードからのリダイレクトが行われます。
    • Web リソースは主張どおりのものですか?

    トレースの仕組み

    ご存知のとおり、アプリケーションは Windows コマンド ラインで起動して実行されます。 ほとんどの場合、追加のパラメーターなしで使用されます。 目的の Web リソースへのルートをトレースするコマンドは次のようになります。

    トレーサートサイトのURLまたは IP_サイト。例えば、 トレーサート Mts.ru,トレーサート 91.216.147.50

    答えは次のようになります。

    以下では、これらの数字とエントリが何を意味するのかを説明しますが、その前に、それを明確にするために、トレーサの動作原理を見てみましょう。

    コマンド ラインに上記の指示を入力して Enter キーを押すと、アプリケーションは一連の 3 つの ICMP パケットを指定された Web リソースに送信します。 各パケットのサービス フィールドの 1 つは、TTL 値、つまりネットワーク ノード間で許容される送信回数、または要求の「存続期間」を示します。 出荷物がルーターからルーターへと移動すると、TTL 値は 1 ずつ減少します。 ゼロに達すると、転送が停止し、パケットが破棄され、送信側コンピュータはそれに関する ICMP 通知を受け取ります。

    ICMP リクエストの最初のバッチの TTL 値は 1 です。最初に到着したノードは、この値から 1 を減算します。 パケットの「生存期間」がゼロになるため、パケットは「履歴のゴミ箱」に捨てられ、送信者はこのノードの名前とIPアドレスを示す応答「手紙」を受け取ります。

    2 番目のバッチの TTL 値は 2 (応答は 2 番目のノードから受信されます)、3 番目のバッチは 3 になります。TTL 値が 1 ずつ増加する送信は、受信者がデータを受信するまで続行されます。

    トレース結果の見方

    Tracert 出力の分析に戻りましょう。 Yandex.ru Web サイトへの私のリクエストでは 16 回のジャンプが行われ、15 の「積み替えポイント」を通過し、16 番目のステップで最終ゴールに到達しました。 赤枠で囲まれた欄にジャンプのシーケンス番号が表示されます。 デフォルトでは、彼らの 最大数は30です。

    2 番目、3 番目、4 番目の列には RTT 値、つまりリクエストが送信された瞬間から応答が受信されるまでの経過時間(覚えているとおり、バッチは 3 つのパケットで構成されています)が含まれています。 小さいほど転送が速くなります。 4 秒を超える場合は、タイムアウト間隔を超過したとみなされます。

    最後の列は、中間ノードと最終ノードの名前とアドレスです。

    値の代わりにアスタリスクが表示されるのは、必ずしもネットワーク デバイスの利用不能または誤動作を示すわけではありません (一部の情報源によると)。 ほとんどの場合、これは単に ICMP 応答メッセージの送信を許可しない設定です (DDoS 攻撃から Web サイトを保護するための措置)。 リクエストが適切な時間内にエンドポイントに安全に到達した場合は、心配する必要はありません。

    ICMP パケットの配信に失敗する理由 (要求が受信者に届かない場合) は、ネットワーク デバイスの動作不能 (切断または誤動作) またはセキュリティ ポリシー (このアクションはネットワーク管理者によってブロックされている) である可能性があります。

    Tracertパラメータ

    Web リソースを指定せずにtracertコマンドを実行すると、コンソールに次のメッセージが表示されます。 参考情報起動パラメータ、またはアプリケーション キーと呼ばれるものについて。

    キーは、コマンドの後に Web サイト名の前にスペースで区切って書き込まれます (Web サイトの名前がある場合)。 標準設定何かを変える必要がある。 例えば:

    トレースト -w1000ヤンデックス。これは、1000 ミリ秒の応答タイムアウトで yandex.ru へのルートをトレースすることを意味します。

    以下はパラメータとその意味のリストです。

    ご覧のとおり、すべてが思ったよりも単純であることがわかりました。 ちなみに、Windows のゴミ箱には、このような便利なギズモがまだたくさんあります。 次回も必ずお伝えします。 役立つことを願っています。

    サイトにもあります:

    Tracert チームはどのような秘密を学ぶのに役立ちますか?更新日: 2016 年 12 月 5 日: ジョニー・ニーモニック