MemoryMeter: show shared memory before cached

Shared memory is less free-able than cached memory.

Show it beforehand.
This commit is contained in:
Christian Göttsche 2021-03-17 16:32:16 +01:00
parent d9f2eacbc5
commit 9f41dc3332
7 changed files with 27 additions and 17 deletions

View File

@ -18,8 +18,8 @@ in the source distribution for its full text.
static const int MemoryMeter_attributes[] = { static const int MemoryMeter_attributes[] = {
MEMORY_USED, MEMORY_USED,
MEMORY_BUFFERS, MEMORY_BUFFERS,
MEMORY_CACHE, MEMORY_SHARED,
MEMORY_SHARED MEMORY_CACHE
}; };
static void MemoryMeter_updateValues(Meter* this) { static void MemoryMeter_updateValues(Meter* this) {
@ -28,7 +28,7 @@ static void MemoryMeter_updateValues(Meter* this) {
int written; int written;
/* shared and available memory are not supported on all platforms */ /* shared and available memory are not supported on all platforms */
this->values[3] = NAN; this->values[2] = NAN;
this->values[4] = NAN; this->values[4] = NAN;
Platform_setMemoryValues(this); Platform_setMemoryValues(this);
@ -59,17 +59,17 @@ static void MemoryMeter_display(const Object* cast, RichString* out) {
RichString_appendAscii(out, CRT_colors[METER_TEXT], " buffers:"); RichString_appendAscii(out, CRT_colors[METER_TEXT], " buffers:");
RichString_appendAscii(out, CRT_colors[MEMORY_BUFFERS_TEXT], buffer); RichString_appendAscii(out, CRT_colors[MEMORY_BUFFERS_TEXT], buffer);
Meter_humanUnit(buffer, this->values[2], sizeof(buffer));
RichString_appendAscii(out, CRT_colors[METER_TEXT], " cache:");
RichString_appendAscii(out, CRT_colors[MEMORY_CACHE], buffer);
/* shared memory is not supported on all platforms */ /* shared memory is not supported on all platforms */
if (!isnan(this->values[3])) { if (!isnan(this->values[2])) {
Meter_humanUnit(buffer, this->values[3], sizeof(buffer)); Meter_humanUnit(buffer, this->values[2], sizeof(buffer));
RichString_appendAscii(out, CRT_colors[METER_TEXT], " shared:"); RichString_appendAscii(out, CRT_colors[METER_TEXT], " shared:");
RichString_appendAscii(out, CRT_colors[MEMORY_SHARED], buffer); RichString_appendAscii(out, CRT_colors[MEMORY_SHARED], buffer);
} }
Meter_humanUnit(buffer, this->values[3], sizeof(buffer));
RichString_appendAscii(out, CRT_colors[METER_TEXT], " cache:");
RichString_appendAscii(out, CRT_colors[MEMORY_CACHE], buffer);
/* available memory is not supported on all platforms */ /* available memory is not supported on all platforms */
if (!isnan(this->values[4])) { if (!isnan(this->values[4])) {
Meter_humanUnit(buffer, this->values[4], sizeof(buffer)); Meter_humanUnit(buffer, this->values[4], sizeof(buffer));

View File

@ -241,7 +241,9 @@ void Platform_setMemoryValues(Meter* mtr) {
mtr->total = dpl->host_info.max_mem / 1024; mtr->total = dpl->host_info.max_mem / 1024;
mtr->values[0] = (double)(vm->active_count + vm->wire_count) * page_K; mtr->values[0] = (double)(vm->active_count + vm->wire_count) * page_K;
mtr->values[1] = (double)vm->purgeable_count * page_K; mtr->values[1] = (double)vm->purgeable_count * page_K;
mtr->values[2] = (double)vm->inactive_count * page_K; // mtr->values[2] = "shared memory, like tmpfs and shm"
mtr->values[3] = (double)vm->inactive_count * page_K;
// mtr->values[4] = "available memory"
} }
void Platform_setSwapValues(Meter* mtr) { void Platform_setSwapValues(Meter* mtr) {

View File

@ -200,7 +200,9 @@ void Platform_setMemoryValues(Meter* this) {
this->total = pl->totalMem; this->total = pl->totalMem;
this->values[0] = pl->usedMem; this->values[0] = pl->usedMem;
this->values[1] = pl->buffersMem; this->values[1] = pl->buffersMem;
this->values[2] = pl->cachedMem; // this->values[2] = "shared memory, like tmpfs and shm"
this->values[3] = pl->cachedMem;
// this->values[4] = "available memory"
} }
void Platform_setSwapValues(Meter* this) { void Platform_setSwapValues(Meter* this) {

View File

@ -221,7 +221,9 @@ void Platform_setMemoryValues(Meter* this) {
this->total = pl->totalMem; this->total = pl->totalMem;
this->values[0] = pl->usedMem; this->values[0] = pl->usedMem;
this->values[1] = pl->buffersMem; this->values[1] = pl->buffersMem;
this->values[2] = pl->cachedMem; // this->values[2] = "shared memory, like tmpfs and shm"
this->values[3] = pl->cachedMem;
// this->values[4] = "available memory"
} }
void Platform_setSwapValues(Meter* this) { void Platform_setSwapValues(Meter* this) {

View File

@ -286,13 +286,13 @@ void Platform_setMemoryValues(Meter* this) {
this->total = pl->totalMem > lpl->totalHugePageMem ? pl->totalMem - lpl->totalHugePageMem : pl->totalMem; this->total = pl->totalMem > lpl->totalHugePageMem ? pl->totalMem - lpl->totalHugePageMem : pl->totalMem;
this->values[0] = pl->usedMem > lpl->totalHugePageMem ? pl->usedMem - lpl->totalHugePageMem : pl->usedMem; this->values[0] = pl->usedMem > lpl->totalHugePageMem ? pl->usedMem - lpl->totalHugePageMem : pl->usedMem;
this->values[1] = pl->buffersMem; this->values[1] = pl->buffersMem;
this->values[2] = pl->cachedMem; this->values[2] = pl->sharedMem;
this->values[3] = pl->sharedMem; this->values[3] = pl->cachedMem;
this->values[4] = pl->availableMem; this->values[4] = pl->availableMem;
if (lpl->zfs.enabled != 0) { if (lpl->zfs.enabled != 0) {
this->values[0] -= lpl->zfs.size; this->values[0] -= lpl->zfs.size;
this->values[2] += lpl->zfs.size; this->values[3] += lpl->zfs.size;
} }
} }

View File

@ -208,7 +208,9 @@ void Platform_setMemoryValues(Meter* this) {
this->total = pl->totalMem; this->total = pl->totalMem;
this->values[0] = usedMem; this->values[0] = usedMem;
this->values[1] = buffersMem; this->values[1] = buffersMem;
this->values[2] = cachedMem; // this->values[2] = "shared memory, like tmpfs and shm"
this->values[3] = cachedMem;
// this->values[4] = "available memory"
} }
void Platform_setSwapValues(Meter* this) { void Platform_setSwapValues(Meter* this) {

View File

@ -218,7 +218,9 @@ void Platform_setMemoryValues(Meter* this) {
this->total = pl->totalMem; this->total = pl->totalMem;
this->values[0] = pl->usedMem; this->values[0] = pl->usedMem;
this->values[1] = pl->buffersMem; this->values[1] = pl->buffersMem;
this->values[2] = pl->cachedMem; // this->values[2] = "shared memory, like tmpfs and shm"
this->values[3] = pl->cachedMem;
// this->values[4] = "available memory"
} }
void Platform_setSwapValues(Meter* this) { void Platform_setSwapValues(Meter* this) {