5-PostgreSQL服务器配置

2025-01-19 14:02

PostgreSQL服务器配置和客户端验证

服务器配置和操作

管理内核资源

共享内存和信号量
SHMMAX	共享内存段的最大大小(字节)
SHMMIN	共享内存段的最小大小(字节)  最多32个字节。
SHMALL	可用共享内存总量(字节或页数)
SHMSEG	每个进程的最大共享内存段数
SHMMNI	系统范围内的最大共享内存段数
SEMMNI	信号量标识符的最大数量(即集合)
SEMMNS	系统范围内的最大信号量数
SEMMSL	每组的最大信号量数
SEMMAP	信号量映射中的条目数
SEMVMX	信号量的最大值

PostgreSQL每个允许的连接使用一个信号量(max_connections),允许autovacuum工作进程(autovacuum_max_workers)和允许后台进程(max_worker_processes),每组16个.

使用POSIX信号量时,每个允许的连接一个信号量(max_connections),允许的autovacuum worker进程(autovacuum_max_workers)和允许的后台进程(max_worker_processes).

Linux内核资源

默认的最大段大小为32 MB,默认的最大总大小为2097152页。页面几乎总是4096字节.

更改共享内存大小设置

  $ sysctl -w kernel.shmmax=17179869184
	$ sysctl -w kernel.shmall=4194304

限制过度使用内存

	$ sysctl -w vm.overcommit_memory = 2		
	或者: echo -1000 > /proc/self/oom_score_adj 

更改/proc文件系统的内容

	$ echo 17179869184 >/proc/sys/kernel/shmmax
	$ echo 4194304 >/proc/sys/kernel/shmall

资源限制

有大量的shared_buffers时,使用大页面可以减少使用大量连续内存块时的开销.

估计所需的大页面数量,启动PostgreSQL而不启用大页面,并使用/proc文件系统检查postmaster的匿名共享内存段大小以及系统的大页面大小

控制登录期间设置的各种资源限制: /etc/security/limits.conf

确定内核将支持的最大打开文件数: /proc/sys/fs/file-max

  • 查看postmaster的PID

  $ head -1 $PGDATA/postmaster.pid
  18635
  • 检查postmaster的VmPeak值:

  $ grep ^VmPeak /proc/18635/status
  VmPeak:	  223160 kB

  $ pmap 18635 | awk '/rw-s/ && /zero/ {print $2}'
  145064K
  • 系统的大页面大小

  $ grep ^Hugepagesize /proc/meminfo
  Hugepagesize:       2048 kB
  • 计算并设置大页面大小

  计算要使用的大页面大小: 大页面大小=145064/2048

  $ sysctl -w vm.nr_hugepages=71  //注意:71是计算出来的大页面大小.
  • 要验证大量的页面分配情况使用

  $ grep Huge /proc/meminfo
  • 配置文件开启大页面:

  $ vim data/postgresql.conf
  huge_pages = on

可能还需要vm.hugetlb_shm_group通过sysctl设置数据库服务器的操作系统用户权限来使用大页面或授予锁定内存的权限ulimit -l.

每日英语6

  • (Daily English Tips)(6)

What's your phone number?
My phone number is 614-232-6682

Call me.
My name and phone number.

Is it your phone number?
Yes.

Thank you
You're welcome.
相关文章
热点文章
精彩视频
Tags

在线访客: 今日访问量: 昨日访问量: 总访问量:

×
请扫码支付

扫码支付后自动跳转查看