min_free_kbytes 设置案例问题解析

简介: LINUX tmpfs 空间使用未达到100% , 内存也未占满。执行任何命令提示 bash: fork: Cannot allocate memory 过几秒时间系统会自动重启。

作者:枫凡

问题背景

服务器内主要运行程序 : Jadeos
问题描述 : LINUX tmpfs 空间使用未达到100% , 内存也未占满。
执行任何命令提示 bash: fork: Cannot allocate memory 过几秒时间系统会自动重启。
但在客户本地环境是没有这种情况的,即使tmpfs 使用达到100%系统未提示Cannot allocate memory
image.png

处理过程

1.首先判断客户是否内存不足导致,每次执行测试操作后,free 结果显示可用内存是有的
2.当进程Process 比较多,导致无法分配pid,也会提示Cannot allocate memory,执行命令pstree -a | wc -l 统计下进程数,排除进程数过多导致的内存无法分配
Cannot allocate memory解析

image.png
3.登录主机内部查看客户客户内部设置min_free_kbytes值为1G
即强制Linux 系统最低保留多少空闲内存(Kbytes),如果系统可用内存低于该值,默认会启用oom killer 或者强制重启
当耗尽内存直至系统最低保存内存时会有两种现象,根据内核参数vm.panic_on_oom 设置值的不同而有不同的行为
vm.panic_on_oom=0 系统会提示oom ,并启动oom-killer杀掉占用最高内存的进程
vm.panic_on_oom =1. 系统关闭oom,不会启动oom-killer,而是会自动重启
oom规则说明

image.png

解决方案

建议客户降低min_free_kbytes值
更改减小min_free_kbytes后,再执行更多次的拷贝,最后一次free 可用内存显示解决到设置值是,才提示内存不足
这个是符合linux 系统对内存管理的预期的

相关文章
|
4天前
并发编程之读写锁ReadWriteLock的详细解析(带小案例)
并发编程之读写锁ReadWriteLock的详细解析(带小案例)
7 0
|
4天前
并发编程之Callable方法的详细解析(带小案例)
并发编程之Callable方法的详细解析(带小案例)
11 0
|
4天前
|
JSON Java Maven
Javaweb之SpringBootWeb案例之自动配置以及常见方案的详细解析
Javaweb之SpringBootWeb案例之自动配置以及常见方案的详细解析
7 0
Javaweb之SpringBootWeb案例之自动配置以及常见方案的详细解析
|
4天前
|
JSON Java Maven
Javaweb之SpringBootWeb案例之 SpringBoot原理的详细解析
Javaweb之SpringBootWeb案例之 SpringBoot原理的详细解析
8 0
Javaweb之SpringBootWeb案例之 SpringBoot原理的详细解析
|
4天前
|
Java 容器 Spring
Javaweb之SpringBootWeb案例之 Bean管理的Bean作用域详细的解析
Javaweb之SpringBootWeb案例之 Bean管理的Bean作用域详细的解析
12 0
|
4天前
|
Java 数据库
Javaweb之SpringBootWeb案例之AOP案例的详细解析
Javaweb之SpringBootWeb案例之AOP案例的详细解析
11 0
|
4天前
|
Java Spring
Javaweb之SpringBootWeb案例之事务进阶的详细解析
Javaweb之SpringBootWeb案例之事务进阶的详细解析
11 0
|
4天前
|
JSON 前端开发 Java
Javaweb之SpringBootWeb案例之异常处理功能的详细解析
Javaweb之SpringBootWeb案例之异常处理功能的详细解析
16 0
|
4天前
|
存储 前端开发 Java
Javaweb之SpringBootWeb案例之登录校验功能的详细解析
Javaweb之SpringBootWeb案例之登录校验功能的详细解析
6 0
|
4天前
|
Java 对象存储
Javaweb之SpringBootWeb案例之配置文件的详细解析
Javaweb之SpringBootWeb案例之配置文件的详细解析
9 0

推荐镜像

更多