首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JVM又,别傻傻只会重启加内存

前提:某大型跨境电商业务发展非常快,线上机器扩容也很频繁,但是对于线上机器的运行情况,特别是jvm内存的情况,一直没有一个统一的标准来给到各个应用服务的owner。...经过618大促之后,和运维的同学讨论下,希望将线上服务器的jvm参数标准化,可以以一个统一的方式给到各个应用,提升线上服务器的稳定性,同时减少大家都去调整jvm参数的时间。...参考之前在淘宝天猫工作的公司的经历:经过大家讨论,根据jdk的版本以及线上机器配置,确定一个推荐的jvm配置: 配置说明: 1....总结: Jvm调优这块还是有一定难度的有时候我们会碰到下面这些问题:OutOfMemoryError,内存不足、内存泄露、线程死锁、Java进程消耗CPU过高。...这些问题在日常开发容易忽视,比如有的人遇到上面的问题只是重启服务器或者调大内存,而不会深究问题根源,但能够理解并解决这些问题是Java程序员进阶的必备要求。

2.1K10

为什么要“除夕”,原来是内存!

我们把“夕”想象成一个不断吃机器内存的 Java 程序,就称它为 年兽吧。掌管 Java 虚拟机内存的就是“年”,我们称它为年哥吧。...年哥的地盘 年哥管理的地盘主要分为五大区:堆、方法区、虚拟机栈、本地方法栈、程序计数器。大家可以把图上的线程想象成村民,而堆是作为村民共享使用的区域。...[年兽被直接分配到老年代] 大量年兽入侵 年兽尝到甜头后,就开始不断地呼叫它的亲戚朋友,大量年兽被分配到了老年代,直接导致老年代的内存空间不足,如下图所示: [大量年兽入侵] 代码演示 我们用代码来演示下年兽入侵...打走年兽 村民们和年哥凑到一块,讨论下该如何解决这个问题,究其原因就是年兽太多了,要减少他们呼朋唤友来吃内存。 放到我们的 Java 世界中,就是**减少大对象的频繁创建**。...如下图所示,除夕之前,村民可以去其他地方活动,除夕夜就只能待在家里守岁了,到了第二天早上就可以串门拜年

