linux vm.overcommit_memory 内存分配参数 简介

目录

vm.overcommit_memory 参数解释

设置方法


vm.overcommit_memory 表示内核在分配内存时候做检查的方式。
这个变量可以取到0,1,2三个值。对取不同的值时的处理方式都定义在内核源码 mm/mmap.c 的 __vm_enough_memory 函数中。

vm.overcommit_memory 参数解释


默认值为:0

从内核文档里得知,该参数有三个值,分别是:

0:当用户空间请求更多的的内存时,内核尝试估算出剩余可用的内存。

1:当设这个参数值为1时,内核允许超量使用内存直到用完为止,主要用于科学计算

2:当设这个参数值为2时,内核会使用一个决不过量使用内存的算法,即系统整个内存地址空间不能超过swap+50%的RAM值,50%参数的设定是在overcommit_ratio中设定。

​​​​​​​
  • 取 1 的时候:此时宏为 OVERCOMMIT_ALWAYS,函数直接 return 0,分配成功。

  • 取 2 的时候:此时宏为 OVERCOMMIT_NEVER,内核计算:内存总量×vm.overcommit_ratio/100+SWAP 的总量,如果申请空间超过此数值,则分配失败。vm.overcommit_ratio 的默认值为50。

  • 取 0 的时候:此时宏为 OVERCOMMIT_GUESS,内核计算:NR_FILE_PAGES 总量+SWAP总量+slab中可以释放的内存总量,如果申请空间超过此数值,则将此数值与空闲内存总量减掉 totalreserve_pages(?) 的总量相加。如果申请空间依然超过此数值,则分配失败。

以上为粗略描述,在实际计算时,如果非root进程,则在计算时候会保留3%的空间,而root进程则没有该限制

设置方法

方法1

编辑/etc/sysctl.conf ,改vm.overcommit_memory=1,然后sysctl -p使配置文件生效          

永久的,重启之后,仍然生效

方法2

sysctl  vm.overcommit_memory=1 或sysctl  -w  vm.overcommit_memory=1              

临时的,重启之后,又恢复为原来的样子

方法3

echo 1 > /proc/sys/vm/overcommit_memory                        

临时的,重启之后,又恢复为原来的样子

Spring Cloud OAuth2 JWT是一种基于Spring Cloud的身份验证和授权解决方案。OAuth2是一种开放标准,用于授权第三方应用程序访问用户资源的安全协议。JWT(JSON Web Token)是一种用于安全传输声明的开放标准。 Spring Cloud OAuth2 JWT通过使用OAuth2和JWT的结合,提供了一种安全的身份验证和授权机制。它使用JWT作为令牌来在用户和资源服务器之间进行认证和授权。JWT包含了加密的用户信息和访问权限,并以密钥进行签名来确保其真实性。 使用Spring Cloud OAuth2 JWT,我们可以实现以下功能: 1. 提供用户身份验证和授权:通过验证用户的凭证和生成JWT令牌来验证用户身份,并授权给他们访问受保护资源的权限。 2. 单点登录(SSO):用户只需登录一次,即可获得访问多个应用程序的令牌,并可以在不再需要登录的情况下访问这些应用程序。 3. 远程授权:通过OAuth2授权服务器,支持远程对受保护资源的访问授权,确保只有被授权的用户能够访问资源。 4. 令牌刷新:JWT令牌在一段时间后会过期,但可以使用刷新令牌来重新生成新的令牌,以延长访问权限。 总之,Spring Cloud OAuth2 JWT提供了一个安全、可靠的身份验证和授权解决方案,可以在分布式系统环境下实现用户身份验证和授权的功能。它结合了OAuth2和JWT标准,提供了一种方便、灵活的身份验证和授权机制,使得开发者能够更好地保护应用程序和用户的安全。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值