質問
OracleビューV $ OSSTATは、次のようないくつかの動作統計を保持します。
- IDLE_TICKSプロセッサーがアイドル状態になった100分の1秒の数。すべてのプロセッサーの合計
- BUSY_TICKSプロセッサがユーザーコードまたはカーネルコードの実行でビジーであった100分の1秒の数。すべてのプロセッサで合計されます
私が読んだ文書は、これらがリセットされるかどうかについて明確ではありません。誰でも知っていますか?
もう1つの質問は、システムで発生している平均CPU負荷を計算したいということです。そうするために、私は行かなければならないことを期待しています:
busy_ticks / (idle_ticks + busy_ticks)
これは正しいですか?
11月8日更新
Oracle 10g r2には、このテーブルにLOADという統計が含まれています。値が読み取られた時点のマシンの現在の負荷を提供します。 * _ticksデータは「インスタンス開始以降」なので、これは他の情報を使用するよりもはるかに優れています。現在の時点ではありません。
解決
利用可能な場合は、「IOWAIT_TICKS」を含める必要があります。
IDLE_TICKS-100分の1の数 次に、プロセッサがアイドル状態になったこと、 すべてのプロセッサで合計
BUSY_TICKS-100分の1秒の数 プロセッサは実行中でビジー状態です ユーザーまたはカーネルコード、すべての合計 プロセッサ
IOWAIT_TICKS-100分の1秒の数 プロセッサは、I / Oが 完全で、全体が総計 プロセッサ
これはクエリです。
SELECT (select value from v$osstat where stat_name = 'BUSY_TICKS') /
(
NVL((select value from v$osstat where stat_name = 'IDLE_TICKS'),0) +
NVL((select value from v$osstat where stat_name = 'BUSY_TICKS'),0) +
NVL((select value from v$osstat where stat_name = 'IOWAIT_TICKS'),0)
)
FROM DUAL;
10.2以降では、_TICKSの名前は_TIMEに変更されました。
動的ビューの累積値は、データベースインスタンスがシャットダウンされるとリセットされます。
自動パフォーマンス統計および v $ OSStat 。
他のヒント
USER_TICKSとSYS_TICKSを含める必要があるとは思いません。
BUSY_TICKSのドキュメントの状態:
"...been busy executing user or kernel code, totalled over all processors"
これは、BUSY_TICKSに既にUSER_TICKSとSYS_TICKSが含まれていることを示唆しています。
NICE_TICKSと同じ-まだユーザー時間です(優先度は低い)。
ただし、IOWAIT_TICKSを含める必要があるようです。
考えてみてください、もし私の目的がマシン全体の負荷の感覚を得ることなら、分子&にIOWAIT_TICKSを含める方が良いでしょう。分母、作業に使用できないCPU時間の量を把握します。
SELECT (
(select value from v$osstat where stat_name = 'BUSY_TICKS') +
(select value from v$osstat where stat_name = 'IOWAIT_TICKS'))
/
(
NVL((select value from v$osstat where stat_name = 'IDLE_TICKS'),0) +
NVL((select value from v$osstat where stat_name = 'BUSY_TICKS'),0) +
NVL((select value from v$osstat where stat_name = 'IOWAIT_TICKS'),0)
)
FROM DUAL;
これにより、マシンのIO競合または待機率が高い場合に、誤解を招くことなく、より多くのジョブを実行することで問題が増加することが保証されます。
視点によって異なります。あなたが何を求めているかを知っているので、あなたはそれが正しいと思います。
ビジー値については正しいです。システムの1つをチェックしましたが、BusyはUser + Sysと同じです。
また、システム上で常にビジーおよびアイドルアカウントであることを確認しました(システムにはIOWAITがありません)。