先写下解决方法:
只需两个命令
sync #将缓存的内写入磁盘,以免数据丢失,执行时间和缓存大小有关,越大时间越长
echo 3 > /proc/sys/vm/drop_caches #清理缓存
linux系统在使用的过程中,经常会遇到明明系统运行只使用了几G的内存,但查看剩余内存时只有几百兆的情况,虽说这是linux对于内存使用的优化,但大多数情况下这种优化会让新程序报错内存不足,就行这种情况一样
我这台服务器安装了单机版的CDH,这种情况下启动一个yarn任务,yarn任务就会由于无法获得足够的启动内存而卡住
[root@linux2 ~]# free -h
total used free shared buff/cache available
Mem: 31G 18G 235M 1.8G 12G 10G
Swap: 0B 0B 0B
[root@linux2 ~]# sync
[root@linux2 ~]# echo 3 > /proc/sys/vm/drop_caches
[root@linux2 ~]# free -h
total used free shared buff/cache available
Mem: 31G 18G 9G 1.8G 2.3G 10G
Swap: 0B 0B 0B