1 限制 CPU 使用率
pg_pcpu_limit 的原理: 为进程预设一个 cpu 占用率上限,并实时监控进程是否超出此上限值,若超出则让该进程暂停运行一段时间。pg_pcpu_limit 使用 SIGSTOP 和 SIGCONT 这两个信号来控制进程。它不会修改进程的 nice 值,而是通过监控进程的 CPU 占用率来做出动态调整。
限制程序CPU使用率:
1) 指定PID号
# 限制PID 为21203 的程式其CPU 用量上限为50%
pg_pcpu_limit --pid 21203 --limit 50
2)指定程序的名称
pg_pcpu_limit --exe md5sum --limit 50
--pid是进程号
--limit是进程使用CPU百分比。
--exe是程序名称
CPU资源控制步骤
1)启动一个客户进程,cpu资源占满进程
打开hsql运行一个过程,代码如下
DECLARE
V_A NUMBER;
BEGIN
while(true)
loop
V_A := factorial(20000);
end loop;
END;
/

查看CPU使用资源情况,使用命令top

3)使用命令来限制CPU资源
pg_pcpu_limit -p 进程PID -l 使用率
Pg_pcpu_limit -p 1507281 -l 40

4) 查看CPU使用资源情况,使用命令top

2 限制用户的连接数
创建用户,并限制。
create user test with password 'halo';
限制用户连接数。
alter user test connection limit 2;
连接到第3个会话,并且同时用用户test连接,会话连接不上会报错。

3 空闲时会话退出时长
idle_session_timeout
当一个会话连接长时间没有执行或者活动时,会将会话释放,可以释放缓存。
idle_session_timeout:默认值为0,表示禁用,其单位是毫秒。
alter system set idle_session_timeout=5000;
select pg_reload_conf();
show idle_session_timeout;
过5S后输入命令,就需要重连接。





