linux服务器springboot或tomcat项目启动,进行jvm参数调优设置

简介

在实验环境或生产环境中,往往一台linux服务器需要添加启动n个项目,但是项目启动占用的jvm内存默认值基本上都是很大的,800m到2G都有,这样很容易将服务器的内存吃垮,从而导致系统强制oom(内存泄露),不留任何情面;

所以,我们在部署项目的时候需要进行jvm参数的调优设置,保证内存使用的稳定性;

  1. 首先执行命令:free -h,查询当前的内存占用情况,从下图可看出,内存已被撑爆;
  2. 开始进行优化,执行命令:top,查看各个应用的内存占用情况,选取内存占用过高的pid进程;
  3. 然后获取pid号5252,根据pid查询对应的进程以及项目路径,执行命令:ps -aux |grep -v grep|grep 5252
  4. 定位到项目跟路径之后,开始设置项目启动jvm内存占用,不同项目可分配不同的内存;
  • 如果是springboot项目jar启动,则在启动的时候指定jvm的内存分配:
  • nohup java -jar -Xms128M -Xmx256M -XX:PermSize=128M -XX:MaxPermSize=256M process-activiti-0.0.1-SNAPSHOT.jar > activiti.log 2>&1 &
  • 如果是tomcat项目启动,则在bin目录下,执行命令:vim catalina.sh,然后在顶部加上:
    JAVA_OPTS="-Xms128m -Xmx256m"
  1. 重新启动项目之后,执行命令查询修改情况:jps -v
  2. 将所有高消耗的项目都修改重启之后,重新查看内存占用情况:free -h,如下图,已经腾出了近4G空间,jvm参数调优设置完成;
相关推荐
小此方1 小时前
告别云服务器连接困扰——Windows下利用VirtualBox安装配置Ubuntu虚拟机详细教程
服务器·windows·ubuntu
wuyk5553 小时前
【Socket 进阶之路】第 3 章 TCP 三次握手 & 四次挥手深度剖析|连接建立、断开、状态机、TIME_WAIT 核心工程问题
服务器·开发语言·网络·物联网·网络协议·tcp/ip
一技安身8 小时前
【Docker】 镜像导出 & 导入,实验环境aarch64(arm64)Linux操作系统
linux·docker·容器
平头哥AI9 小时前
Day 22 _ 包装错误别丢链_%w、errors.Is 与 errors.As
android·服务器·学习·golang·go
代码村新手9 小时前
Linux调试器-gdb的使用
linux
新时代牛马10 小时前
PCI与PCIe 硬件原理、配置空间/BAR 与 Linux 驱动完整篇:从 LTSSM、TLP 到 ECAM 与probe
java·linux·服务器
Bs_MoneyMagnet10 小时前
基于springboot+vue的医疗健康便民服务平台的设计与实现 源码+文档
java·vue.js·spring boot·后端·spring
两点王爷11 小时前
解决 Linux 中 version `CXXABI_1.3.8‘ not found 报错
linux·运维·服务器
xx~t12 小时前
嵌入式——51单片机1
linux·c语言·单片机·嵌入式硬件·51单片机
啦啦啦啦啦zzzz12 小时前
利用RAII机制进行日志的采集
linux·服务器·c++·网络编程·c++20