# Class JvmPauseMonitor

java.lang.Object
org.apache.zookeeper.server.util.JvmPauseMonitor

public class JvmPauseMonitor extends Object
This code is originally from hadoop-common, see: https://github.com/apache/hadoop/blob/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/JvmPauseMonitor.java Class which sets up a simple thread which runs in a loop sleeping for a short interval of time. If the sleep takes significantly longer than its target time, it implies that the JVM or host machine has paused processing, which may cause other problems. If such a pause is detected, the thread logs a message.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final long`
`INFO_THRESHOLD_DEFAULT`
`static final String`
`INFO_THRESHOLD_KEY`
`protected long`
`infoThresholdMs`
log INFO if we detect a pause longer than this threshold
`static final String`
`JVM_PAUSE_MONITOR_FEATURE_SWITCH_KEY`
`static final long`
`SLEEP_TIME_MS_DEFAULT`
`static final String`
`SLEEP_TIME_MS_KEY`
`protected long`
`sleepTimeMs`
The target sleep time
`static final long`
`WARN_THRESHOLD_DEFAULT`
`static final String`
`WARN_THRESHOLD_KEY`
`protected long`
`warnThresholdMs`
log WARN if we detect a pause longer than this threshold

## Constructor Summary

Constructors
Constructor
Description
`JvmPauseMonitor(QuorumPeerConfig config)`
`JvmPauseMonitor(ServerConfig config)`

## Method Summary

Modifier and Type
Method
Description
`long`
`getNumGcInfoThresholdExceeded()`
`long`
`getNumGcWarnThresholdExceeded()`
`long`
`getTotalGcExtraSleepTime()`
`boolean`
`isStarted()`
`void`
`serviceStart()`
`void`
`serviceStop()`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### JVM_PAUSE_MONITOR_FEATURE_SWITCH_KEY

public static final String JVM_PAUSE_MONITOR_FEATURE_SWITCH_KEY

See Also:
  - Constant Field Values

### sleepTimeMs

protected long sleepTimeMs
The target sleep time

### SLEEP_TIME_MS_KEY

public static final String SLEEP_TIME_MS_KEY

See Also:
  - Constant Field Values

### SLEEP_TIME_MS_DEFAULT

public static final long SLEEP_TIME_MS_DEFAULT

See Also:
  - Constant Field Values

### warnThresholdMs

protected long warnThresholdMs
log WARN if we detect a pause longer than this threshold

### WARN_THRESHOLD_KEY

public static final String WARN_THRESHOLD_KEY

See Also:
  - Constant Field Values

### WARN_THRESHOLD_DEFAULT

public static final long WARN_THRESHOLD_DEFAULT

See Also:
  - Constant Field Values

### infoThresholdMs

protected long infoThresholdMs
log INFO if we detect a pause longer than this threshold

### INFO_THRESHOLD_KEY

public static final String INFO_THRESHOLD_KEY

See Also:
  - Constant Field Values

### INFO_THRESHOLD_DEFAULT

public static final long INFO_THRESHOLD_DEFAULT

See Also:
  - Constant Field Values

## Constructor Details

### JvmPauseMonitor

public JvmPauseMonitor(QuorumPeerConfig config)

### JvmPauseMonitor

public JvmPauseMonitor(ServerConfig config)

## Method Details

### serviceStart

public void serviceStart()

### serviceStop

public void serviceStop()

### isStarted

public boolean isStarted()

### getNumGcWarnThresholdExceeded

public long getNumGcWarnThresholdExceeded()

### getNumGcInfoThresholdExceeded

public long getNumGcInfoThresholdExceeded()

### getTotalGcExtraSleepTime

public long getTotalGcExtraSleepTime()