私は、特定のスレッドがCPU上で実行されているかどうかを検出する方法を見つけようとしています。理想的には、自分のスレッドがいつスケジュールされるか、いつ実行されるか、コンテキストスイッチによって中断されたかを追跡するために、カーネルに直接接続したいと思っています。この情報を正確に報告できる棚用ツールはありますか?Linuxスケジューラで長い待機時間を検出する
1
A
答えて
2
'perf sched'ユーティリティが必要な場合や、古いカーネルの場合は 'ftrace'が必要です。 'schedのPERF'
は、現在5つのサブコマンドがありますschedのPERF
{|待ち時間|レコード地図|再生|スクリプト}
- レコード - 任意のワークロードの低オーバーヘッド記録
- 待ち時間 - タスクごとの出力待ち時間メトリック
- マップ - コンテキスト切り替えの概要/マップを表示
- 再生 - シミュレートされたスレッドを使用してキャプチャされた作業負荷を再生
- スクリプト -
http://lwn.net/Articles/353295/
man perf-sched
0
私はOProfileを使用します。
これは、システムパフォーマンスを調べるのに最も簡単な方法であり、必要なものには十分に適しています。他にスーパーカスタムが必要な場合は、関心のあるイベントのスケジューリング中にGPIOをトグルするカスタムカーネルを構築し、ロジックアナライザで信号を調べるようなことになるかもしれません。私はあなたの時間の価値がないので、そのアプローチをお勧めしません。
関連する問題
- 1. NSOperation waitUntilFinishedが長時間待機する
- 2. Linuxネットワークアプリケーションの待ち時間が高い
- 3. 長い実行時間のlinux
- 4. ミューテックスロック待機時間とウォッチドッグ
- 5. AirPlayの待ち時間を検出する
- 6. FirebugがPOSTリクエストに長い待ち時間を表示する
- 7. WordPressのWebサイトで長時間待っています
- 8. Drupalブロックの時間スケジューラ
- 9. bashの並列プロセス間に待機時間を追加する
- 10. 他のスレッドがロックを保持していなくても、同期オブジェクトで長時間待機する
- 11. 待ち時間の長い(?)ユーザのための長いPHP実行
- 12. Javaのマルチスレッドでサービス時間の待機時間を見つける方法
- 13. 複数のカピバラ待機時間?
- 14. 長いクエリ時間
- 15. FreeBSDスケジューラとLinuxスケジューラの相違点
- 16. "PoolAllocator"に長時間いる
- 17. VBアイドル時間を検出する
- 18. LinuxでTCPラウンドトリップ時間(RTT)を抽出する
- 19. JavaスケジューラQuartz Cronトリガー時間設定
- 20. 時間を待つ
- 21. Asp.NET Web Apiで高いCPUと長い応答時間の問題を検出する方法
- 22. CoreBluetooth広告検出時間
- 23. オブジェクトを数ミリ秒間待機させ、待機時間中にアクティブ待機をキャンセルする方法はありますか?
- 24. AJAXリクエストの待機時間/待ち時間を減らす/取り除く方法
- 25. コンパイル時間が長いです。C++
- 26. Informixで長時間実行されているクエリを検索しますか?
- 27. "VDI_CLIENT_OTHER"のAzure SQL待機時間が高い
- 28. タブ間でもアイドル時間を検出できますか?
- 29. Linux上でユーザーがアイドル(ユーザー入力なし)の時間をグローバルに検出するか、より良いクロスプラットフォーム
- 30. ログアクション待ち時間
を記録したワークロードの詳細なトレースを参照するには、また、カーネルのスケジューリングコードに追加ロジックを追加すると、それが呼ばれ、特に以来結果を歪曲する可能性がありますたくさん :) –