我应该为TimesTen数据库使用大页面吗?如果是,该如何配置?

问题描述

我听说建议对TimesTen数据库使用的内存使用大页面。那是对的吗?如果是这样,我如何配置OS和TimesTen以确保其使用大页面

解决方法

如果您的数据库很大,则使用大页面是有益的;如果数据库的大小> = 256 GB,则必须使用大页面。您应该使用显式配置的大页面透明大页面。为了配置合适的操作系统,您需要:

  1. 确定总共需要多少个大页面(所有并发活动数据库的总和)。对于每个数据库,确定数据库共享内存段的大小,然后除以系统巨大的页面大小(默认为2 MB)并四舍五入。将这些值相加即可得出大页面的数量。对于系统上的所有其他活动,您必须保留没有分配给大页面的足够内存,这一点至关重要。

  2. 编辑文件 /etc/sysctl.conf 并添加(或修改)行

vm.nr_hugepages = N

其中 N 是您确定的值。

  1. 您还需要添加/修改此行

vm.hugetlb_shm_group = timesten_instance_admin_gid

其中 timesten_instance_admin_gid 是TimesTen实例管理员的用户的数字组ID。

  1. 确保允许TimesTen实例管理员用户锁定足够的内存(始终锁定大页面)。通常,这是通过 /etc/security/limits.conf (内存锁参数)中的条目完成的,但是如果您正在systemd下运行TimesTen守护程序,则需要查阅相关文档以了解如何应用设置在那种环境中。

  2. 如果必须进行上述任何更改,请重新启动系统。

  3. 检查是否已配置了预期的大页面数量( cat / proc / meminfo )。

TimesTen 18.1和更高版本在创建数据库内存段时将自动尝试使用大页面。如果尝试失败,它将尝试转而使用常规内存。因此,不需要在TimesTen侧进行特殊配置。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...