/var内存不足 linux
2017-10-12 11:01:39 u012439977 阅读数 453

在linux下增加临时swap空间

  • step 1
#sudo dd if=/dev/zero of=/home/swap bs=64M count=16

注释:of=/home/swap,放置swap的空间。 count 的大小就是增加的 swap 空间的大小,64M 就是块大小,这里是 64MB,所以总共空间就是 bs*count=1024MB。这里分配空间的时候需要一点时间,等待执行完毕。

  • step 2
      
# sudo mkswap /home/swap 
-- 可能会提示warning: don't erase bootbits sectorson whole disk. Use -f to force,不用理会

注释:把刚才空间格式化成swap各式

  • step 3
#sudo swapon /home/swap

注释:使刚才创建的swap空间

  • step 4

执行你相关的操作,如make。

  • step 5

关闭。

sudo swapoff /home/swap
sudo rm /home/swap
2016-03-19 11:03:28 myvest 阅读数 802

我的虚拟机装的是Ubuntu-64bit版本,因为经常要编译android代码,就会有out of memory这样的错误,编着编着,经常会发生虚拟机卡死的状况。现在发现公司有统一的编译服务器真是省事好多

在寻求办法解决中:

1、首先是学会了看内存的方法,free命令

-l : 显示详细信息,会显示出high和low分别是多少。
当low memory耗尽,不管high memory剩余多少,oom-killer都开始杀死进程,以保持系统的正常运转。
-m:以M为单位显示。

这里写图片描述
其中第一行用全局角度描述系统使用的内存状况:
*total——总物理内存
used——已使用内存,一般情况这个值会比较大,因为这个值包括了cache+应用程序使用的内存
free——完全未被使用的内存
shared——应用程序共享内存
buffers——缓存,主要用于目录方面,inode值等(ls大目录可看到这个值增加)
cached——缓存,用于已打开的文件*

2、清理内存

清理内存前最好先sync一下,不然可能会丢失一些数据。三种方法:

(1)To free pagecache:
echo 1 > /proc/sys/vm/drop_caches

(2)To free dentries and inodes:
echo 2 > /proc/sys/vm/drop_caches

(3)To free pagecache, dentries and inodes:
echo 3 > /proc/sys/vm/drop_caches

2017-12-27 17:15:00 weixin_34148340 阅读数 33

在配置nginx的时候,发现Nginx提示内存不足。想到了top命令。
在使用Linux的过程中,作为管理员,top命令是最经常使用的命令之一。它可以用来显示Linux的实时进程活动,任务调度,内存的使用情况等等。

解决方案

  1. 运行Linux top命令


    426671-3fcf11b71a65faea.png
    top命令界面
  2. 按大写的M,进行排序内存大的排在前面。

    426671-6ab8f7dbf66283ab.png
    内存排序后界面

  3. 按小写的c命令,查看运行命令的绝对路径

    426671-41b8be559941c016.png
    绝对路径的top界面

  4. 看到拿一个进程占用内存比较大,按下k,指定要删除的进程。

    426671-bde2d4581f0fc03c.png
    指定要杀死的进程

  5. 内存足够...

额外

  1. 通过CPU的利用率进行排序shift+P

    426671-f967f49afa1b3d4d.png
    通过CPU利用率排序

  2. 设置top窗口刷新时间 按小d

  3. 调整进程的nice值。按r

最后

这是一些Top命令的基本用法,但在排除问题的时候还是挺有帮助的,记录一下。

2019-03-12 10:34:20 caoyapeng123 阅读数 159

问题:近日发现linux中tomcat运行时经常出现down掉的情况
原因:执行free -m 命令查看可用内存,发现cached占比过高,free可用内存过少。在这里插入图片描述
临时解决方案:
Linux手动释放缓存的方法
Linux释放内存的命令:
sync
echo 1 > /proc/sys/vm/drop_caches

drop_caches的值可以是0-3之间的数字,代表不同的含义:
0:不释放(系统默认值)
1:释放页缓存
2:释放dentries和inodes
3:释放所有缓存

释放完内存后改回去让系统重新自动分配内存。
echo 0 >/proc/sys/vm/drop_caches

free -m #看内存是否已经释放掉了。

如果我们需要释放所有缓存,就输入下面的命令:
echo 3 > /proc/sys/vm/drop_caches

继续继续跟踪:监听JVM使用情况,找出原因,进行优化

参考:https://blog.csdn.net/hellojoy/article/details/80760010

2018-05-19 19:48:00 weixin_33790053 阅读数 13

1、编译内核出现问题:No space left on device

 AS      .tmp_kallsyms1.o

.tmp_kallsyms1.S:2: fatal error: when writing output to /tmp/ccf0eS0W.s: No space left on device

compilation terminated.

make: *** [.tmp_kallsyms1.o] Error 1

arm-none-Linux-gnueabi-objcopy: 'vmlinux': No such file

cp: cannot stat `linux.bin': No such file or directory

gzip: linux.bin: No such file or directory

./mkimage: Can't open kernel.bin: No such file or directory

root@debian:/mnt/kernelsrc/linux-3.3# 

主要是系统 /tmp/空间不足引起的,tmp文件夹空间不足了,不能满足编译的需求,编译的中间文件不能写入。

解决办法 mkdir  文件夹——你可以使用的文件夹 比如说 mkdir /mnt/kernelsrc/tmp

然后只要export TMPDIR=/mnt/kernelsrc/tmp

这样就不会出现 tmp文件夹不够用的情况。


2、编译程序时,如果出现类似virtual memory exhausted: Cannot allocate memory的错误时,可以用下面的方法解决

创建swap挂载点

# mkdir /opt/images/

# rm -rf /opt/images/swap

设置挂载swap的大小,64M*32=2GB

# dd if=/dev/zero of=/opt/images/swap bs=64M count=32

# mkswap /opt/images/swap

开启swap

# swapon /opt/images/swap

这个时候,可以执行之前内存不足时的命令了,正常情况下,执行时间会比较长,但是能过去

最后,可以考虑关闭swap并删除挂载文件

# swapoff swap

# rm -f /opt/images/swap

转载于:https://www.jianshu.com/p/792755d8e4ae

没有更多推荐了,返回首页