postgresql 开启大页_Postgresql-11.X 性能优化详解
系统优化
修改 /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/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
内核优化
vi /etc/sysctl.conf
添加内容如下:
vm.swappiness = 0
kernel.shmmax=135497418752
net.core.rmem_max = 4194304
net.core.wmem_max = 4194304
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.ipv4.ip_local_port_range = 9000 65535
kernel.sem = 50100 64128000 50100 1280
vm.dirty_background_bytes = 102400000
vm.dirty_ratio = 80
vm.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 -a
Linux 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 PID
3.使用pg_ctl命令触发SIGHUP信号
$pg_ctl reload
优化后性能对比
绿线为分界线
CPU
参考文档:
https://www.kancloud.cn/taobaomysql/monthly/140098
postgresql 开启大页_Postgresql-11.X 性能优化详解相关推荐
- T- SQL性能优化详解
http://www.cnblogs.com/Shaina/archive/2012/04/22/2464576.html 故事开篇:你和你的团队经过不懈努力,终于使网站成功上线,刚开始时,注册用户较 ...
- Android UI性能优化详解
此文来自于MrPeak杂货铺,由于没法转载,只能贴这了,妄作者见谅:http://mrpeak.cn/android/2016/01/11/android-performance-ui 设计师,开发人 ...
- 转载:SqlServer数据库性能优化详解
本文转载自:http://blog.csdn.net/andylaudotnet/article/details/1763573 性能调节的目的是通过将网络流通.磁盘 I/O 和 CPU 时间减到最小 ...
- 一零四、前端性能优化详解
1 前端性能优化 介绍 页面性能优化 浏览器 浏览器的主要作用 浏览器的组成结构 浏览器是多进程的 浏览器的渲染机制 重排reflow与重绘repaint 页面加载缓慢的原因 浏览器部分 代码部分 优 ...
- MYSQL性能优化详解(二)
接着上一篇学习:http://www.cnblogs.com/quanzhiguo/p/6401453.html 七.MySQL数据库Schema设计的性能优化 高效的模型设计 适度冗余-让Query ...
- JavaScript性能优化详解
性能优化介绍 性能优化是不可避免的 无处不在的前端性能优化 function func(){arr = []arr[100000] = 'lg is a dog' } func() JavaScrip ...
- logback性能优化详解
前言 不正确的日志打印不但会降低程序运行性能,还会占用大量IO资源和硬盘存储空间. 本文主要总结一些能提高日志打印性能的手段. 一.通过AsyncAppender异步输出日志 我们通常使用的Conso ...
- SQL--数据库性能优化详解
转:http://blog.csdn.net/andylaudotnet/article/details/1763573 转载于:https://www.cnblogs.com/zcttxs/p/32 ...
- MySQL 开启大页内存
1. 开启大页内存 概述: 有些硬件或操作系统支持大于默认值的内存页(通常为4KB),这个时取决于底层硬件和操作系统.执行大页内存可以检查设备缓冲区的丢失.也可以改进性能. MySQL 使用Innod ...
最新文章
- linux系统桌面缺色,红旗系统如何用?
- 年纪都这么大了,还在倒班工作......
- java for循环 等待_java – 主题:忙等待 – 空循环
- 数学 —— 其他 —— 快速求逆平方根
- Magento教程 19:客户评论的审核与发布! (Pending Reviews)
- Visual Studio 2019 RC入门——第2部分
- javascript——forEach跳出循环
- 机械工程师计算机证书考试科目,机械工程师考试科目 内容有哪些
- exynos4412,tegra3,msm8960性能对比,参考对照exynos4210
- winform中ComboBox下拉框控件的动态数据填充
- Autodesk BIM 360 全球在线骇客马拉松
- iOS移动开发1x 、2x 、3x图片介绍
- Audio Hijack Pro 3.7.4 录制应用程序内播放的声音
- 线性规划问题之案例1(奶制品的生产与销售)
- 要依赖于抽象,不要依赖于具体
- Python | datetime与time模块
- VisualStudio各个版本彻底干净卸载
- OpenStack关键技术系列: 最全OpenStack知识科普
- 开题报告:基于java电子商务购物商城网站系统 毕业设计论文开题报告模板
- 宝藏字幕软件 | PotPlayer
热门文章
- 柚柚建议收藏,100道Python练手题目(适合新手练级)
- 3D卷积的GEMM+IM2COL实现
- 特征选择降维聚类变换集群变换KL变换模式识别
- 【12月学习进度12/31——特征提取】离散KL变换原理、实例以及matlab实现(转载)
- ESP8266学习进阶实用篇(1)——SmartConfig智能配网(附带完整简配版有害气体检测仪开发)
- Android模拟器(ADM)打不开/data,无法导出数据库文件
- 西门子低代码部署亚马逊AWS容器服务最佳实践
- 一次函数在c语言中,一次函数练习题精选
- 笔记本键盘按键错乱怎么办
- Failed to start LSB: Bring up/down networking