1

我有一个带有embedded-linux的路由器,内核版本为2.4.22。我知道它的旧版本,但我必须处理它。以下是free盒子上的命令输出,

[8300002902-3]调试>免费

             total         used         free       shared      buffers
  Mem:       128104       123928         4176            0         2164
 Swap:            0            0            0
Total:       128104       123928         4176    

现在我的问题是,每当它执行一些命令并使用>运算符将​​其输出重定向到某个文件时,缓冲区大小都会增加4KB,即使我rm -rf再次使用缓冲区删除相同的文件也会增加4KB。因此,当我的缓冲区大小达到接近5.3MB的大小时,就会出现 OOM 问题,因为您可以看到我只有 128MB RAM 可用。我认为内核没有回收缓冲区空间。请告诉我可以做些什么来摆脱这个问题。我已经研究了设置drop_caches中的值,/proc/sys/vm但是这个命令在我的内核版本中不可用。

这是 proc/meminfo 转储可能会有所帮助。

[8300002902-3] 调试> cat /proc/meminfo

         total:    used:    free:  shared: buffers:  cached:
Mem:  131178496 126545920  4632576        0  2211840 54927360
Swap:        0        0        0
MemTotal:       128104 kB
MemFree:          4524 kB
MemShared:           0 kB
Buffers:          2160 kB
Cached:          53640 kB
SwapCached:          0 kB
Active:          66628 kB
Inactive:        36692 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:       128104 kB
LowFree:          4524 kB
SwapTotal:           0 kB
SwapFree:            0 kB
4

0 回答 0