使用切换 JDK 的方式优化部署微服务占用内存过高的问题

news2024/11/25 16:38:11

使用切换 JDK 的方式优化部署微服务占用内存过高的问题

  • 一、前言
  • 二、下载 J9 虚拟机的JDK
  • 三、切换 JDK
    • 1、上传到服务器
    • 2、解压
    • 3、修改 JDK 路径
    • 4、解决 JDK 没有切换成功的问题

一、前言

前段时间在服务器部署了微服务项目,但即使限制了每个服务的堆,内存还是居高不下,当然服务器的内存也不是很多,只有8G,在优化的时候看到有老哥提到使用 J9 虚拟机的 JDK 能显著减少内存的使用。

实践了一下确实如此,在虚拟机参数不变的情况下,项目启动后内存使用率从 80% 多下降到 50% 多。

其实跟初次安装 JDK 时差不多,就是有些坑,这里做个记录。

二、下载 J9 虚拟机的JDK

下载地址如下:

https://developer.ibm.com/languages/java/semeru-runtimes/downloads/

在这里插入图片描述

三、切换 JDK

1、上传到服务器

新建一个目录,也可以和我一样将其放原来的 JDK 同一目录,我的是

/usr/local/jdk

在这里插入图片描述

在这里插入图片描述

2、解压

解压命令如下:

tar -zxvf "jdk安装包"

我的是:

tar -zxvf ibm-semeru-open-jdk_x64_linux_8u422b05_openj9-0.46.0.tar.gz

在这里插入图片描述

解压之后是这样的

在这里插入图片描述

3、修改 JDK 路径

先看看原来的 JDK 版本,命令如下:

java -version

在这里插入图片描述

进入配置文件,使用如下命令:

vim /etc/profile

将原 JDK 的路径改为 J9 JDK 的路径

在这里插入图片描述

使用

wq

保存退出,重新加载 profile 文件,命令如下:

source /etc/profile

再查看 JDK 版本

java -version

但怪事发生了,我的 JDK 并没有切换过来

在这里插入图片描述

4、解决 JDK 没有切换成功的问题

原因在这里,分别使用

which java

which javac

在这里插入图片描述

这两个文件还是原来的文件,需要删除,分别执行如下命令:

rm -rf /usr/bin/java
rm -rf /usr/bin/javac

在这里插入图片描述

重新链接这个两个文件,分别执行如下命令:

ln -s $JAVA_HOME/bin/java /usr/bin/java
ln -s $JAVA_HOME/bin/javac /usr/bin/javac

在这里插入图片描述

再次查看 JDK 版本

java -version

在这里插入图片描述

可以看到已经切换过来了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2123570.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

苹果首款AI手机发布!iPhone 16全新AI功能体验感拉满

苹果于2024年秋季盛大发布iPhone 16系列,带来前所未有的AI智能体验。iPhone 16系列不仅硬件全面升级,更融入了尖端的AI技术,为用户带来更加智能化的生活体验。 在科技春晚的舞台上,苹果不负众望地揭开了iPhone 16系列的神秘面纱。…

【贪心算法】(一)贪心算法理论及基础习题

【贪心算法】贪心算法理论及基础习题(一) 理论基础简单例题分发饼干K次取反后最大化的数组和柠檬水找零买卖股票的最佳时机 Ⅱ单调递增的数字摆动序列 两个纬度权衡问题分发糖果根据身高重建队列 理论基础 什么是贪心: 贪心的本质是选择每一…

[N-152]基于java贪吃蛇游戏5

开发工具eclipse,jdk1.8 文档截图: N-152基于java贪吃蛇游戏5

通过Python调用Excel VBA宏:扩展自动化能力的深度探索

目录 1. 引言 1.1 自动化办公的重要性 1.2 Python与Excel VBA的结合优势 2. Python调用Excel VBA宏的基本原理 2.1 Excel VBA宏的基本概念 2.2 Python调用VBA宏的方法 3. 安装与准备 3.1 安装pywin32库 3.2 配置Excel以允许宏运行 4. Python调用VBA宏的实例 4.1 导出…

基于单片机的室内装修环境检测系统设计

基于单片机的室内装修环境检测系统,该系统可实现苯、甲醛、氨气等有害气体的浓度检测和超标报警。该系统以STC89C52RC单片机为核心,由传感器检测室内装修环境中苯、甲醛、氨气的浓度以及温湿度,将以上测量出来的数据传送到PCF8591转换器&…

Java+vue的医药进出口交易系统(源码+数据库+文档)

外贸系统|医药进出口交易系统 目录 基于Javavue的服装定制系统 一、前言 二、系统设计 三、系统功能设计 仓储部门功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|毕设…

15.2 JDBC数据库编程2

15.2.1 数据库访问步骤 使用JDBC API连接和访问数据库,一般分为以下5个步骤: (1) 加载驱动程序 (2) 建立连接对象 (3) 创建语句对象 (4) 获得SQL语句的执行结果 (5) 关闭建立的对象,释放资源 下面将详细描述这些步骤 15.2.2 加载驱动程序 要使…

