安装和配置JIT

版权声明:本文为博主原创之文章,未经博主允许谢绝转载。 https://blog.csdn.net/pg_hgdb/article/details/85112930

Just-in-Time(JIT)即时编译是PostgreSQL 11版本中的新特性。使用JIT可以带来性能提升。

使用JIT安装PostgreSQL。有两种实现方式:

1)从PGDG存储库中的包中获取PostgreSQL。

2)从源代码构建PostgreSQL。

1.从PGDG存储库中的包中获取PostgreSQL
从源代码编译需要我们安装所有编译器和工具。出于各种原因,我们可能希望避免这种情况。

以下是在CentOS 7上使用JIT功能进行最低限度安装PostgreSQL的步骤:

1)安装PGDG repo并安装PostgreSQL服务器包。

如果我们不需要JIT功能,这通常是最低限度的安装:

[root@localhost ~]# yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm

[root@localhost ~]# yum install postgresql11-server

如果我们不需要JIT,可以初始化数据目录并启动服务:

[root@localhost ~]# /usr/pgsql-11/bin/postgresql*-setup initdb
[root@localhost ~]# systemctl start postgresql-11

2)安装EPEL存储库。

[root@localhost ~]# yum install epel-release

3)使用llvmjit安装PostgreSQL包。

[root@localhost ~]# yum install postgresql11-llvmjit

由于我们已经添加了EPEL存储库,现在可以通过YUM解析依赖性,它可以从EPEL中提取和安装必要的包。

2.从源代码构建PostgreSQL

1)下载PostgreSQL源码tarball并解压缩。

[root@localhost ~]# tar -zxvf postgresql-11.0.tar.gz

2)获取SCL存储库和安装工具集。

最新版本的LLVM,CLang和GCC在SCL中提供:

[root@localhost ~]# yum install centos-release-scl

[root@localhost ~]# yum install llvm-toolset-7 llvm-toolset-7-llvm-devel.x86_64

3)环境变量设置。

修改用户的环境变量:

[postgres@localhost ~]$ vim .bash_profile

添加工具的PATH:

PATH=/opt/rh/devtoolset-7/root/usr/bin/:/opt/rh/llvm-toolset-7/root/usr/bin/:$PATH

使环境变量生效:

[postgres@localhost ~]$ source .bash_profile

4)安装其他库/工具。

安装其他您需要的库或工具。例如:

[root@localhost ~]# yum install readline-devel zlib-devel libxml2-devel openssl-devel gcc

5)使用-with-llvm选项配置并make。

例如,设置PostgreSQL的安装目录为/usr/local/pgsql/pg11。

[root@localhost postgresql-11.0]# ./configure --prefix=/usr/local/pgsql/pg11 --with-openssl --with-libxml --with-zlib --with-llvm

[root@localhost postgresql-11.0]# make

[root@localhost postgresql-11.0]# make install

这样安装完毕后,PostgreSQL就带有了JIT功能。

默认情况下,PostgreSQL 11中禁用了JIT功能。

postgres=# SHOW jit;

 jit 

-----

 off

(1 row)

启用jit:

postgres=# ALTER SYSTEM SET jit=on;

ALTER SYSTEM

postgres=# SELECT pg_reload_conf();

 pg_reload_conf 

----------------

 t

(1 row)

postgres=# SHOW jit;

 jit 

-----

 on

(1 row)

By Kalath

猜你喜欢

转载自blog.csdn.net/pg_hgdb/article/details/85112930
JIT
今日推荐