仅供交流学习,本人不保证效果,不负责后果。
一、缓存释放
附注:缓存可以提高linux的运行效率,是linux内存管理的优势之一,但是内存如果小了,缓存太大反而降低总体性能,所以内存小于4G的可以试试内存释放脚本
查看方法:一、同时按 Crtl 、 Alt 、 T键打开终端,输入: free -m 接着回车,就会看到内存和缓存使用情况,fMemory就是“内存”的英文,第三项free就是未使用的的内存,buffer是程序运行缓存,cache是缓存。,好了之后可以输入: exit 回车退出,或者一直留着,等不用了再退出,下面还要用的时候就不用创建新终端窗口了。
我电脑内存是2G,这个已经是把内存释放脚本写入计划任务了,所以buffer很小,正常的linux系统buffer占用会很高,几百M以上。想要恢复原来的状态我需要解除计划任务然后重启,天气冷,就不折腾了。
释放方法:同时按 Crtl 、 Alt 、 T键打开终端,输入: sudo -s 回车,然后会提示你输入你这个用户的密码,(输入时不显示,但是有在输入,这样才不会被人看见),然后输入
: echo 3 > /proc/sys/vm/drop_caches 回车就好了
写入之后再次输入free -m你就会看到buffer从几百M变成几十M,未用内存增大了许多,如上上图。附注:这一部分未用内存能够即使响应新的程序要求,是不可多得的活跃内存。
ps:对于源码编译、科学计算等内存请求就不可以这样了,它们需要实实在在的存放空间(最好是内存ram,实在不行就分swap分区,但是swap比起会很慢的。)
上面的执行效果只是暂时的,想要让它自动释放缓存,我们需要把命令写进计划任务,这里用到了一个命令 crontab ,是linux的系统守护进程crond的配置文件编辑,相信用法有兴趣自行百度。
注:下面的操作需要你学会使用vi或者nano之类的终端文本编辑器,详情请百度,这不是文章重点。
添加方法:同时按 Ctrl 、 Alt 、 T键打开终端,输入: sudo gedit /etc/freeMemory.sh 回车。(sudo是以root身份执行,gedit就是GNU edit,GNU自由软件之一”文本编辑器“, /etc/freeMemory.sh本来并不存在,你输入之后,gedit会在/etc下创建一个文件叫freeMemory.sh。.sh就是shell命令解析器的脚本文件)(sudo密码如果你已经在这个终端执行过,那么它会记住,如果是新终端,要重新输入你的用户密码。)
在新打开的gedit窗口输入:
#!/bin/bash
free -m | grep -i mem |awk '{if($4 < 600){printf("3") > "/proc/sys/vm/drop_caches"}}';
然后点”保存“,然后关闭窗口,然后在刚才的终端中输入“sudo chmod 0755 /etc/freeMemory.sh”回车,给它执行权限。
接下来就是crontab了,在刚才的终端里输入”sudo -s crontab -e“回车
接下来会提示你按1或者2什么的选择vi或者nano之类的文本编辑器,我选择vi,vi的使用详情百度”vi使用教程“
vi进入默认是命令模式,#开头的行都是注释,执行时终端会忽略它们,往下往下,到最下面的空行,然后按i进入插入编辑模式,输入
”*/3 * * * * /etc/freeMemory.sh“ ,然后按Esc回到命令模式,输入 ”:wq“保存退出,”:“可以同时按Shift键和;键打出来。
| | | | | |
crontab中,一般的格式为 ”具体分钟 具体小时 具体日期 具体月份 具体周天 要执行的命令 “,复制,如果freeMemory.h不加执行权限,那这里的”命令“,可以改成"sh /etc/freeMemory.sh"
crontab中,*代表随便(通配符),/代表每,这里的我的意思是每三分钟执行以及freeMemory.sh脚本。
二、内存交换文件的合理使用
ps:大家有钱了还是要升级硬件,不要像我那么苦B,竟然因为内存太小上次等了快一天的源码编译失败了。
添加swap的方法之一:http://www.linuxdiyf.com/linux/17950.html
三、手动清理未知错
配置低的电脑在运行时比配置高的电脑更容易出问题,你是否遇到过ubuntu桌面卡死的情况,怎么点都没用,只能按电源键强制注销?现在解决方法来了:
同时按Ctrl 、 Alt 、F1启动字符的登陆程序,输入你的用户名和密码登陆。我的用户名是lion,密码不告诉你。
然后输入“ sudo kill -9 `ps -ef | grep tty7 | awk 'NR==1 {printf $2}'` ”(这里的标点都有特殊意思,不要输错,详情请百度)接着神奇的一幕就发生了。。
什么?!注销了?实际这就是个强制关闭图形界面的命令。linux下同时按Ctrl 、Alt 、和F1到F7可以切换界面,各个发行版设置不太一样,F1到F6是ubuntu的字符界面,F7是ubuntu的图形界面。
大家可以把这个命令写进脚本,需要时就执行这个脚本,终端输入“gedit ~/relogin.sh”然后在里面输入两行“
#!/bin/sh
sudo kill -9 `ps -ef | grep tty7 | awk 'NR==1 {printf $2}'`
”然后保存,退出,以后需要时就执行“sudo sh ~/relogin.sh”