linux系统内存使用率飙高到90%

free -gh 显示的物理内存是7G

 

1、ps aux | head -1;ps aux |grep -v PID |sort -rn -k +4 | head -20 查找到占用内存高的前20个进程

2、pidstat -r -p $pid 1 查看各活动进程的内存使用统计
3、在ECS 上先执行ps aux | grep java,找到JVM的pid;
         然后再执行jmap -dump:format=b,file=heap.bin <pid>,得到heap dump文件。

4、ps -ef |grep java |grep Xms
      ps -ef |grep java |grep Xmx

free -gh 显示的物理内存是7G,java的Xms与Xmx设置的都是5120m。

解决方案:

1、需要升级服务器的物理内存资源或者将Xms与Xmx写低

2、如果是buff/cache占用内存高

方法是:

  echo 1 > /proc/sys/vm/drop_caches

  当然,这个文件可以设置的值分别为1、2、3。它们所表示的含义为:

  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分配器中的缓存对象。

posted @ 2020-09-27 15:30  万能阿超  阅读(3660)  评论(0编辑  收藏  举报