我听说建议对TimesTen数据库使用的内存使用巨大的页面。这是正确的吗?如果是,我该如何配置操作系统和TimesTen以确保它使用巨大的页面?
如果你有一个大型数据库,使用巨大的页面是有益的,如果你的数据库是>=256 GB大小。您应该使用显式配置的巨大页面,而不是透明的巨大页面。为了配置合适的操作系统,您需要:
-
确定总共需要多少个巨大的页面(所有并发活动数据库的总和(。对于每个数据库,确定数据库共享内存段的大小,除以系统巨大的页面大小(默认值为2MB(并四舍五入。将这些值求和可以得到巨大页面的数量。至关重要的是,要留出足够的内存,而不是分配给系统上所有其他活动的巨大页面。
-
编辑文件/etc/sysctl.conf并添加(或修改(行
vm.nr_hugepages=N
其中N是您确定的值。
- 您还需要添加/修改此行
vm.hugetlb_shm_group=timesten_instance_admin_gid
其中timesten_instance_admin_gid是作为timesten实例管理员的用户的数字组id。
-
确保TimesTen实例管理员用户被允许锁定足够的内存(巨大的页面总是被锁定的(。通常情况下,这是通过/etc/security/limits.conf(memlock参数(中的条目来完成的,但如果您在systemd下运行TimesTen守护进程,则需要查阅相关文档,了解如何在该环境中应用设置。
-
如果必须进行上述任何更改,请重新启动系统。
-
检查预期数量的巨大页面是否已配置并可用(cat/proc/meminfo(。
TimesTen 18.1及更新版本在创建数据库内存段时会自动尝试使用巨大的页面。如果尝试失败,那么它将尝试恢复使用常规内存。因此,TimesTen侧不需要特殊配置。