开发中的网络问题逻辑推理分析

基于TCP/IP的逻辑推理,大部分软件从业人员都不是很懂,导致很多问题都被误认为诡异问题。有些人是惧怕TCP/IP网络书籍中的复杂知识内容,有的是被wireshark[1]显示的深红色内容所干扰。 经典案例1: 例如有一个DBA遇到了性能问题&a…

基于SpringBoot+Vue+MySQL的流浪猫狗宠物救助救援网站管理系统

系统展示 用户前台界面 管理员后台界面 系统背景 在当今社会,随着宠物数量的激增及人们关爱动物意识的提升,流浪猫狗问题日益严峻。为解决这一问题,构建一套高效、便捷的流浪猫狗宠物救助救援网站管理系统显得尤为重要。本系统基于SpringBoot…

在VB.net中,TimeSpan有什么属性与方法

标题 在VB.net中,TimeSpan有什么属性与方法 正文 在 VB.NET 中,TimeSpan 结构表示时间间隔,即一段时间,而不表示特定的时间点。TimeSpan 提供了多种属性来获取时间间隔的各个组成部分,以及一些方法来操作这些时间间隔。…

Linux下载新版火狐浏览器,替换默认火狐浏览器,保留桌面任务栏图标快捷方式

Linux下载新版火狐浏览器,替换默认火狐浏览器,保留桌面任务栏图标快捷方式 方式一 替换默认程序入口 下载官方浏览器 火狐浏览器下载地址【官网】 (搞清楚你的Linux系统是32位还是64位) 解压下载的程序包,建议放到/o…

Leetcode面试经典150题-74.搜索二维矩阵

解法都在代码里,不懂就留言或者私信 二分查找,比较简单 class Solution {/**解题思路:每一行有序、每一列也有序,只是整体不是严格有序的,那我们需要找一个点,只能往两个方向走,往一个方向走是…

【docker】命令之镜像操作

一、前言 之前讲解了docker的安装,这里呢接着上面的内容来介绍docker中的相关命令的操作。这里我们更具一个案例就是启动一个nginx(是一个在我们应用市场存在的一个软件包),并尝试对其进行修改,然后发布出去,让别人都能…

Guitar Pro 8.2中文解锁版下载及2024最新图文安装教程

Guitar Pro 8.2中文解锁版是一款深受广大音乐人和音乐爱好者喜爱的吉他打谱软件,帮助所有吉他爱好者学习、绘谱、创作,使用非常简单只需直接在五线谱或六线谱上编辑,即可轻松谱写自己的乐章。 Guitar Pro 8.2中文解锁版基本简介 Guitar Pro 8…

【python】python 安装和 pycharm 安装

1 python 安装 1.1 下载 下载地址:python 官网 1.2 安装 windows 安装为例。 双击.exe文件打开 安装界面 安装完成 1.3 检查安装是否成功 win/start 键r 键 运行窗口输入 cmd 回车 3 输入 python查看 显示版本信息,表示已经安装成功。 …

谷粒商城-P125【gulimall-search】:更改 elasticsearch 版本不生效

谷粒商城-P125【gulimall-search】:更改 elasticsearch 版本不生效 报错信息报错原因解决办法 报错信息 SpringBoot 项目的版本是 2.6.13,默认集成的 elasticsearch 的版本是 7.15.2,我们需要用的版本是 7.4.2。 SpringBoot 版本 SpringB…

pptpd配置文件/etc/pptpd.conf详解

正文共:1111 字 2 图,预估阅读时间:1 分钟 如果要在Linux系统配置PPTP(Point-to-Point Tunneling Protocol,点到点隧道协议)VPN,一般是使用pptpd软件。pptpd命令通常从配置文件/etc/pptpd.conf中…

JavaWeb【day15】--(Maven高级)

Maven高级 Web开发讲解完毕之后,我们再来学习Maven高级。其实在前面的课程当中,我们已经学习了Maven。 我们讲到 Maven 是一款构建和管理 Java 项目的工具。经过前面 10 多天 web 开发的学习,相信大家对于 Maven 这款工具的基本使用应该没什…

Windows安装HeidiSQL教程(图文)

一、软件简介 HeidiSQL是一款开源的数据库管理工具,主要用于管理MySQL、MariaDB、SQL Server、PostgreSQL和SQLite等数据库系统。它提供了直观的用户界面,使用户可以轻松地连接到数据库服务器、执行SQL查询、浏览和编辑数据、管理数据库结构等操作。 跨…

Linux:epoll 工作模式

边缘触发(Edge Triggered,简称ET)和 水平触发(Level Triggered,简称LT)是epoll两种不同的工作模式,它们在处理I/O事件时有不同的行为。 1:水平触发(LT)模式 1…