56831
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    为什么要“除夕”,原来是内存!

    ” 我们把“夕”想象成一个不断吃机器内存的 Java 程序,就称它为 年兽吧。掌管 Java 虚拟机内存的就是“年”,我们称它为年哥吧。...年兽的地盘 年哥管理的地盘主要分为五大区:堆、方法区、虚拟机栈、本地方法栈、程序计数器。如下图所示。另外大家可以把图中的线程想象成村民,而堆是作为村民共享使用的区域。...年兽被直接分配到老年代 大量年兽入侵 年兽尝到甜头后,就开始不断地呼叫它的亲戚朋友,大量年兽被分配到了老年代,直接导致老年代的内存空间不足,如下图所示: 大量年兽入侵 代码演示 我们用代码来演示下年兽入侵...打走年兽 村民们和年哥凑到一块,讨论下该如何解决这个问题,究其原因就是年兽太多了,要减少他们呼朋唤友来吃内存。 放到我们的 Java 世界中,就是减少大对象的频繁创建。...如下图所示,除夕之前,村民可以去其他地方活动,除夕夜就只能待在家里守岁了,到了第二天早上就可以串门拜年

    63830

    Logback 也,惊。。。

    Logback 也 Log4j2 核弹级漏洞刚结束没几天,Logback 其实也,这你能信??...栈长在上篇文章提到,因 Log4j2 漏洞的反复无常,导致某些公司已经切换到 Logback ,如果这也是你们公司的决定,请在文章下面评论区留言。...可令栈长万万想不到的是,在 Log4j2 漏洞修复期间,Logback 也出事,我们来看官方的通告: 漏洞摘要 CVE-2021-42550 远程代码执行漏洞 安全等级 中 影响版本 logback...漏洞描述 在 Logback 1.2.7 及之前的版本中,具有编辑配置文件权限的攻击者可以制作恶意配置,允许从 LDAP 服务器加载、执行任意代码。...看来,JNDI 又闯祸。。。 JDNI 这到底是什么破玩意,有时间栈长再分享一篇,关注公众号Java技术栈第一时间推送哦。 上篇文章《终于!

    1.5K50

    。。。

    1 跌 我家附近有一个中学,这是一条我上班的必经之路,好多家长送小孩上学,这两天更是异常的堵。 突然意识到,这年是彻底过完了。...应该是都复工复产,该上班上班该上学上学,回归正常的2023年,大家都准备大干一场。 在复工开学季,很多人必定要采购一批物资,拼多多百亿补贴,也恰逢其时的卯足诚意给大家来了一波大促。...部分苹果产品价格跌。。 iPhone 14全系列最高直降1800元!14 Pro低至6699元!学习、出差必备Macbook pro M2低至7979元!...全品类款大降价,现在就是入手数码品类的好时机,抢到即赚到,建议大家剁手前先来拼多多比价! 这次开工开学第一波福利,苹果系列产品的补贴力度最大,轻轻松松省个上千元。...如果想要买大型电视,小米电视Redmi MAX86 是首选,因为其它品牌这么大我看价格都上万,反正我是不考虑的。

    39420

    Redis内存怎么办?在线等挺急的

    生产环境的Redis内存使用情况是必要的监控指标,Redis的稳定运行在一定程度上保证生产环境的安全稳定运行。 今天生产环境爆出了大量的 timeOut 502错误。...去监控上查看一下,是Redis内存掉了,当时我慌的一批。 经过我半个多小时的百度,总算是找到了解决问题的办法。然后我一顿操作猛如虎,可算是解决问题了,下面我来回顾一下。...Redis提供一个配置参数maxmemory来限制内存超出期望大小。...当实际内存超出 maxmemory 时,Redis 提供几种可选策略 (maxmemory-policy) 来让 用户自己决定该如何腾出新的空间以继续提供读写服务。 ?...这个配置会导致当Redis内存满的时候拒绝写的请求,当Redis开始使用swap交换区的时候,你的读请求会超乎想象的慢。

    94530

    【踩坑】Android 编译线程, gradle 内存 OOM 解决之路

    探索原因 从报错的信息来看,‘jar transform Thread’ 有时候的线程数非常多, 很有可能是同时开启的线程数过大,导致内存不足,最终 OOM。...讨论之后,我们尝试 dump 编译时 Java 进程的内存信息,看能不能复现?...但是 epic 是基于安卓 ART 虚拟机的,而我们编译的时候,是基于 JVM 的,epic 是无法使用的。...他在官网上找到了编译 gradle 版本的方法 编译完成之后,上传到 CC 的 S3 服务器上面,我们在 gradle-wrapper.properties 下面修改,替换成自己的 gradle 版本...从 error 日志排查发现,很有可能跟 transfrom 相关 排查项目里面 transfrom 相关的,有没有 jar transform Thread 相关的 dump JVM 内存,看线程相关的

    83350

    Java虚拟机--虚拟机内存区域Java虚拟机内存区域

    Java虚拟机内存区域 Java程序在JVM虚拟机中运行,当我们一个类被加载到虚拟机中时,JVM会给该类分配具体的内存空间/内存地址,而这被分配的区域就是Java虚拟机运行时内存区域。...虚拟机内存。...Java虚拟机在每一个线程中维护一个PC寄存器(程序计数器),保存的就是线程中代码的行号。...Java虚拟机栈用于存储栈帧,说白就是用于存储方法中的局部变量、方法的返回地址以及动态链接等。对于方法来说,栈帧在方法的调用和返回中扮演了十分重要的作用。 栈帧是什么?...此时,名字知道,但是Java真正运行起来的时候,需要将名字解析成相应的直接引用,利用直接引用来准确地找到具体的内存地址,找到内存地址中的值。这个名字就叫做 符号引用。

    2.1K80

    这款游戏,彻底

    整个部署教程将基于腾讯云轻量应用服务器Lighthouse来进行,官方提供自动部署幻兽帕鲁、自动放通防火墙端口等,无需手动配置,最少仅需10秒,即可开服。...是不是很简单,接下来仅需登录并进行配置私服即可愉快的玩耍。 当然前提条件是,你需要有 Steam 客户端,以及在 Steam 购买了幻兽帕鲁(Palworld)。...步骤一:登录轻量云控制台,找到部署幻兽帕鲁的服务器,单击实例卡片进入详情页。 通过幻兽帕鲁应用模板创建的服务器 步骤二:在实例详情页点击“应用管理”,即可看到幻兽帕鲁的配置面板。...启动幻兽帕鲁 停止幻兽帕鲁 以上就是部署和配置幻兽帕鲁的全部教程,大家看完后会不会觉得很简单,基本上点点按钮就实现。...特别是对于程序员来讲,安装一个私服几乎没有任何难度,感兴趣可以部署一个找女朋友去炫耀

    24110

    今年后端???

    每次登录牛客,看到最多的就是各种 Java 后端岗位的喜讯,美团 OC、快手 OC 、就连腾讯 OC 的都是 Java 岗,我怀疑牛客是不是给我打了“只报喜不报忧”的标签?...在分配内存时,Java 虚拟机维护一个指针,指向下一个可用的内存地址,每次分配内存时,只需要将指针向后移动(碰撞)一段距离,然后将这段内存分配给对象实例即可。...Entry 继承 WeakReference,它限定 key 是一个弱引用,弱引用的好处是当内存不足时,JVM 会回收 ThreadLocal 对象,并且将其对应的 Entry 的 value 设置为...这个比较和替换的操作是原子的,即不可中断,确保数据的一致性。 什么是 ABA 问题?如何解决?...,线程 B 读取 x 时由于本地内存中的 x 失效,就会从主内存中读取最新的值,内存可见性达成!

    14410

    商城首页卡!!!

    大家好,我是苏三,又跟大家见面。 前言 最近我们的商城系统出现一个线上问题,用户访问商城首页的时候要差不多20秒,才返回数据,可以说卡。 到底怎么回事呢?...进一步了解之后发现,造成这个问题的根本原因是redis服务器挂了。 为什么会挂呢? 是因为一次性往redis中存储的数据太多了,导致内存不足。...原本商品只有几十万其实不多,但是按地区和分类做区分之后,保存的数据量乘以几百倍,一下子占用了大量的内存。 redis挂了为什么会导致首页慢呢?...目前的这套方案,先从redis中获取数据,如果失败,再从数据库中获取。 现在的问题是:redis内存不足,临时解决问题,只能加内存资源。 因为加内存是最快的,直接加到了4G。...在阿里云上redis加了内存之后,这个问题很快解决,首页访问速度一下子提升。 但这不是问题的本质。 3.复盘 第二天,我们开始复盘问题。

    20210

    JVM虚拟机内存

    Java虚拟机栈:java方法执行的内存模型,每个方法被执行时都会创建一个栈帧,存储局部变量表,操作栈,动态链接,方法出口等信息。...本地方法栈:Native方法服务,在hotspot虚拟机中和java虚拟机栈合二为一。 线程共享 java堆:存放对象实力,几乎所有的对象实例及其属性都在这里分配内存。...此外,jvm在内存新生代eden space中开辟一块线程私有的区域,称作TLAB(Thread Local Allocation Buffer),也是每个线程的缓冲区,默认设定为占用Eden space...如果s区满了,这些对象会被copy到old区,或者s区没有满,但是有些对象足够old,会被放入old区。 old区满了之后,进行full gc。...outfomemoryerror:虚拟机在扩展栈时无法申请到足够的内存空间,一般可以通过不停创建线程触发这种OOM。

    62620

    是谁把我的服务器硬盘撑!是谁!

    收到这个告警时,我是懵逼的,因为我部署到这个服务器上的项目并没有涉及什么文件写入,公司服务器硬盘还挺大的,怎么突然空间就满了呢?...但如果项目长期运行,哪怕每天 100 mb 的日志,一年也会占用几十个 G ,不容小觑。 有意思的是,产生这些日志文件的项目,还不是我自己的,是其他用这个服务器的同事的项目!...所以为啥说项目要尽量独立部署、可以用容器去做隔离呢,共用服务器一旦出事,所有项目就 “连坐” 。...但如果日志量级大,可能就要考虑使用集中化的日志管理系统,比如典型的分布式日志 ELK(Elasticsearch + Logstash + Kibana),可以将日志统一采集、存储到多台服务器上并支持在线分析...这样不仅能够减轻单台服务器的磁盘压力、便于扩容硬盘、还可以更方便地进行日志搜索和分析,不用自己写 Linux 命令从日志文件中提取文本。 但搭建和维护 ELK 的成本是比较大的,小公司未必要使用。

    12300

    Java虚拟机内存管理(一)—内存划分

    1、内存划分 内存是计算机中运行系统和软件的场所,而内存划分是 Java 虚拟机管理内存中人为添加的概念,是为了更好的描述 Java 虚拟机内存的管理。...在 Java 虚拟机规范中,对这个区域规定两种异常出现的情况: 如果线程请求的栈深度大于虚拟机所允许的深度,抛出 StackOverflowError 异常。...其实,不同的 Java 虚拟机,对栈区域的实现是不同的,比如主流的 HotSpot 虚拟机就把虚拟机栈和本地放栈合二为一。...Java 堆在物理上可以处于不连续的内存空间,只要在逻辑上是连续的就可以,就像磁盘空间存放文件一样。...1.6 直接内存 直接内存并不在 Java 虚拟机管理的内存区域内,也不是 Java 虚拟机规范中定义的内存区域。

    86451

    秋招结束,offer

    迷茫期 当时是 2020 年的 2 月底,也就是研二的下学期,因为疫情被困在家,当时的想法还是做算法,于是就把算法的项目准备一下,又准备准备基础知识,就开始投实习试水。...因为从 2 月多就开始刷 LeetCode ,当时已经用 Python 刷 30 多道,就又用 Java 把这些做过的题写了一遍,到 9 月底我的秋招结束时一共刷 130 道左右,刷两遍。...# 我的秋招之路 可选标题:秋招结束,offer ! 这是一篇来自算法转 Java 后端的一位读者的投稿!文章主要分享作者从迷茫崩溃到最终斩获腾讯、京东、百度等大厂 offer 的经历。...迷茫期 当时是 2020 年的 2 月底,也就是研二的下学期,因为疫情被困在家,当时的想法还是做算法,于是就把算法的项目准备一下,又准备准备基础知识,就开始投实习试水。...因为从 2 月多就开始刷 LeetCode ,当时已经用 Python 刷 30 多道,就又用 Java 把这些做过的题写了一遍,到 9 月底我的秋招结束时一共刷 130 道左右,刷两遍。

    57510

    这款代码分享神器,

    前段时间我在公众号发文宣传团队新开发的小工具《代码小抄》,这是一个简单易用的代码分享工具,可以快速、跨设备地自由分享代码。...这是由于同时访问的人数较多,而服务器的带宽是有限的,就导致网页文件传输速度受到了影响。...又经过了一段时间的沉淀,我们修复很多 Bug,也开发了一些新功能,还上线微信小程序~ 现在代码小抄算是活过了运营期,正式上线!...用户数很快就上万,感谢大家的支持哇: 下面再给大家介绍下代码小抄,文末有一些新增的功能哦~ 为什么做这个项目?...在 PC 端写的代码,可以通过扫码快速在手机上查看: 求求!找别人改 Bug 时,不要再拍模糊不清的照片、或者直接在聊天里发代码,那样真的会让对方很困惑。

    20510
    领券