YashanDB安装前操作系统参数调整

简介: 本文来自YashanDB官网,主要介绍在Linux环境下安装YashanDB时的系统性能优化配置。内容涵盖服务器hostname设置、关闭交换分区、调整本地端口范围、进程VMA上限及资源限制值、配置大页内存与关闭透明大页等操作。通过这些调整,可提升系统运行效率并避免潜在异常,适用于分布式部署场景,同时提供了具体命令和注意事项以指导用户完成配置。

本文内容来自YashanDB官网,原文内容请见 https://doc.yashandb.com/yashandb/23.3/zh/%E5%AE%89%E8%A3%85%E5%92%8C%E5%8D%87%E7%BA%A7/%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2/%E5%AE%89%E8%A3%85%E5%89%8D%E5%87%86%E5%A4%87/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E5%8F%82%E6%95%B0%E8%B0%83%E6%95%B4.html

当YashanDB安装在Linux环境中时,为使系统达到更好的性能,建议进行下述配置调整。

Note

  • 建议对分布式部署中的所有服务器执行下述调整,否则在业务运行将系统资源耗尽的极端场景中将出现服务退出或业务执行卡顿、报错等异常。

  • 在搭建测试环境或实验环境时,为方便问题定位,可以打开生成core文件的开关(使用ulimit -c查看当前状态),不建议在生产环境中打开此开关以免影响系统效率。具体操作如下:





  - soft core unlimited
  - hard core unlimited
AI 代码解读

Copied!

设置服务器hostname(共享集群)


Note

若部署YashanDB共享集群,必须执行本操作。

服务器名称要求如下:

  • 名称由字母、数字以及下划线组成,且必须以字母开头,长度为[4,64]个字符。
  • 同一个YashanDB共享集群中的服务器名称不能相同。
  • 建议每台服务器上只运行一个实例,若一台服务器需运行多个实例则要求将服务器名称设置为[3,63]个字符。
  1. 执行如下命令,可查看hostname。

  2. 执行如下命令,可按需设置hostname。

关闭交换分区


使用sysctl -a | grep swappiness查看当前状态,建议设置为0以减少内存交换,避免影响系统性能。

Copied!

调整自动分配本地端口范围


使用cat /proc/sys/net/ipv4/ip_local_port_range查看连接可用的本地端口范围,下限值建议大于30000以减少端口冲突。

Copied!

本操作对IPv6同样生效。

调整进程的VMA上限


使用sysctl -a|grep vm.max_map_count查看当前上限值,建议大于2000000以增大数据库进程可拥有的VMA大小。

Copied!

调整资源限制值


将部分资源限制值(使用ulimit -a可查看所有的资源限制值)调整为推荐值或以上,详细信息如下表所示,其中yashan为规划的数据库安装用户示例(具体用户名需以实际规划为准)。

资源项 推荐值 COMMAND 资源项说明
open files 1048576 ulimit -n 1048576

vi /etc/security/limits.conf后添加:
yashan soft nofile 1048576
yashan hard nofile 1048576 | 进程打开的文件数 |
| max user processes | 1048576 | ulimit -u 1048576
vi /etc/security/limits.conf后添加:
yashan soft nproc 1048576
yashan hard nproc 1048576 | 最大用户进程数 |
| max memory size | unlimited | ulimit -m unlimited
vi /etc/security/limits.conf后添加:
yashan soft rss unlimited
yashan hard rss unlimited | 进程最大占用内存值 |
| stack size | 8192 | ulimit -s 8192
vi /etc/security/limits.conf后添加:
yashan soft stack 8192
yashan hard stack 8192 | 进程最大栈空间 |

配置大页内存


YashanDB利用大页内存提高内存访问效率。标准大页内存会在系统启动时预分配,而透明大页会在运行时动态分配大页内存,可能产生运行时错误,造成YashanDB被终止。

建议在安装时配置操作系统,启用大页内存,关闭透明大页(Transparent HugePages)选项,YashanDB服务安装完成后,如需使用大页内存,请修改数据库配置参数USE_LARGE_PAGES为TRUE或ONLY。

Note:

本文仅以适用于大部分Linux的操作步骤为例介绍如何配置大页内存,若实际步骤存在差异,建议参考对应操作系统的官方指引或联系系统服务商解决。

如需深入了解大页内存细节,请参考Linux 内核文档

# 启用大页内存

  1. 执行如下命令查看当前大页内存配置:(回显信息以实际为准)

    
    AnonHugePages:         0 kB
    HugePages_Total:       0
    HugePages_Free:        0
    HugePages_Rsvd:        0
    HugePages_Surp:        0
    Hugepagesize:       2048 kB
    
    AI 代码解读

    Copied!

    • AnonHugePages:当前透明大页使用的内存总量,可参考本文档关闭。
    • HugePages_Total:大页池中页面总数。
    • HugePages_Free:大页池中空闲页面数。
    • HugePages_Rsvd:系统预留(reserved)的页面数。表示应用已申请了对应数量的大页,但由于应用尚未访问这些页面,系统还没有真正从物理内存分配这些页面。应用最多还能申请HugePages_Free - HugePages_Rsvd个大页。
    • HugePages_Surp:当开启nr_overcommit_hugepages时,系统允许换出一些大页,使得系统支持应用申请超出大页池容量的页面,如果应用频繁访问大页,可能对性能存在负面影响。
    • Hugepagesize:大页的尺寸,不同平台支持的大页尺寸有差异,x86平台支持2M、1G,通常为2M。

    若HugePages_Total = 0、HugePages_Free = 0或HugePages_Free - HugePages_Rsvd < YashanDB需求,则需修改系统配置,启用大页内存或增加大页内存池容量。

  2. 估算大页内存需求,需先估算YashanDB的大页内存需求:

    | 配置参数 | 默认值 |
    | --- | --- |
    | DATA_BUFFER_SIZE | 32M |
    | REDO_BUFFER_SIZE | 8M |
    | VM_BUFFER_SIZE | 16M |
    | SHARE_POOL_SIZE | 64M |
    | LARGE_POOL_SIZE | 8M |
    | DBWR_BUFFER_SIZE | 4M |
    | WORK_AREA_POOL_SIZE | 16M |
    | AUDIT_QUEUE_SIZE | 16M |

    根据配置计算YashanDB所需内存总量UserSize,即上述所有配置项的总和(未配置的项目按默认值计算)。如需规划使用MMS表空间,还需估计MMS表空间所需内存总量MMSSize。

    • YashanDB至少需要大页内存空间LargePageSize = (UserSize + MMSSize + 64M) * 1.2。

    • YashanDB需要的大页内存页面数HugePages = Ceil(LargePageSize / Hugepagesize)。

> **Caution**:
> 
> 若将所有内存都划归大页管理,可能造成系统无法启动或其他异常,**请谨慎使用**。
> 
> 配置时,需确保系统内存容量足以支持大页配置的数值。
AI 代码解读
  1. 启用大页内存并根据上述估算值更改相关配置:

    本文以大页尺寸2M、申请16个大页(即规划32M大页内存)为例,生产环境配置请以实际为准。

    编辑/etc/sysctl.conf文件:

    追加以下配置:

    vm.nr_hugepages=16
    vm.nr_overcommit_hugepages=0
    
    AI 代码解读

    Copied!

  2. 重启系统生效。

# 关闭透明大页

  1. 部分操作系统默认开启了透明大页选项,可执行以下命令确认:

    Copied!

    • 若显示[always] madvise neveralways [madvise] never,则说明透明大页已开启。

    • 若显示always madvise [never],则说明透明大页已关闭。

  2. 执行vi /etc/default/grub,在GRUB_CMDLINE_LINUX中添加或修改参数transparent_hugepage=never

       GRUB_TIMEOUT=5
       GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
       GRUB_DEFAULT=saved
       GRUB_DISABLE_SUBMENU=true
       GRUB_TERMINAL_OUTPUT="console"
       GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet transparent_hugepage=never"
       GRUB_DISABLE_RECOVERY="true"
    
    AI 代码解读

    Copied!

  3. 通过以下指令检查当前系统的引导类型:

    两种引导的启动文件路径分别为:

    • BIOS:/boot/grub2/grub.cfg

    • UEFI:/boot/efi/EFI/\<distro_name>/grub.cfgdistro_name为系统发行版本名称,例如ubuntufedoradebian等。

  4. 执行grub2–mkconfig指令重新配置grub.cfg

    Copied!

  5. 重启操作系统,使配置永久生效。

  6. 验证透明大页已关闭:

    Copied!

    应显示always madvise [never]

目录
打赏
0
2
2
0
98
分享
相关文章
YashanDB操作系统身份认证配置
本文来自YashanDB官网,主要介绍如何配置操作系统身份认证,帮助数据库管理员便捷登录。功能由`yasdb_net.ini`文件中的`ENABLE_LOCAL_OSAUTH`参数控制,默认值为`on`。文章详细说明了开启、关闭及管理操作系统认证的步骤,包括创建或移除用户组YASDBA、修改配置文件以及验证认证功能等操作。相关认证方式可查阅[用户及认证]
os-copilot安装和使用体验测评
OS Copilot是阿里云推出的操作系统智能助手,基于大模型技术,支持自然语言问答、命令执行和系统运维调优等功能,帮助用户更高效地使用Linux系统。本文介绍了OS Copilot的产品优势、功能特点及使用方法,包括对话模式、-t/-f/管道等参数的使用,以及安装和配置步骤。通过OS Copilot,用户可以简化复杂命令的操作,提升工作效率。同时,文中也分享了个人开发者在实际使用中的体验和建议,指出了一些有待改进的地方。
os-copilot安装与多项功能测评
本文介绍了os-copilot的安装及多项功能测评。首先,通过xShell连接服务器并使用`rpm -q os-copilot`检查是否已安装,若未安装则用`yum install`命令安装。接着,配置ACCESS_KEY信息以连接阿里云服务。深入测试部分展示了-t参数用于环境健康检查、-f参数处理复杂任务、|参数解释代码等功能,还演示了编写shell脚本创建和启动Redis的便捷性。这些功能对基础运维和开发人员有较大帮助。
166 14
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
121 30
os-copilot安装_配置_功能测试全集
我是一位中级运维工程师,我平时工作会涉及到 各类服务器的 数据库 与 java环境配置 操作。 我顺利使用了OS Copilot的 -t -f | 功能,我的疑惑是不能在自动操作过程中直接给与脚本运行权限,必须需要自己运行一下 chmod 这个既然有了最高的权限,为什么就不能直接给与运行权限呢。 我认为 -t 功能有用,能解决后台运行基础命令操作。 我认为 -f 功能有用,可以通过task文件中撰写连续任务操作。 我认为 | 对文件理解上有很直接的解读,可以在理解新程序上有很大帮助。
187 86
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
72 10
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
169 5
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
os-copilot安装与多项功能测评,帮助开发人员PHP环境排查问题
本文介绍了OS Copilot在ECS上 Alibaba Cloud Linux的安装与使用,并对其多项参数进行了功能测评。OS Copilot是为操作系统提供智能化辅助的工具,支持自动化任务、智能推荐、故障排查等功能。安装时需检查是否已安装(`rpm -q os-copilot`),若未安装则用`yum install os-copilot`命令安装,并配置AccessKey信息连接阿里云服务。通过测试不同参数命令,如`-t`参数,展示了其自动化执行和智能生成回答的能力,显著提升运维效率。
os-copilot安装与多项功能测评,帮助开发人员PHP环境排查问题
【独家揭秘2025】VMware Workstation Pro虚拟机:免费安装教程大放送,一键解锁操作系统模拟神器!
VMware Workstation Pro 是由威睿(VMware)公司开发的一款功能强大的桌面虚拟化软件,允许用户在同一台物理计算机上同时运行多个操作系统,如Windows、..
96 2
【独家揭秘2025】VMware Workstation Pro虚拟机:免费安装教程大放送,一键解锁操作系统模拟神器!
【02】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-准备工具安装-编译器DevEco Studio安装-arkts编程语言认识-编译器devco-鸿蒙SDK安装-模拟器环境调试-hyper虚拟化开启-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【02】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-准备工具安装-编译器DevEco Studio安装-arkts编程语言认识-编译器devco-鸿蒙SDK安装-模拟器环境调试-hyper虚拟化开启-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
113 2
【02】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-准备工具安装-编译器DevEco Studio安装-arkts编程语言认识-编译器devco-鸿蒙SDK安装-模拟器环境调试-hyper虚拟化开启-全过程实战项目分享-从零开发到上线-优雅草卓伊凡

热门文章

最新文章