找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4688|回复: 7

HN8145X6重要技巧之内存回收

[复制链接]
发表于 2022-2-17 16:14:04 | 显示全部楼层 |阅读模式
光猫跑一段时间之后,内存越来越少,很多时候其实内存本身并没有少,而是分配出去的缓存没有被释放,以下两条命令实现内存快速回收:

echo 1 > /proc/sys/vm/compact_memory
echo 3 > /proc/sys/vm/drop_caches

以上命令需要提升到root权限运行,实测效果明显。
 楼主| 发表于 2022-2-17 16:41:20 | 显示全部楼层
银斐 发表于 2022-2-17 16:33
有详细一点的命令吗

shell下再执行一次su,不过有的版本su被阉割或者root密码被改了。
发表于 2022-2-17 16:33:27 | 显示全部楼层
有详细一点的命令吗
发表于 2022-2-17 22:21:23 | 显示全部楼层
本帖最后由 sdwfwmj 于 2022-2-17 22:44 编辑

        我改天试试,以前只试过第二个命令,效果不明显,如果可以的话我就去其虚拟机中弄一个定时任务。

       补充一个给大家注意,如果固件是035,请不要在后端接支持elink的路由器,要不然会导致/sbin/easymesh占内存快速上升。不过如果可以的话,在虚拟机中定一个定时任务,每12小时执行一次killall easymesh也行。

发表于 2022-2-20 17:55:21 | 显示全部楼层
学习学习,有多个会用的命令,以备不时之需
发表于 2022-3-13 22:23:53 | 显示全部楼层
哪个大神能不能帮忙写一个定时清理内存缓存的代码?(每次要进入telnet 执行这个代码不够方便)
设置内存超过一定百分比(比方说70%)就执行清理内存的命令。
搜索了一下,实在不会修改:
https://blog.csdn.net/weixin_30691649/article/details/116648833
-----------
下面给出shell脚本freeMemory.sh

#!/bin/sh

#内存总量

total=$(free-m|grep Mem |awk'{print $2}')

#已使用内存

used=$(free-m|grep Mem |awk'{print $3}')

#内存使用率

rate=$(($used*100/$total))

time=date

echo"############$(date)###############"

#$1 is max Mem

if[$rate-gt$1]

then

echo"rate=$rate freeMemory start!"

sync

echo 3 >> /proc/sys/vm/drop_caches

echo"FreeMemory Success!"

else

echo"rate=$rate Memory is normal"

fi

1、执行命令crontab -e打开编辑定时配置文件

2、在文件的最后面添加下面的命令:

0 23 * /root/freeMemory.sh 70>>/root/freeMemoryLog.txt

上面我们设置了每天的23点执行命令我们的脚本,参数设置70,就是当检测到内存使用率大于70的时候回执行释放缓存命令,后面的>>是重定向命令吗,会将脚本的执行结果写进文件freeMemoryLog.txt中,便于我们查看。

cron是不需要重新启动的,文件保存后会自动生效。
发表于 2023-3-18 10:17:46 | 显示全部楼层
好像根目录没法改
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|宽带技术网 |网站地图 粤公网安备44152102000001号

GMT+8, 2025-9-18 08:08 , Processed in 0.032141 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表