Address AJ's comments

This commit is contained in:
Jingyu Zhou 2022-06-08 09:38:32 -07:00
parent 217ba24b6f
commit b9ff6bc129
2 changed files with 8 additions and 4 deletions

View File

@ -301,7 +301,8 @@ const KeyRef JSONSchemas::statusSchema = LiteralStringRef(R"statusSchema(
"available_bytes":0,
"limit_bytes":0,
"unused_allocated_memory":0,
"used_bytes":0
"used_bytes":0,
"rss_bytes":0
},
"messages":[
{

View File

@ -422,10 +422,11 @@ static JsonBuilderObject getBounceImpactInfo(int recoveryStatusCode) {
}
struct MachineMemoryInfo {
double memoryUsage;
double memoryUsage; // virtual memory usage
double rssUsage; // RSS memory usage
double aggregateLimit;
MachineMemoryInfo() : memoryUsage(0), aggregateLimit(0) {}
MachineMemoryInfo() : memoryUsage(0), rssUsage(0), aggregateLimit(0) {}
bool valid() { return memoryUsage >= 0; }
void invalidate() { memoryUsage = -1; }
@ -789,6 +790,7 @@ ACTOR static Future<JsonBuilderObject> processStatusFetcher(
if (memInfo->second.valid()) {
if (processMetrics.size() > 0 && programStart.size() > 0) {
memInfo->second.memoryUsage += processMetrics.getDouble("Memory");
memInfo->second.rssUsage += processMetrics.getDouble("ResidentMemory");
memInfo->second.aggregateLimit += programStart.getDouble("MemoryLimit");
} else
memInfo->second.invalidate();
@ -1011,7 +1013,8 @@ ACTOR static Future<JsonBuilderObject> processStatusFetcher(
auto machineMemInfo = machineMemoryUsage[workerItr->interf.locality.machineId()];
if (machineMemInfo.valid() && memoryLimit > 0) {
ASSERT(machineMemInfo.aggregateLimit > 0);
int64_t memory = availableMemory * memoryLimit / machineMemInfo.aggregateLimit;
int64_t memory =
(availableMemory + machineMemInfo.rssUsage) * memoryLimit / machineMemInfo.aggregateLimit;
memoryObj["available_bytes"] = std::min<int64_t>(std::max<int64_t>(memory, 0), memoryLimit);
}
}