MA_NONG

MA_NONG

9个粉丝

12

问答

2

专栏

0

资料

MA_NONG  发布于  2025-03-04 14:40:59
采纳率 34%
12个问答
299

linux 系统内存紧张,如何抠内存?

HI3516CV610 10B LINUX5.10.XX 启动有如下打印:

Memory: 25012K/28672K available (1965K kernel code, 103K rwdata, 812K rodata, 96K init, 145K bss, 3660K reserved, 0K cma-reserved)

3660K reserved 部分的内存如何使用? 或者说 如何减小 3660K reserved 部分的内存,让出给Linux系统使用?

我来回答
回答18个
时间排序
认可量排序

wj

9个粉丝

1

问答

0

专栏

4

资料

wj 2025-03-04 14:42:15
认可0

64M基本够用吧,编码可以省内存的

MA_NONG
MA_NONG   回复   wj  2025-03-04 14:45:21
0

HI3516CV610 10B 我们跑的是双路:2K + 1080P,带WiFi,双路录影。
目前编码够用,Linux系统起来后,双路录影+WiFi预览,就很容易触发oom,导致应用程序直接被Linux kill掉。 所以想挪个2M 左右的内存给Linux系统,估计就差不多了。

wj
wj   回复   MA_NONG  2025-03-04 15:12:54
0

看下你编码用了多少,kernel预留的好像改不了吧

MA_NONG
MA_NONG   回复   wj  2025-03-04 15:55:23
0

Kernel command line: mem=36m earlycon=pl011,0x11040000 console=ttyAMA0,115200 clk_ignore_unused root=/dev/mtdblock3

Memory: 31064K/36864K available (3072K kernel code, 121K rwdata, 748K rodata, 1024K init, 63K bss, 5800K reserved, 0K cma-reserved)

MA_NONG
MA_NONG   回复   wj  2025-03-04 15:58:10
0

追加双路录影 + WiFi预览的 free -m:

wj
wj   回复   MA_NONG  2025-03-04 20:12:36
0

osd改成2bpp,编码内存应该还可以省一点

MA_NONG
MA_NONG   回复   wj  2025-03-05 10:11:38
0

看了 mmz的内存信息,rgn 部分占用, 一个也就几十K,再怎么省,也省不了多少吧。

mylx2010

5个粉丝

6

问答

1

专栏

5

资料

mylx2010 2025-03-04 15:51:45
认可0

你确定不是内存泄漏?不是的话,按以往经验,在uboot参数的mem加大,load ko的脚本那里有个对应的地址改下就行

MA_NONG
MA_NONG   回复   mylx2010  2025-03-04 16:00:08
0

因为 双路:2K + 1080P, MMZ 需要 28M 左右的内存,所以 Linux OS这边没法增加了。 如上的截图信息。

mylx2010
mylx2010   回复   MA_NONG  2025-03-04 16:06:49
0

噢噢,看到了,要不试试 运行程序前执行 echo 1 > /proc/sys/vm/overcommit_memory

MA_NONG
MA_NONG   回复   mylx2010  2025-03-04 16:15:53
0

内核参数overcommit_memory 它是 内存分配策略:

可选值:0、1、2。
0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2, 表示内核允许分配超过所有物理内存和交换空间总和的内存

我先老化一下看看,oom 不容易触发,要长点时间测试,有结果会反馈。

MA_NONG
MA_NONG   回复   mylx2010  2025-03-04 19:37:58
0

试了 echo 1 > /proc/sys/vm/overcommit_memory 再运行程序,过了大概1小时,还是会触发 oom .

Diankewei
Diankewei   回复   MA_NONG  2025-03-05 11:52:05
0

咋内存会越用越大,可以看一下哪些地方分配了内存没释放

MA_NONG

9个粉丝

12

问答

2

专栏

0

资料

MA_NONG 2025-03-05 18:14:40
认可0

追加一份触发 oom 的log:

wj
wj   回复   MA_NONG  2025-03-05 20:35:54
0

看起来还有8M内存啊,申请的block大于512k吗

MA_NONG
MA_NONG   回复   wj  2025-03-06 09:53:35
0

有8M,所以系统内存其实是够的。只是说,某个内存区在运行的过程中被耗尽,导致的触发oom。
log上看,是不是 lowmem_reserve[]: 0 0 导致的触发 oom 了 ?

zhubao124

0个粉丝

0

问答

0

专栏

0

资料

zhubao124 2025-03-24 18:13:05
认可0

内存不够,可以使用ZRAM技术。同时可以参考SDK中《性能╱带宽╱延时╱内存调优指南.pdf》

MA_NONG
MA_NONG   回复   zhubao124  2025-03-26 14:42:41
0

是的 这个文档 《性能╱带宽╱延时╱内存调优指南.pdf》 很有帮助。 目前先从应用部分抠出内存,尽量节省内存的开销。

或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区