Postgresql安装与基本使用

2020-06-17 00:00:00 修改 数据库 操作 队列 透明

环境:centos7.4、postgresql-10

目的:熟悉postgresql的安装与基本使用

大纲:

安装前的预备工作(优化,可无)

postgresql安装与配置

使用postgresql


------- 安装前的预备工作(优化,可无) -------

1 禁止内存管理的透明大页模式

1.1 透明大页原理

memory consist of pages, 1 page 4096 字节,1MB memory 256 page

CPU 有内嵌的内存管理单元,这些units include 页面列表

现在内存愈来愈大,管理大容量内存有两种方法

hardware method:增加处理器硬件内存管理单元中页表数,成本昂贵

software method:增大页面大小,目前红帽子采用超大页面方法

超大页面(标准大页)是 2MB 和 1GB 大小的内存块。其中1GB 页是 TB 内存佳选择。

透明超大页面(THP),超大页面必须在引导时分配,很难管理,因此引出THP,可自动创建、管理和使用超大页面的大多数方面。

这两者的区别在于大页的分配机制,标准大页管理是预分配的方式,而透明大页管理则是动态分配的方式。目前透明大页与传统大页混合使用会出现一些问题,导致性能问题和系统重启。

从Redhat6(CentOS6)开始,系统默认自动启动透明超大页面。

然而,ORACLE、Postgresql等数据库使用标准大页,开启THP会导致异常节点重启和性能问题。因此一般建议关闭THP。

1.2 查看透明大页是否启用

cat /sys/kernel/mm/transparent_hugepage/enabled

输出结果为[always]表示透明大页启用了;[never]表示透明大页禁用、[madvise]表示只在MADV_HUGEPAGE标志的VMA中启用透明大页

1.3 禁用透明大页功能

1.3.1 方法一:修改grub.conf配置文件(推荐)

GRUB是一个多重操作系统启动管理器,是用来引导不同的系统的。

修改

exec command: grub2-mkconfig -o /boot/grub2/grub.cfg

reboot

确认修改成功:cat /sys/kernel/mm/transparent_hugepage/enabled

1.3.2 方法二:修改启动加载文件/etc/rc.d/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

#修改 io scheduler为deadline
echo deadline > /sys/block/sda/queue/scheduler 

相关文章