Postgresql-11.X 性能优化详解
发表于:2024-09-26 作者:千家信息网编辑
千家信息网最后更新 2024年09月26日,postgres 性能优化系统优化修改 /etc/grub.conf关闭 numa=off ,修改磁盘IO调度方式 elevator=deadline修改方法:grubby --update-kern
千家信息网最后更新 2024年09月26日Postgresql-11.X 性能优化详解
postgres 性能优化
系统优化
修改 /etc/grub.conf
关闭 numa=off ,修改磁盘IO调度方式 elevator=deadline
修改方法:
grubby --update-kernel=ALL --args="transparent_hugepage=never" --args="elevator=deadline"验证:grubby --info=ALL返回args="ro crashkernel=auto rhgb quiet numa=off elevator=deadline"
关闭内存大页 hugepage
验证是否开启方法1: 如果以下文件不存在,则是THP已经从内核中移除。/sys/kernel/mm/transparent_hugepage or /sys/kernel/mm/redhat_transparent_hugepage验证是否开启方法2: cat /sys/kernel/mm/transparent_hugepage/enabled[always] madvise never[always] == 》表示开启
禁用内存大页
方法:
修改 /etc/rc.local
# vi /etc/rc.local #追加,禁用大页if test -f /sys/kernel/mm/transparent_hugepage/enabled; then echo never > /sys/kernel/mm/transparent_hugepage/enabledfiif test -f /sys/kernel/mm/transparent_hugepage/defrag; then echo never > /sys/kernel/mm/transparent_hugepage/defragfi
内核优化
vi /etc/sysctl.conf
添加内容如下:
vm.swappiness = 0kernel.shmmax=135497418752net.core.rmem_max = 4194304net.core.wmem_max = 4194304net.core.rmem_default = 262144net.core.wmem_default = 262144net.ipv4.ip_local_port_range = 9000 65535kernel.sem = 50100 64128000 50100 1280vm.dirty_background_bytes = 102400000vm.dirty_ratio = 80vm.nr_hugepages = 102352/etc/security/limits.conf* soft nofile 655360* hard nofile 655360* soft nproc 655360* hard nproc 655360* soft stack unlimited* hard stack unlimited* soft memlock 250000000* hard memlock 250000000
块设备预读
blockdev --setra 16384 /dev/sda设置开机启动生效:echo "blockdev --setra 16384 /dev/sda" >> /etc/rc.local
postgres 数据层面优化
涉及命令令
ALTER SYSTEM SET
ALTER SYSTEM SET configuration_parameter { TO | = } { value | 'value' | DEFAULT }
Case:
alter system set max_connections='50';
SHOW configuration_parameter
Case:
show max_connections
实现原理:
调用该命令的用户必须具有超级用户权限。修改系统配置文件postgresql.conf,通过系统信号,重新加载该配置文件.
查询postgresql配置选项生效级别和默认值信息;
select name, context,setting,unit,source,sourcefile from pg_settings;
internal: 编译期间的设置,只有重新编译才能生效。postmaster: 只有服务重启才能生效。sighup: 给服务器发送HUP信号会是服务器重新加载postgresql.conf配置,可以立即生效。backend: 与sighup类似,但是不影响正在运行的会话,只在新会话中生效superuser: 使用superuser(如postgres)才能更改,不用重新加载所有配置即可生效。user: 单个会话用户可以在任意时间做修改,只会影响该会话。
优化数据库主机配置
系统
more /etc/redhat-release CentOS Linux release 7.5.1804 (Core)
内核
uname -aLinux jp33e506-3-22.ptengine.com 3.10.0-862.2.3.el7.x86_64 #1 SMP Wed May 9 18:05:47 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
内存
Mem: 128763
核心优化选项:
postmaster: 只有服务重启才能生效。
alter system set max_connections='50';alter system set shared_buffers='30GB';alter system set wal_buffers='64MB';
sighup: 给服务器发送HUP信号会是服务器重新加载postgresql.conf配置,可以立即生效。
alter system set checkpoint_completion_target='0.9';alter system set checkpoint_timeout='15min';alter system set fsync='off';
superuser: 使用superuser(如postgres)才能更改,不用重新加载所有配置即可生效。
alter system set commit_delay='10';
user: 单个会话用户可以在任意时间做修改,只会影响该会话。
alter system set autovacuum_work_mem='1GB';alter system set commit_siblings='6';alter system set effective_cache_size='50GB';alter system set maintenance_work_mem='1GB';alter system set work_mem='16MB';
查看 优化结果
show max_connections;show shared_buffers;show wal_buffers;show checkpoint_completion_target;show checkpoint_timeout;show fsync;show commit_delay;show autovacuum_work_mem;show commit_siblings;show effective_cache_size;show maintenance_work_mem;show work_mem;
重新数据库配置的方法
部分优化项重启后才能生效:
1.用超级用户运行postgres=# SELECT pg_reload_conf();2.用UNIX的kill手动发起HUP信号$kill -HUP PID3.使用pg_ctl命令触发SIGHUP信号$pg_ctl reload
或者
systemctl reload postgresql-11.servicesystemctl restart postgresql-11.servicesystemctl status postgresql-11.service
优化后性能对比
绿线为分界线
CPU
参考文档:
https://www.kancloud.cn/taobaomysql/monthly/140098
配置
服务
信号
方法
用户
服务器
系统
内存
内核
只有
数据
文件
影响
验证
性能
不用
单个
命令
数据库
时间
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广州越秀区DNS服务器地址
计算机网络技术专业的文章
筑梦网络技术论坛
苏州优才聚软件开发公司
山东电力公司参加网络安全大赛
崇明区互联网视频系统服务器
计算机四级网络技术2018
重庆pdu服务器专用电源制造商
河南c语言软件开发价格
全国城市的shp点数据库
最大的网络安全威胁
网络安全审计下一步打算
宽带连接电视无法解析服务器域名
数据库查询什么意思
数据库提交错误怎么办
互联网科技人才招聘
数据库热备视频教程
计算机软件开发的wbs
nat构建网络安全
大学生网络安全文明竞赛
《网络安全法》第41条规定
数据库 编目
直播视频怎么上传到云服务器
gcp服务器 流量费
河南云锐网络技术有限公司电话
济南商机互联网科技有限公司
小冰冰传奇怎么查询自己的服务器
数据库原型
app 安卓编程软件开发
山东阿帕网络技术怎么样