
运行某大型的软件,如果没有足够的内存,解决的办法是在硬盘上划出一个区域来当作临时的内存。
Windows *** 作系统把这个区域叫做虚拟内存,Linux把它叫做交换分区swap分区,增加swap交换分区,方法:
1、以root权限,键入如下命令创建512M的swap文件(1024 * 512MB = 524288)
2、创建Linux交换文件
mkswap /swapfile1
3、立即激活 /swapfile1交换文件
swapon /swapfile1
4、设置系统自激活交换文件。编辑 /etc/fstab文件,并增加如下第二行代码。
vi /etc/fstab
/swapfile1 swap swap defaults 0 0
5、重启系统,使用free -m查看swap大小。
运行某大型的软件,如果没有足够的内存,解决的办法是在硬盘上划出一个区域来当作临时的内存。
Windows *** 作系统把这个区域叫做虚拟内存,Linux把它叫做交换分区swap分区,增加swap交换分区,方法:
1、以root权限,键入如下命令创建512M的swap文件(1024 * 512MB = 524288)
dd if=/dev/zero of=/swapfile1 bs=1024 count=5242882、创建Linux交换文件
mkswap /swapfile13、立即激活 /swapfile1交换文件
swapon /swapfile14、设置系统自激活交换文件。编辑 /etc/fstab文件,并增加如下第二行代码。
vi /etc/fstab/swapfile1 swap swap defaults 0 0
5、重启系统,使用free -m查看swap大小。
#vi /etc/fstabUUID=b45eed4a-b319-43fa-9d03-200c558b5d84 / ext4 defaults 1 1
UUID=0ab45aeb-98f7-4f31-863d-791f7947d8f7 /boot ext4 defaults 1 2
/dev/sdb5 swap swap defaults 0 0
UUID=bddbfd46-378f-4583-930f-554f9c6f4ab6 swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
要让进程释放swap的方法只有kill掉该进程了。写个脚本来查看具体是哪些进程占着内存啦。一、对/proc目录下所有以数字为名的目录进行遍历
二、1目录是根进程重启会导致系统重启,所以直接排除掉。
三、算出每个进程占用内存的大小,然后按照大小排序
四、输出内存占用大于1MB的进程
4、将运行结果保存到swap.log文件中
5、查看swap.log.10325这个进程内存占用最多有130几M。
6、直接kill掉,然后再top查看。ok,swap一下子释放了很多,搞定。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)