今天发现之前买的阿里云的服务器发现2G内存只有0.2可以用了,大致解决办法如下:
方法一
首先:free -m 命里查看内存使用情况:
- total——总物理内存 ,total=used+free
- used——已使用内存,一般情况这个值会比较大,因为这个值包括了cached+应用程序使用的内存
- free——完全未被使用的内存
- shared——应用程序共享内存
- buffers——缓存,主要用于目录方面,inode值等(ls大目录可看到这个值增加)
- cached——缓存,用于已打开的文件
- available——free 与 available 的区别 free 是真正尚未被使用的物理内存数量。 available 是应用程序认为可用内存数量,available = free + buffer + cache (注:只是大概的计算方法)
接着输入下面的对应指令清除对应的对象
echo 1 > /proc/sys/vm/drop_caches:表示清除pagecache。 echo 2 > /proc/sys/vm/drop_caches:表示清除回收slab分配器中的对象(包括目录项缓存和inode缓存)。slab分配器是内核中管理内存的一种机制,其中很多缓存数据实现都是用的pagecache。 echo 3 > /proc/sys/vm/drop_caches:表示清除pagecache和slab分配器中的缓存对象。
当你这时候输入free -m你会发现有些东西被清除了。再去控制台我的内存只占用了1G,还有1G可以用
方法二
设置虚拟内存方法:
1:free -m查看内存状态
然后你会发现两列,下面的Swap也就是虚拟内存全为0
输入dd if=/dev/zero of=/opt/swap bs=1024 count=1024000
dd if=/dev/zero of=/opt/swap bs=1024 count=1024000
#该命令表示在opt分区建立名为swap,大小为1G的虚拟内存文件
---
1024000+0 records in
1024000+0 records out
1048576000 bytes (1.0 GB) copied, 16.6877 s, 62.8 MB/s
接着:将swap文件设置为swap分区文件
chmod 600 /opt/swap //注意更改swap文件的权限
mkswap /opt/swap
---
Setting up swapspace version 1, size = 1023996 KiB
no label, UUID=fc47f29e-31af-401e-856d-0fec5262179e
最后:激活swap,启用分区交换文件
swapon /opt/swap
现在看下结果
free -m
total used free shared buff/cache available
Mem: 1839 792 874 70 172 851
Swap: 999 0 999
如何关闭虚拟内存呢?
首先停止swap分区 swapoff /opt/swap
swapoff /opt/swap
free -m
total used free shared buff/cache available
Mem: 992 191 63 13 738 626
Swap: 0 0 0
其次删除掉swap文件即可 swapoff /opt/swap
首先看一下磁盘大小
df -h
rm -rf /opt/swap
df -h