美文网首页
linux布置微服务导致内存不足

linux布置微服务导致内存不足

作者: 昊_c3e8 | 来源:发表于2020-12-18 17:10 被阅读0次

现象:前段时间发现某台开发机上各个微服务进程占用内存很高,经常出现某个服务挂掉的现象,这里记录下解决思路方案,仅供参考。

查看发现服务器剩余内存很小

free -m 
在这里插入图片描述

这是台测试服务器,内存本来就小,但是运行的服务挺多,包括一个微服务和springboot项目,本身微服务就很占内存,几个微服务项目的服务直接就把服务器内存占光了,所有新增了springboot项目后经常出现某个服务挂掉的现象。
所以想着看看能不能较少某个服务的分配内存来增加项目存活的可能性。

解决问题之前,先复习下几个基础知识。

1、什么是RES?top命令经常看到的

在这里插入图片描述
RES:resident memory usage 常驻内存
(1)进程当前使用的内存大小,但不包括swap out
(2)包含其他进程的共享
(3)如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
(4)关于库占用内存的情况,它只统计加载的库文件所占内存大小
RES = CODE + DATA

2、JVM内存模型

在这里插入图片描述 所以JVM进程内存大小大致为:
非heap(非heap=元空间+栈内存+…)+heap+JVM进程运行所需内存+其他数据

因为测试环境,使用的人员比较少,并且出现问题是在新增了其他的项目都出现的,所有排除了代码的问题。(也有可能是jvm内存泄漏引起的,大家有这个问题的话可以去用Jmap命令将整个heap dump下来,然后用jvisualvm分析)

在这里插入图片描述

这里用到的命令:

jmap -heap [pid]
//关于内存占用比例的一个命令
ps aux | sort -k4nr | head -n 10
  • 注意:如果服务器中有多个jdk,请到具体的jdk/bin下执行jmap命令, /usr/local/jdk1.8.0_74/bin/jmap -heap 28177

图1中jvm占用内存计算:

元空间(5MB)+ eden(118MB)+年老代(187MB)+线程栈(49*1024KB)+JVM进程本身运行内存+ NIO的DirectBuffer +JIT+JNI+…≈top(Res) 470MB

当前jvm线程数统计:jstack 7311 |grep ‘tid’|wc –l (linux 64位系统中jvm线程默认栈大小为1MB)

所以去修改启动脚本,修改项目服务的JVM大小;部署系统的启动脚本,正确的Java命令:

java [ options ] class [ arguments ]
java [ options ] -jar file.jar [ arguments ]
  • 注意:linux执行命令的时候要注意空格的使用,千万不能多打

参考:
https://blog.csdn.net/weixin_47202722/article/details/108513876?utm_medium=distribute.pc_relevant.none-task-blog-baidulandingword-14&spm=1001.2101.3001.4242

相关文章

  • linux布置微服务导致内存不足

    现象:前段时间发现某台开发机上各个微服务进程占用内存很高,经常出现某个服务挂掉的现象,这里记录下解决思路方案,仅供...

  • 设置Linux的Swap交换分区

    设置Linux的Swap交换分区 Linux 有的时候Linux服务器运行时出现卡顿卡死的,或者已知内存不足够支持...

  • 避免PHP-FPM内存泄漏导致内存耗尽

    php-FPM如果出现存存泄漏问题可能导致服务器内存不足从而导致服务器资源用尽了,这样就会导致网站无法访问了,下面...

  • jenkins 启动mvn项目报错:ERROR: Maven J

    机器内存不足导致!!!

  • Linux-06. 增加交换分区

    linux 增加交换分区以解决内存不足问题

  • Linux系统扩充虚拟内存

    解决的问题:服务器内存不足导致程序运行崩溃,但是扩展服务器的内存需要花钱。为了避免不必要的经费开支,故使用扩充虚拟...

  • 春节祝福

    昨日是除夕,又是立春,从早上开始,微信陆陆续续收到祝福,一直到今天凌晨,导致微信内存不足卡机关闭。 以前,每到春节...

  • centos虚拟内存添加与删除

    在云服务器编译php时,编译失败,提示内存不足,采用扩展虚拟内存的方法来解决问题。swap是linux中的虚拟内存...

  • Centos6.5静默安装Oracle 10 g

    [TOC] 安装基础服务 安装说明有的云服务环境只能提供web的方式连接linux服务器,导致安装Oracle的时...

  • LINUX----内存不足

    自己在网上买了一个丐中丐版的服务器(1核2G、40G内存)用于平时测试使用,然而却忽略了磁盘空间。。。连接远程命令...

网友评论

      本文标题:linux布置微服务导致内存不足

      本文链接:https://www.haomeiwen.com/subject/pahfnktx.html