Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 0505c6c

Browse files
committed
Merge branch 'PGPROEE10-pgpro-791' into PGPROEE10
2 parents 462b4f8 + 2fccf71 commit 0505c6c

File tree

6 files changed

+172
-131
lines changed

6 files changed

+172
-131
lines changed

contrib/pg_cgroups/Makefile

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# contrib/pg_cgroups/Makefile
2+
3+
MODULE_big = pg_cgroups
4+
OBJS = pg_cgroups.o $(WIN32RES)
5+
6+
EXTENSION = pg_cgroups
7+
DATA = pg_cgroups--1.0
8+
PGFILEDESC = "pg_cgroups - limit resource usage"
9+
10+
ifdef USE_PGXS
11+
PG_CONFIG = pg_config
12+
PGXS := $(shell $(PG_CONFIG) --pgxs)
13+
include $(PGXS)
14+
else
15+
subdir = contrib/pg_cgroups
16+
top_builddir = ../..
17+
include $(top_builddir)/src/Makefile.global
18+
include $(top_srcdir)/contrib/contrib-global.mk
19+
endif

contrib/pg_cgroups/pg_cgroups.c

Whitespace-only changes.

contrib/pg_cgroups/pg_cgroups.control

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# pg_cgroups extension
2+
comment = 'limit PostgreSQL resource usage'
3+
default_version = '1.0'
4+
module_pathname = '$libdir/pg_cgroups'
5+
relocatable = true

src/backend/storage/ipc/procarray.c

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4095,7 +4095,10 @@ ProcArrayGetPriorityUsageTotals(uint64 *spent_sum, uint64 *blks_read_sum,
40954095
uint64 *blks_write_sum,
40964096
uint32 *cpu_priority_sum,
40974097
uint32 *ioread_priority_sum,
4098-
uint32 *iowrite_priority_sum)
4098+
uint32 *iowrite_priority_sum,
4099+
uint32 *cpu_priority_max,
4100+
uint32 *ioread_priority_max,
4101+
uint32 *iowrite_priority_max)
40994102
{
41004103
ProcArrayStruct *arrayP = procArray;
41014104
int i;
@@ -4106,24 +4109,38 @@ ProcArrayGetPriorityUsageTotals(uint64 *spent_sum, uint64 *blks_read_sum,
41064109
*cpu_priority_sum = 0;
41074110
*ioread_priority_sum = 0;
41084111
*iowrite_priority_sum = 0;
4112+
*cpu_priority_max = 0;
4113+
*ioread_priority_max = 0;
4114+
*iowrite_priority_max = 0;
41094115

41104116
LWLockAcquire(ProcArrayLock, LW_SHARED);
41114117

41124118
for (i = 0; i < arrayP->numProcs; i++)
41134119
{
41144120
int pgprocno = arrayP->pgprocnos[i];
41154121
volatile PGPROC *proc = &allProcs[pgprocno];
4122+
int32 cpu_priority,
4123+
ioread_priority,
4124+
iowrite_priority;
41164125

41174126
*spent_sum += pg_atomic_read_u64(&proc->priorityStats.ru_spent);
41184127
*blks_read_sum += pg_atomic_read_u64(&proc->priorityStats.blks_read);
41194128
*blks_write_sum += pg_atomic_read_u64(&proc->priorityStats.blks_write);
41204129

4121-
*cpu_priority_sum += pg_atomic_read_u32(
4130+
cpu_priority = pg_atomic_read_u32(
41224131
&proc->priorityStats.cpu_priority_value);
4123-
*ioread_priority_sum += pg_atomic_read_u32(
4132+
ioread_priority = pg_atomic_read_u32(
41244133
&proc->priorityStats.ioread_priority_value);
4125-
*iowrite_priority_sum += pg_atomic_read_u32(
4134+
iowrite_priority = pg_atomic_read_u32(
41264135
&proc->priorityStats.iowrite_priority_value);
4136+
4137+
*cpu_priority_sum += cpu_priority;
4138+
*ioread_priority_sum += ioread_priority;
4139+
*iowrite_priority_sum += iowrite_priority;
4140+
4141+
*cpu_priority_max = Max(*cpu_priority_max, cpu_priority);
4142+
*ioread_priority_max = Max(*ioread_priority_max, ioread_priority);
4143+
*iowrite_priority_max = Max(*iowrite_priority_max, iowrite_priority);
41274144
}
41284145

41294146
LWLockRelease(ProcArrayLock);

0 commit comments

Comments
 (0)