3050311118 发表于 2015-8-27 23:25:48

linux嵌入式小设备假如用户软件无限制吃内存早成重启怎么破

我想像智能路由一样的openwrt,客户装软件有吃很多内存,岂不就造成路由器不稳定。
我想有没有方法限制这种情况发生,即使用户软件吃内存,但是最后还是留一些内存给系统,这样路由器不至于造成死机。

yerrmin 发表于 2015-8-28 00:11:46

内核不要设置oops自动重启,没内存了程序应该会被强制退出吧,我觉得不会搞坏系统

bruce_helen 发表于 2015-8-28 07:00:21

我也觉得应用程序不会搞到系统的内存,至多是应用程序挂掉,系统不会重启

abutter 发表于 2015-8-28 07:15:47

为什么会死机?

YaoHui 发表于 2015-8-28 08:16:51

内核应该不会分配内存的,客户程序会自己挂掉。但路由器和交换这边到时候分配不了内存会怎么样就不知道了。

aozima 发表于 2015-8-28 09:25:59

炮决应用程序编写者。

NJ8888 发表于 2015-8-28 09:30:44

我会写让系统死掉的应用程序{:lol:}

3050311118 发表于 2015-8-28 09:59:56

NJ8888 发表于 2015-8-28 09:30
我会写让系统死掉的应用程序

照aozima的说法 你要被炮决了    哈哈

mangocity 发表于 2015-8-28 15:17:56

用 android 的 lowmenkiller 机制

ALUMEI 发表于 2015-8-28 15:28:50

他的app可能做了喂狗的动作,没有内存了,app挂掉的话,没喂狗了,系统自然会重启啊!

NJ8888 发表于 2015-8-28 15:31:46

ALUMEI 发表于 2015-8-28 15:28
他的app可能做了喂狗的动作,没有内存了,app挂掉的话,没喂狗了,系统自然会重启啊! ...

基于OS的喂狗不容易啊,比如系统启动时,应用程序没喂狗,那狗总要复位,系统起不来{:lol:}

ALUMEI 发表于 2015-8-28 15:37:15

NJ8888 发表于 2015-8-28 15:31
基于OS的喂狗不容易啊,比如系统启动时,应用程序没喂狗,那狗总要复位,系统起不来...

可以让喂狗这个模块独立运行。app与这个喂狗这个进程通信就好。这样就可以避免类似你提的问题了

NJ8888 发表于 2015-8-28 15:46:52

ALUMEI 发表于 2015-8-28 15:37
可以让喂狗这个模块独立运行。app与这个喂狗这个进程通信就好。这样就可以避免类似你提的问题了 ...

系统引导过程,喂狗还没开始怎么办

ALUMEI 发表于 2015-8-28 15:50:30

NJ8888 发表于 2015-8-28 15:46
系统引导过程,喂狗还没开始怎么办

可以写个喂狗的驱动,内核启动,驱动加载完毕后,由喂狗的进程去初始化看门狗就好了

mangocity 发表于 2015-8-28 17:56:41

NJ8888 发表于 2015-8-28 15:46
系统引导过程,喂狗还没开始怎么办

可以写个喂狗驱动。在系统启动过程中自动喂狗,系统启动完后,由喂狗daemon喂狗。
喂狗daemon监测用户app,app无响应的时候让狗复位即可。

avr-arm 发表于 2015-8-28 18:19:29

aozima 发表于 2015-8-28 09:25
炮决应用程序编写者。

+100000000

ywhbn 发表于 2015-8-28 19:25:53

搜linux ulimit, cgroups

ericdai 发表于 2015-8-28 19:34:42

cgroup 或者不让c写的程序运行,用nodejs之类的
页: [1]
查看完整版本: linux嵌入式小设备假如用户软件无限制吃内存早成重启怎么破