Frage

Die Oracle-Ansicht V $ OSSTAT hält einige Betriebsstatistiken, einschließlich:

  • IDLE_TICKS Anzahl der Hundertstelsekunden, dass ein Prozessor im Leerlauf war, betrug über alle Prozessoren
  • BUSY_TICKS Anzahl der Hundertstelsekunden, dass ein Prozessor beschäftigt hat ausführende Benutzer oder Kernel-Code, betrug über alle Prozessoren

Die Dokumentation die ich gelesen habe ist nicht klar gewesen, ob diese jemals zurückgesetzt. Kennt jemand?

Eine andere Frage, die ich habe ist, dass ich das System die durchschnittliche CPU-Last arbeiten, möchten erlebt. Um dies zu tun Ich erwarte, dass ich gehen:

busy_ticks / (idle_ticks + busy_ticks)

Ist das richtig?

Update 8. November

Oracle 10g R2 enthält eine Statistik LOAD in dieser Tabelle genannt. Es bietet die aktuelle Belastung der Maschine, der zum Zeitpunkt der Wert gelesen wird. Das ist viel besser als die anderen Informationen als * _ticks Daten ist „da Instanz starten“ nicht als der aktuellen Zeitpunkt.

War es hilfreich?

Lösung

Sie müssen einschließen ‚IOWAIT_TICKS` wenn sie verfügbar sind.

  

IDLE_TICKS - Anzahl der Hundertstel a   zweitens, dass ein Prozessor im Leerlauf befindet,   Insgesamt nahmen mehr als alle Prozessoren

     

BUSY_TICKS - Anzahl der Hundertstelsekunden, dass ein   Prozessor beschäftigt sich seit Ausführung   Benutzer oder Kernel-Code, betrug über alle   Prozessoren

     

IOWAIT_TICKS - Anzahl der Hundertstelsekunden, dass ein   Prozessor wurde speziell für I / O zu warten   komplett, insgesamt alle führte über   Prozessoren

Hier ist eine Abfrage.

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;

Am 10.2 und später die Namen _TICKS hat _TIME geändert.

Kumulierte Werte in dynamischen Ansichten werden zurückgesetzt, wenn die Datenbankinstanz wird abgeschaltet.

Siehe Automatische Performance Statistiken und v $ OSStat für weitere Informationen .

Andere Tipps

Ich bin nicht überzeugt, ich brauche USER_TICKS und SYS_TICKS aufzunehmen.

Die Dokumentation für BUSY_TICKS heißt es:

"...been busy executing user or kernel code, totalled over all processors"

was darauf schließen lässt, dass BUSY_TICKS bereits enthält USER_TICKS und SYS_TICKS.

Das Gleiche gilt für NICE_TICKS - die noch Benutzer Zeit (nur niedrigere Priorität).

Einschließlich IOWAIT_TICKS scheint wahrscheinlich, wenn nötig sein.

Kommen Sie, daran zu denken, wenn mein Zweck ein Gefühl der gesamten Maschine zu bekommen, würde ich wahrscheinlich besser werden, einschließlich IOWAIT_TICKS im Zähler und Nenner, ein Gefühl für die Menge der CPU-Zeit, um nicht für meine Arbeit.

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;

Dies würde sicherstellen, dass, wenn die Maschine eine hohe Rate von IO Streit hat oder warten, würde ich nicht täuschen lassen und das Problem hinzufügen würde durch mehr Jobs ausgeführt werden.

Abhängig von Ihrer Perspektive. Zu wissen, was Sie nach, ich glaube, Sie haben es richtig.

Sie sind richtig über den Besetzt Wert. Ich habe eines meiner Systeme und Busy gleich Benutzer + Sys.

ich auch bestätigt, dass Besetzt und Idle-Konto für die ganze Zeit auf meinem System (mein System nicht iowait).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top