FastRestore:Trace memory usage periodically
This commit is contained in:
parent
7b5d43da9c
commit
0ba1551116
|
@ -47,8 +47,8 @@ ACTOR Future<Void> restoreApplierCore(RestoreApplierInterface applierInterf, int
|
|||
state Future<Void> exitRole = Never();
|
||||
state Future<Void> updateProcessStatsTimer = delay(SERVER_KNOBS->FASTRESTORE_UPDATE_PROCESS_STATS_INTERVAL);
|
||||
|
||||
actors.add(traceProcessMetrics(self, "Applier"));
|
||||
actors.add(traceRoleVersionBatchProgress(self, "Applier"));
|
||||
actors.add(traceProcessMetrics(self, "RestoreApplier"));
|
||||
actors.add(traceRoleVersionBatchProgress(self, "RestoreApplier"));
|
||||
|
||||
loop {
|
||||
state std::string requestTypeStr = "[Init]";
|
||||
|
|
|
@ -67,7 +67,7 @@ ACTOR Future<Void> restoreLoaderCore(RestoreLoaderInterface loaderInterf, int no
|
|||
state Future<Void> exitRole = Never();
|
||||
state Future<Void> updateProcessStatsTimer = delay(SERVER_KNOBS->FASTRESTORE_UPDATE_PROCESS_STATS_INTERVAL);
|
||||
|
||||
actors.add(traceProcessMetrics(self, "Loader"));
|
||||
actors.add(traceProcessMetrics(self, "RestoreLoader"));
|
||||
|
||||
loop {
|
||||
state std::string requestTypeStr = "[Init]";
|
||||
|
|
|
@ -81,6 +81,7 @@ ACTOR Future<Void> startRestoreMaster(Reference<RestoreWorkerData> masterWorker,
|
|||
|
||||
actors.add(updateHeartbeatTime(self));
|
||||
actors.add(checkRolesLiveness(self));
|
||||
actors.add(traceProcessMetrics(self, "RestoreMaster"));
|
||||
|
||||
wait(startProcessRestoreRequests(self, cx));
|
||||
} catch (Error& e) {
|
||||
|
|
|
@ -110,7 +110,8 @@ ACTOR Future<Void> isSchedulable(Reference<RestoreRoleData> self, int actorBatch
|
|||
}
|
||||
if (memory < memoryThresholdBytes || self->finishedBatch.get() + 1 == actorBatchIndex) {
|
||||
if (memory >= memoryThresholdBytes) {
|
||||
TraceEvent(SevWarn, "FastRestoreMemoryUsageAboveThreshold")
|
||||
TraceEvent(SevWarn, "FastRestoreMemoryUsageAboveThreshold", self->id())
|
||||
.detail("Role", getRoleStr(self->role))
|
||||
.detail("BatchIndex", actorBatchIndex)
|
||||
.detail("FinishedBatch", self->finishedBatch.get())
|
||||
.detail("Actor", name)
|
||||
|
@ -119,10 +120,12 @@ ACTOR Future<Void> isSchedulable(Reference<RestoreRoleData> self, int actorBatch
|
|||
self->delayedActors--;
|
||||
break;
|
||||
} else {
|
||||
TraceEvent(SevDebug, "FastRestoreMemoryUsageAboveThresholdWait")
|
||||
TraceEvent(SevInfo, "FastRestoreMemoryUsageAboveThresholdWait", self->id())
|
||||
.detail("Role", getRoleStr(self->role))
|
||||
.detail("BatchIndex", actorBatchIndex)
|
||||
.detail("Actor", name)
|
||||
.detail("CurrentMemory", memory);
|
||||
// TODO: Set FASTRESTORE_WAIT_FOR_MEMORY_LATENCY to a large value. It should be able to avoided
|
||||
wait(delay(SERVER_KNOBS->FASTRESTORE_WAIT_FOR_MEMORY_LATENCY) || self->checkMemory.onTrigger());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue