首页 > 系统相关 >Linux内核参数-共享内存

Linux内核参数-共享内存

时间:2022-09-07 19:33:06浏览次数:171  
标签:kernel shmmax 参数 内存 Linux getconf 共享内存 内核

在数据库配置过程中经常会遇到系统内核参数配置,而其中比较关键的有关于共享内存参数的配置

首先解释几个定义

共享内存
共享内存,顾名思义即系统中两个或多个进程可以共同访问的内存区域,数据库一般使用共享内存来存储热数据,多个进程可以访问相同的内存数据,尽量避免磁盘IO,提升性能。
共享内存段
共享内存段,可以理解为将共享内存分为一块一块的区域,每块区域即为一个共享内存段。
共享内存页
共享内存页为共享内存的组织单元。

用getconf _PHYS_PAGES查看系统可用的内存页总量,用getconf PAGE_SIZE查看内存页的大小。

 

 我的可用内存大小是2002241*4096/1024/1024 M=7821M

 

 

 

三个参数含义:

kernel.shmmax
这个参数定义了单个进程在它本身的虚拟地址空间里可以访问的单个共享内存段的最大值
在Oracle场景下,由于SGA由共享内存组成,因此SHMMAX可能会限制SGA的大小。 SHMMAX应略大于SGA大小。
kernel.shmall
这个参数定义了系统级别可以用的所有共享内存页的数量。
因为kernel.shmmax是单个内存段可使用的共享内存,所以kernel.shmall的大小应大于等于kernel.shmmax的内存大小,即ceil(shmmax/PAGE_SIZE)。

kernel.shmmni
这个参数定义了在系统层面最大的共享内存段的数量。
默认值4096,一般不需要修改

在数据库场景下,我们通常会将系统内存的一半作为共享内存,那么简单的计算公式为

kernel.shmall = echo $(expr $(getconf _PHYS_PAGES) / 2)

kernel.shmmax = echo $(expr $(getconf _PHYS_PAGES) / 2 \* $(getconf PAGE_SIZE))

参数配置对数据库的影响

  • 如果共享内存配置的过小,那么数据库的可用的数据缓存空间过小,影响数据库性能。
  • 如果共享内存配置的过大,共享内存占用了其它进程可使用的内存空间,容易导致OOM的发生。

 

标签:kernel,shmmax,参数,内存,Linux,getconf,共享内存,内核
From: https://www.cnblogs.com/JennyYu/p/16667013.html

相关文章

  • Linux防火墙放行端口
      CentOS7采用新的firewalld,CentOS6及以前版本采用iptables,不过firewalld底层仍然调用的是iptables1、查看已经开放的端口firewall-cmd--list-ports2、放行端......
  • [安装配置] Linux docker 安装
    官方安装文档地址:https://docs.docker.com/engine/install/centos/1.卸载旧版本dockersudoyumremovedocker\docker-client\......
  • linux 内核参数优化
    linux内核参数优化//允许非本地Ip地址socket监听net.ipv4.ip_nonlocal_bind=1//开启ipv4转发net.ipv4.ip_forward=1//是否开启数据包时间戳net.ipv4.tcp_time......
  • 交叉编译移植Python到arm架构下的Linux系统
    参考:https://blog.csdn.net/weixin_41922484/;https://blog.csdn.net/qq_28351465/article/details/54406180;  https://cloud.tencent.com/developer/articl......
  • linux 信号概念
    信号的概念信号(Signal)是一种软件中断,比如Ctrl+C的退出命令实质上就是使用了信号。信号在Linux操作系统中提供了一种处理异步事件的方法,可以很好地在多个进程之间进行同步......
  • Linux系统配置(防火墙)
    前言linux系统服务器如果作为网关服务器或网络服务器来使用时,配置规划防火墙能够很好的为服务器提供安全保障,Linux系统的RHEL7系列之前默认是通过iptables管理防火墙,......
  • Linux 下 tar 打包命令详细教程
    转:Linux下tar打包命令详细教程 1.打包:选项“-cvf”一般是习惯用法,记住打包时需要指定打包之后的文件名,而且要用“.tar”作为扩展名。打包目录也是如此:......
  • LFS(Linux From Scratch)构建过程全记录(三):准备并下载所需的软件包
    写在前面本文将记录构建LFS的过程中,下载软件包的全过程 准备下载的地址我们需要创建一个文件夹,地址为$LFS/sources,用于保存对应的源码输入的指令如下:sudomkdir-v......
  • Linux 配置 jdk 环境变量
    本文是为了自己学习记录的,有参考各路大神在安装之前,查看当前Linux系统是否已经安装java,输入rpm-qa|grepjava卸载两个openJDK输入rpm-e--nodeps要卸载的软件......
  • linux环境配置 (redis、jdk、nginx、mysql)
    linux环境配置环境准备服务器:腾讯云服务器操作系统:centos8.0终端控制器:finalshell3.9.34redis7.0.4jdk1.8.0nginx-1.21.3mysql8.0.30redis安装创建或选......