問題タブ [cpu-usage]
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.
java - `JavaでスレッドごとのCPU使用率を監視しますか?
cpu usage
のスレッドごとに決定する簡単な方法があるかどうかを尋ねたいと思いますjava
。ありがとう
tomcat - Tomcat の CPU 消費量が多い
Tomcat.exe は CPU の 75% を消費しています。なぜそれが起こるのか、どうすればそれを減らすことができるのか、誰にも分かりますか?
Tomcat5.5 & J2SDK v 1.4.2_12 を使用しています
java - WebSphere 6.1 での CPU 使用率のスパイク
まず、背景を少し説明します。
お客様の 1 人が、当社の Web アプリの 1 つを実行している WebSphere インスタンスで CPU 使用率のスパイクを経験しています (他のアプリを使用する他のインスタンスは問題ありません)。彼らには、テスト環境とライブ環境 (両方とも iSeries) があり、どちらも問題が発生します - インスタンスごとに 1 つのアプリをセットアップします。私たちはこのアプリケーションを私たち自身のテスト環境でローカルに展開しました。また、iSeries 上の他の多くの顧客にも同じような問題は発生しませんでした。
実際に起こっていること:
その時点で処理されている要求がない場合でも、約 17%
秒ごとに、WebSphere プロセスの CPU 使用率の CPU 使用率がどこかにジャンプします。20%
顧客は、最大のスパイクが見られると報告してい30%
ます。これらのスパイクの平均は、アイドル時1.5%
の CPU 全体 (他の WebSphere インスタンスが通常使用するもの0%
)に相当します。0.1%
これまでの私の調査
ということで、スレッドを拝見しました。テスト環境の 1 つのスレッドが、~350
1 秒あたりの CPU サイクルを使用していました。ライブ環境の同様のスレッドは、~1500
1 秒あたりの CPU サイクルを使用していました (より大きな CPU を使用していることを示しています)。これらのスレッドのコール スタックは次のようになります。
一番下の行からのクラス名全体はcom/ibm/ws/util/BoundedBuffer
. 私は顧客に JVM ダンプを依頼しました。ここから得た唯一の追加情報は、スレッド名でした。
今私の質問のために:
- これらの症状を考えると、誰でも問題を特定できますか? (多分それはロングショットです!)
- とは
Deferrable Alarm
? JVM ダンプから、この名前の 4 つのスレッドを確認できます。他の3人は元気そうです。ローカルの WebSphere (Windows 上) をデバッグし、BoundedBuffer
クラスにブレークポイントを追加すると、BoudedBuffer
s がポーリングし、定期的にリスナーを呼び出していることがわかります。 - 私は顧客のマシンの WebSphere コンソールにアクセスすることができません。また、顧客は構成を変更したことを認めていません。コンソールを確認するように依頼することはできますが、何を確認するように依頼すればよいでしょうか?
- カスタマー ボックスに telnet でアクセスできます。他に調査できることはありますか? WebSphere プロファイル ファイルなどを見ていますか? どのファイルを確認する必要がありますか?
- Call Stack と JVM Dump はコードを明示的に参照していないため、これは構成上の問題であると想定しても問題ないでしょうか?
長い質問だったので、ここまで読んでくれてありがとう。
4月30日更新 (1)
今朝、この動作は、その日の最初のリクエストが処理された後にのみ発生することに気付きました (どの Web サービスが呼び出されたかに関係なく)。これは、アプリケーションまたは Apache Axis を指し示しています。これは単なる正常な動作なのでしょうか?!
4月30日更新 (2)
したがって、この CPU アクティビティは、Web コンテナまたは Apache Axis 内の何らかのハウスキーピング アクティビティのようです。私は今、これがいくつかの異なるサーバー上のいくつかの異なる Web アプリケーションで発生していることを確認しました。Web コンポーネントを持たないアプリケーションは、同じように追加の CPU オーバーヘッドに悩まされることはありません。
それがハウスキーピング作業である場合、それを「調整」すると逆効果になる可能性があると思います-つまり、App Serverのアイドル状態を改善すると、実行できる「実際の」作業の量におそらく悪影響を与えることになります.
c++ - CPU とメモリの使用状況を動的にキャプチャする
API のパフォーマンスを測定する C++ アプリケーションを実行するシェル スクリプトを実行しています。API のレイテンシー (特定のパラメーター セットの値を返すのにかかる時間) をキャプチャできますが、CPU とメモリの使用量も 5 ~ 10 秒間隔でキャプチャしたいと考えています。
システムのパフォーマンスにあまり影響を与えずに、同じスクリプト内でこれを行う方法はありますか? 実行中のスクリプトの外部で (独立して) 実行できる多くの例を見つけました。しかし、同じスクリプト内でできることではありません。
windows - CPU 使用率はどのように計算されますか?
Windows タスク マネージャーには、CPU 使用率がパーセンテージで表示されます。この背後にある式は何ですか?これですか:
プロセス A の % CPU 使用率 = (現在までに A に与えられたすべてのタイム スライスの合計)/マシンが起動してからの合計時間
それとも別のものですか?
java - Java での CPU 使用率の削減に関する提案はありますか?
HTML ページをダウンロードする Java プログラムを作成しました。ただし、CPU 使用率はほぼ 100% ですが、ネットワーク使用率は 3% 未満です。そのCPUがボトルネックになったようです。CPU 使用率を削減するにはどうすればよいですか?
performance - CPU 使用率
Q1. CPU を消費せずに優れたパフォーマンスを達成するコードを作成するためのベスト プラクティスは何ですか? 質問は非常に一般的です。ここで私が求めているのは、さまざまな環境で使用されるさまざまなプラクティスをリストアップすることですか? プロセスモニター/タスクマネージャー以外のデバッグのヒント
編集:私はIOバウンドプロセスについて話しているのではありません。私はCPUバウンドプロセスについて話しています。しかし、ここでは、プロセスが CPU を占有し続けることは望ましくありません。4 コアのマシンがあり、プロセス内で 4 つの単純なループを実行すると、アプリケーション/プロセスが実行されるまで CPU 消費が最大 400% まで上昇します。
私はここで、誰もが何度か直面したであろうトピックについての経験を求めています. たとえば、アプリケーションが存在しないファイルを検索するために継続的にループしていたため、Windows で CPU を占有していたアプリケーションをデバッグしました。
2 つの異なる CPU バウンド アプリケーションがスムーズに実行される (良い応答が得られる) ようにプログラムを作成するにはどうすればよいですか?
更新: 提案:
適切でクリーンなコードを記述し、アプリケーションをプロファイリングしてから最適化します。(ヒントをありがとうテッド)
コードをプロファイリングして修正するよりも、コードを書き直し/再設計/リファクタリングする方が簡単です。
プロファイラーを使用してアプリケーションをデバッグする
待機時間が長いスレッドにはスピンロックを使用しないでください
アルゴリズムの選択
これらの提案は、初心者が概念を理解するのに大いに役立ちます。
java - 1 つの CPU を使用するように Java を設定する
設定された数の CPU のライセンスを持つアプリケーションがあり、チェックが完了する前に Java が実行される CPU の数を 1 に設定できるようにしたいと考えています。私は Solaris を実行していpbind
ますが、アプリケーションを起動してから pbind を使用すると、Java が使用できる CPU の数を設定する前にライセンスがチェックされると考えました。
Solaris で一定数の CPU を使用してアプリケーションを起動する方法を知っている人はいますか?
c# - C#(マネージコード)の* THREAD *のCPU使用率やRAM使用率を取得するにはどうすればよいですか?
プロセスのCPU使用率とメモリ使用率を取得する方法は知っていますが、スレッドごとのレベルで取得する方法を考えていました。最善の解決策がP呼び出しを行うことである場合、それも問題ありません。
必要なものの例:
sql-server - SQL Serverに何が影響しているのかを知るにはどうすればよいですか?
私のSQLServerCPUは、今日のほとんどの部分で約90%になっています。
常時使用しているため、再起動できません。
SQL内でそのようなCPU過負荷を引き起こしているものを見つけることは可能ですか?
私はSQLプロファイラーを実行しましたが、特に何かがそれを引き起こしているかどうかを判断するのは難しいです。
sp_who2を実行しましたが、すべてが正確に何を意味するのか、ここで考えられる問題を特定できるかどうかはわかりません。
「おそらく多く使用されている」という応答を先取りするために、これは今日、完全に正常な活動レベルから始まっただけです。
私はSQL内でCPUの問題を引き起こしている原因を見つける方法を探しています。