問題タブ [performance-monitor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
performance - Windows XP パフォーマンス モニター アプリケーション (perfmon) でプロセッサ/メモリ カウンターが見つからない
Perfmon は、システム カウンターを測定することで、開発者がアプリケーションのボトルネックを見つけるのに役立つ Windows ユーティリティです。
私はperfmon チュートリアルを読んでいて、この重要なカウンターのリストから、自分のマシンで次のカウンターを見つけました。
- PhysicalDisk\Bytes/sec_Total
- Network Interface\Bytes Total/Sec\nic name
しかし、次のカウンターはどこにも見つかりませんでした。
- Processor\% Processor Time_Total
- プロセス\ワーキング セット_合計
- メモリ\利用可能なメガバイト
それらはどこにありますか? 私の Windows は (en-US ではなく) pt-BR であることに注意してください。PerfMon などの Windows ツールの言語固有のドキュメントはどこにありますか?
c# - オープン ソース/無料の C# プラットフォーム診断ライブラリ (CPU、RAM、HDD など)
サーバーシステムのさまざまなヘルスパラメーター (CPU、RAM、HDD、プロセスとサービスの使用状況など) を監視し、データ分析のために別のシステムに接続できるアプリケーションを作成しています。PerformanceCounter またはクエリ WMI を介して多くの値を取得できましたが、使用できる大量のシステム診断情報リトリーバーを含む、フリーまたはオープン ソースのライブラリが既に存在するかどうか疑問に思いました。
ありがとうございました!
android - AndroidでCPU使用率の統計を取得するには?
Windows のタスク マネージャーと同様に、Android での全体的な CPU 使用率を取得したいと考えています。Androidに同梱されているプログラムの出力は解析できますtop
が、同じことをするAPI呼び出しがあればもっといいです。
ポインタはありますか?
c# - リモートパフォーマンスモニターでリークを見つけるのに役立ちます
リモートパフォーマンスモニターを使用して、CompactFrameworkアプリケーションのメモリリークの原因を見つけようとしています。ブラシやその他のグラフィックオブジェクトに関連するいくつかのマイナーなものを削除することができましたが、主な問題の原因がまだ明確にわかりません。
この時点で、元のカウントに戻らないように見えるオブジェクトはSystem.Stringオブジェクトだけです。これらのオブジェクトが収集されないままでいるためには、それらを含むオブジェクトも残っている必要があると思っていたので、これは非常に奇妙だと思いますが、他のタイプのオブジェクトはそれに伴って増加していないようです。 System.Strings。
アプリケーションが元の状態(つまり、ログイン画面)に戻った後に残る新しいStringオブジェクトを見つけようとしています。問題は、元々、アプリケーションが約2200の文字列オブジェクトをロードし、プロセス「X」の後にさらに70程度増加し、収集されないことです。誰がそれらを保持しているのかを見つけて適切な修正を行うために、それらの70個の新しいオブジェクトを識別する方法がわかりません。
文字列が収集されなかった経験はありますか?プロセス「X」の間に作成された新しいオブジェクトを、アプリケーションが最初に必要としていたオブジェクトから分離して、どれがリークしているかを知る方法はありますか?何かアドバイスをいただければ幸いです。
ありがとう
**アップデート
わかりました...非常に奇妙なことが起こっています。漏れがあるのか疑問に思い始めています。
アプリケーションの元の開始点であるログイン画面でメモリスナップショットを作成するとします。この時点でメモリに1000個の文字列オブジェクトがあると想像してください。ここで、ログインしてメニューからオプションを選択すると、新しい画面が読み込まれたらスナップショットを撮ります。このフォームをロードすると、文字列数が50オブジェクト増えるとしましょう。ログアウトしてログイン画面で再度スナップショットを撮ると、それらのオブジェクトのうち25個だけが収集され、残りはそれ以降メモリに残ります。
奇妙なことに、このプロセスを繰り返し続けると、それ以上文字列オブジェクトが蓄積されなくなります。文字列数が50増える代わりに、この時点で25だけが追加され、ログイン画面に戻ると同じ25が収集されます。これが実際のリークである場合、その画面を開くたびに文字列数が永続的に25増加すると思いますが、これは初めての場合にのみ発生します。
これは、私が開くすべての新しい画面で発生します。最初は全体的な文字列数が永続的にわずかに増加しますが、その特定の画面をロードすると、ログイン画面に戻ると、実行中の文字列数の増加が収集されます。
これらすべてのことから、おそらくこれらの文字列はCLRの内部動作の一部であると私は信じています。ランタイムによって行われるある種のキャッシュでしょうか?おそらくそれはより速いロードのために私の文字列定数を保存していますか?そんな感じ?これがあまり混乱していなかったと思います。
.net - PerfMon インスタンスで正しい AppPool を選択する
6 つのアプリケーション プールを持つ Web サーバーがあります。特定の ASP.NET アプリケーションの PerfMon にカウンターを追加したい場合、使用可能なインスタンスの名前が大きく異なります。
たとえば、「FrontEnd」という名前のアプリケーション プールがあり、これらは使用可能なインスタンスです。
_LM_W3SVC_1_Root_bookeline
_LM_W3SVC_1_Root_CredentialsService
_LM_W3SVC_1_Root_pReports
_LM_W3SVC_1130837766_Root
_LM_W3SVC_1147758436_Root
_LM_W3SVC_1254277584_Root
_LM_W3SVC_1366866887_Root
_LM_W3SVC_1505760911_Root
_LM_W3SVC_1604538730_Root
_LM_W3SVC_1618350214_Root
_LM_W3SVC_175082253_Root
_LM_W3SVC_177047044_Root
_LM_W3SVC_1825997120_ROOT
_LM_W3SVC_1966585210_Root
_LM_W3SVC_204756873_Root
_LM_W3SVC_261753984_Root
_LM_W3SVC_3_ROOT
_LM_W3SVC_315617261_Root
_LM_W3SVC_36575378_Root
_LM_W3SVC_575979470_Root
_LM_W3SVC_831033229_Root
_LM_W3SVC_940052100_ルート
同僚は、小さな .bat ファイルを作成することで、アプリケーション プールをプロセス ID に一致させる巧妙な方法を提案しました。
c:\windows\system32\cscript.exe c:\windows\system32\iisapp.vbs
一時停止
ただし、これらの ID はインスタンスとは何の関係もないようです。
ここで私は何を誤解していますか?
performance - すべての Windows パフォーマンス モニター カウンターをキャプチャします。
一部のサーバーのパフォーマンスを監視する必要があるため、そのための perfmon カウンターを作成する必要があります。
現時点では、カウンターを手動で追加してデータ コレクターを作成する必要がありますが、サーバーにはさまざまなカスタマイズされたカウンターがあるため、これには長い時間がかかります。
1つずつ選択して追加するのではなく、すべてのカウンターを選択して収集する簡単な方法はありますか?
ありがとうリケシュ
powershell - PowershellでのパフォーマンスカウンターAPI呼び出しエラー
Powershellを介してPerfmonからパフォーマンスに関する特定の情報を取得し、別のサービスによって実行されるスクリプトを使用して.csvファイルに書き込みたい。Powershellがいくつかの興味深いエラーメッセージを表示する可能性があることを知っているので、私が間違っていることを正確に識別できる人がいるかどうかを聞きたいと思います。
私が機能させようとしているコードは次のようになります。
次のようなエラーが発生します:
それでも、詳細ではなくパフォーマンスカウンターのカテゴリを選択すると、機能します。例はこれです:
.net - IIS 6 パフォーマンス モニター
特定の Web サイトのアクティブなユーザー セッションを取得したいと考えています。
パフォーマンス モニターを使用して、IIS6 Web サイトの現在アクティブなセッションを取得しています。
アクティブ セッション カウンターは、 IIS 7 - Windows サーバー 2008 r2ではセッション インスタンスと特定の Web サイトのアクティブ セッション カウントを提供しますが、 IIS6 - Windows サーバー 2003 サーバーで同じことを試しても、パフォーマンス カウンターは表示されません。任意のセッション インスタンス。
何か案が?
azure - Web ロール インスタンスに関連付けられている w3wp プロセスを特定する
Azure サービスのパフォーマンスの監視に取り組んでいます。
現在、2 つの Web ロール インスタンス (同じ Web サイト用) が実行されており、それぞれに独自の W3WP.exe (w3wp および w3wp#1) があります。
どの w3wp プロセスがどのロール インスタンスに属しているかを調べるにはどうすればよいですか?
この情報を使用して、azure.diagnostics.monitor にいくつかのパフォーマンス カウンター、つまり Process(w3wp)\ProcessorTime (%) と Thread Count をフィードします。しかし、意味のあるデータを取得するには、w3wp プロセスのプロセス ID をパフォーマンス カウンターに追加する必要があります (例: Process(w3wp_PID)\processorTime(%)) - 構文が正しいかどうかはわかりませんが、方法はあります。 PID を追加します)
そのため、AzureStorage テーブル WADPerformanceCounters の最終結果には、次のようなエントリのみが含まれます。
atm そのような
私は考えました:各役割のDiagnosticsMonitorを開始した場合、モニターは正しいプロセスを使用します-モニターを開始したRoleinstanceに属します。しかし、実際にはそれは機能しません-または、機能しないと思います-少なくとも結果の値を見た後。
//更新: manage.windowsazure ポータルで、パフォーマンス監視用のカスタム メトリックを定義できます。ここで、排他的に監視する Webrole インスタンスを選択することができます。これは私もやりたいことです。このページが実際に何をするかについての洞察も役立つかもしれません。
比較用: http://puu.sh/1xp7q
この情報を取得するために私が考えることができる唯一の愚かな方法は、各 w3wp が開始される前後のすべてのプロセスのリストを取得することです。