我听说建议使用大页面作为 TimesTen 数据库使用的内存。那是对的吗?如果是这样,我如何配置操作系统和 TimesTen 以确保它使用大页面?
1 回答
如果您有一个大型数据库,则使用大页面是有益的,如果您的数据库大小将 >= 256 GB,则使用大页面是强制性的。您应该使用显式配置的大页面而不是透明的大页面。为了配置合适的操作系统,您需要:
确定总共需要多少大页面(所有并发活动数据库的总和)。对于每个数据库,确定数据库共享内存段的大小,除以系统大页面大小(默认为 2 MB)并向上取整。对这些值求和以获得大页面的数量。为系统上的所有其他活动留出足够的未分配给大页面的内存至关重要。
编辑文件/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 端不需要特殊配置。