首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏若尘的技术专栏

    JVM 线上调详解

    JDKundefined包含JRE和Java设计语言。是Java语言开发最小环境,即XXX.java变为XXX.class最小环境。 JREundefined包含Java类库Api和虚拟机等,是Java程序运行标准环境。即运行XXX.class文件。 JVMundefined自动管理内存。 undefinedJDK 8和JDK 11是LTS版,再下一个就到2021年发布的JDK 17。 二 了解JVM基础知识 Java 虚拟机会自动管理内存,内存的获取和释放都是由jvm来控制。 本地方法栈(重点) 与虚拟机栈发挥作用类似,区别:虚拟机栈是服务Java方法,本地方法栈服务的是本地方法。 4. 3.4 -XX参数设置 主要用于jvm调和debug操作。 1. -XX参数类型 boolean类型 -XX:+-<name> 启用或者禁用name属性。

    1.2K75编辑于 2021-12-15
  • 来自专栏公众号:懒时小窝

    Mysql专栏 - 线上调与压力测试

    Mysql专栏 - 线上调与压力测试 前言 本节内容讲述线上的调手段以及压力测试的相关工具,结合一些实际的命令参数,我们将会介绍运行结果的具体含义。 通常选择: 大多数情况下一般8核16G的机器部署的MySQL数据库,每秒抗个一两千并发请求是没问题的,但是如果并发量再高一些,假设每秒有几千并发请求,那么可能数据库就会有点危险了,因为数据库的「CPU 吞吐量: 如果一个系统处理一个mysql请求需要1s,那么一分钟可能只处理100个请求,4核8G的机器部署普通的Java应用系统,通常每秒大致就是抗下几百的并发访问,但是同一个配置的机器可以从每秒一两百请求到每秒七八百请求都是有可能的 ❝给你一台4核8G的机器,他可以扛住每秒几千甚至每秒几万的并发请求吗? 扛下多少请求,需要看实际的cpu,硬盘,内存,网络带宽等环境。 思考题: 假设开发的Java系统部署在一台4核8G的机器上,那么我们假设这个Java系统处理一个请求非常非常快,每个请求只需要0.01ms就可以处理完了,那你觉得这一台机器部署的Java系统,可以实现每秒抗下几千并发

    2.5K20发布于 2021-09-10
  • 来自专栏犀牛饲养员的技术笔记

    记一次G1垃圾回收线上调的实践

    有个项目最近上线了,为了避免后面访问量突增引发不可预知的问题,按照惯例需要进行压测。我选取了几个请求比较频繁的接口进混合压测,发现了一个性能瓶颈,是垃圾回收配置不合理导致的。

    86130编辑于 2023-02-24
  • 来自专栏Java项目实战

    JAVA8 Lambda表达式到底不优雅?

    那么JAVA8到底有多优雅呢?首先看下都有神马新特性 ? 我们从代码角度体会下JAVA8的好处; 需求:设计接口实现对对象属性的过滤。 作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。 Lambda表达式的语法 Lambda 表达式在Java 8 语言中引入了一个新的语法元素和操作符。 JDK 8之前已有的函数式接口: java.lang.Runnable java.util.concurrent.Callable 但是为什么java8不需要也能编译通过呢?其实底层他还是final的,我们验证一下 ?

    83040发布于 2019-08-16
  • 来自专栏Java架构学习路线

    线大厂Java面试必问的2大类Tomcat调

    一、前言 最近整理了 Tomcat 调这块,基本上面试必问,于是就花了点时间去搜集一下 Tomcat 调都调了些什么,先记录一下调手段,更多详细的原理和实现以后用到时候再来补充记录,下面就来介绍一下 1、Tomcat的自身调 采用动静分离节约 Tomcat 的性能 调整 Tomcat 的线程池 调整 Tomcat 的连接器 修改 Tomcat 的运行模式 禁用 AJP 连接器 2、JVM的调 4、通过修改 Tomcat 的运行模式 BIO Tomcat8 以下版本,默认使用的就是 BIO「阻塞式IO)」模式。 对于每一个请求都要创建一个线程来进行处理,不适合高并发。 NIO Tomcat8 以上版本,默认使用的就是NIO模式「非阻塞式 IO」。 找到 catalina.sh; 添加; 参数设置; JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8-server -Xms1024m

    53500发布于 2019-09-22
  • 来自专栏一英里广度一英寸深度的学习

    java概要

    Java 实际问题 CPU彪高如何处理? 生产环境应该给应用分配多少线程合适? 不加log如何确定请求是否执行了某一行代码? 不加log如何实时查看某个方法的入参与返回值? Btrace的监控调试 tomcat,nginx,jvm GC调java代码 JVM参数jinfo,jstat统计信息 图形化工具 jmap+MAT jstack线程情况 Btrace安装与使用 Tomcat工具 tomcat 远程debug psi-probe和Tomcat-manager监控Tomcat Tomcat调 Nginx工具 Nginx性能监控与调 ngx_http_stub_status 监控连接信息 ngxtop监控请求信息、nginx-rdd图形监控 JVM内存结构 垃圾回收算法、垃圾回收器 GC日志格式与可视化日志分析工具 Tomcat的Gc调实战 Java代码层调 JVM字节码指令与 = 22413312 (21.375MB) NewRatio = 2 SurvivorRatio = 8

    94560发布于 2019-02-25
  • 来自专栏猿人谷

    Java性能调

    A:因为年轻代的内存无法被回收,越来越多地被Copy到年老代 三、性能调  除了上述内存泄漏外,我们还发现CPU长期不足3%,系统吞吐量不够,针对8core×16G、64bit的Linux服务器来说 在CPU负载不足的同时,偶尔会有用户反映请求的时间过长,我们意识到必须对程序及JVM进行调。 这个我问题毫无疑问是没有答案的,否则也就不会有调。 参数配置:(服务器:Linux 64Bit,8Core×16G) JAVA_OPTS="$JAVA_OPTS -server -Xms3G -Xmx3G -Xss256k -XX:PermSize= 4.程序算法调:本次不作为重点 参考资料

    1.7K110发布于 2018-01-17
  • 来自专栏张恒的网络日志

    java性能调

    以下部分内容整理自《分布式Java应用:原理与实践》——林昊 随着系统自身数据量的增长,访问量增加,系统的响应通常会越来越慢,或者是新的功能在性能上无法满足修去,这个时候需要对系统进行性能调。 运行队列 每个CPU核都维护了一个可运行的线程队列,例如一个4核的CPU,Java应用中启动了8个线程,且这8个线程都处于可运行状态,那么在分配平均的情况下,每个CPU核运行队列里就会有两个线程。 java应用的CPU调 对于java应用而言,CPU消耗严重主要体现在us 、sy两个值上。 us 当us值过高时,表示运行的应用消耗了大部分的CPU。 -XX:SurvivorRatio 是控制新生代Eden、S0、S1三个区域的比率,例如比值是 8:1:1 时,值为8 -XX:MaxTenuringThreshold 控制对象在经历多少司Minor SE 技术 Java SE HotSpot 概览 Java HotSpot VM Options Java EE7 技术 Java Platform SE 7 API Memory Management

    1.4K20发布于 2020-04-28
  • 来自专栏java初学

    java — JVM调

    Java中,一个空Object对象的大小是8byte,这个大小只是保存堆中一个没有任何属性的对象的大小。 看下面语句: Object ob = new Object();  这样在程序中完成了一个Java对象的生命,但是它所占的空间为:4byte+8byte。 4byte是上面部分所说的Java栈中保存引用的所需要的空间。而那8byte则是Java堆中对象的信息。 因为所有的Java非基本类型的对象都需要默认继承Object对象,因此不论什么样的Java对象,其大小都必须是大于8byte。   有了Object对象的大小,我们就可以计算其他对象的大小了。 但是因为Java在对对象内存分配时都是以8的整数倍来分,因此大于17byte的最接近8的整数倍的是24,因此此对象的大小为24byte。      这里需要注意一下基本类型的包装类型的大小。

    1.2K90发布于 2018-05-14
  • 来自专栏芋道源码1024

    IntelliJ IDEA JDK 8 性能调

    IntelliJ IDEA 问题描述问题原因解决方法调后观察为什么要选择用户`idea.vmoptions`文件 ---- IntelliJ IDEA 问题描述 IntelliJ IDEA 在 多窗口 工具打开Info.plist ,其中存在一个 key 元素内容为VMOptions的设置,如下所示: <key>VMOptions</key> <string>-Dfile.encoding=UTF-8 _%p.log -XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof -Xbootclasspath/a:.. -XX:+UseConcMarkSweepGC 为 IDEA 默认配置GC 算法,将其移除,修改为: <key>VMOptions</key> <string>-Dfile.encoding=UTF-8 -XX:MaxMetaspaceSize=512m -XX:ReservedCodeCacheSize=240m 调后观察 风扇旋转情况 启动 IntelliJ IDEA 2017.1 后一小时有余

    1.7K20发布于 2018-12-19
  • 来自专栏全栈程序员必看

    jvm 调命令_java jvm调工具

    堆的大页面尺寸 -XX:PretenureSizeThreshold= size 大于该值的对象直接晋升入老年代(这种对象少用为好) -XX:SurvivorRatio=8 Eden区域Survivor 区的容量比值,如默认值为8,代表Eden:Survivor1:Survivor2=8:1:1 1.3.2行为参数 行为参数主要用来选择使用什么样的垃圾收集器组合,以及控制运行过程中的GC策略等 参数及其默认值 进程的参数,然后再调整设置 真实调 java -XX:+UseG1GC xxx.jar 3 五大常用命令(一定要背下来) 3.1 JPS 查看java进程id 查看当前系统上,正在运行的java guest guest manager manager 授予权限 : chmod 600 *jmxremot* (6)将连接服务器地址改为公网ip地址 (7)设置上述端口对应的安全策略和防火墙策略 (8) 5.2程序监控调 前提:java 应用程序必然是正常运行的。. 目的:减少GC 频率,减少Full GC 发现现象才去解决?

    1.4K31编辑于 2022-11-17
  • 来自专栏全栈程序员必看

    Java 性能调工具

    Java监控工具 jcmd: 打印java进程涉及的基本类,线程和VM信息。 jconsole: 提供JVM活动的图形化视图,包括线程的使用,类的使用和GC活动。 jstack: 转储Java进程的栈信息。 jstat: 提供GC和类装载活动的信息。 jvisualvm: 监视JVM的GUI工具,可以用来剖析运行的应用,分析JVM堆转储。 打开Visual VM之后,左边导航栏会显示出当前机器所有Java进程: 点击你想监控的程序即可对该程序进行监控,Visual VM的性能监控页一共有以下几个tab页: 概述页会显示程序的基本使用情况 下面是一个频繁调用的Java程序,我们会对改程序进行采样: public class MethodTime { static java.util.Random r=new java.util.Random String,String> map=null; static{ map=new HashMap<String,String>(); map.put("1", "Java

    84020编辑于 2022-08-05
  • 来自专栏数据人生

    Java GC参数调

    https://docs.oracle.com/cd/E40972_01/doc.70/e40973/cnf_jvmgc.htm#autoId0

    60310编辑于 2022-09-29
  • 来自专栏Java

    Java GC调详解

    Java GC调详解 在Java应用程序中,垃圾回收(Garbage Collection,GC)是管理和释放内存的重要机制。良好的GC调可以提高应用程序的性能和稳定性。 本文将深入探讨Java GC调的原理、常用调技巧以及应用场景,并提供详细的案例和代码示例。 1. 示例代码:Java GC调的应用场景 下面是一个简单的Java代码示例,演示如何通过对象池技术来优化大对象的创建和销毁: public class ObjectPool<T> { private 8. 高并发场景下的GC调 在高并发场景下,GC的影响会更加显著。通过合理选择并发GC算法、调整GC线程数、减少锁竞争等方式,可以降低GC的停顿时间,提高系统的并发能力和响应速度。 9. 将并发GC线程数设置为8,以提高高并发场景下的GC性能。

    86910编辑于 2025-01-21
  • 来自专栏Linyb极客之路

    Java经验谈

    性能调:经过上一步的分析定位到了问题所在,需要对问题进行解决,使用代码、配置等手段进行优化。 Java也不外乎这三步。 上图来自笔者公司二次开发过的jwebap,已经支持jdk8和redis连接追踪。 性能调 与性能分析相对应,性能调同样分为三部分。 CPU调 不要存在一直运行的线程(无限while循环),可以使用sleep休眠一段时间。 此外,G1直到jdk8的出现也并没有得到广泛应用,并不建议使用。 吞吐量优先的应用,也尽可能的设置大,因为对响应时间没有要求,垃圾收集可以并行进行,建议适合8CPU以上的应用使用。

    94420发布于 2018-12-24
  • 来自专栏csdn

    JVM(Java Virtual Machine)调

    性能瓶颈的识别和解决 8. 结论 JVM调的持续性和动态性 未来的调方向和技术趋势 总结 文章正文 1. 引言 Java虚拟机(JVM)是Java应用程序的运行环境,负责管理应用程序的内存、线程、垃圾回收等资源。 永久代/元数据区用于存储类的元数据(Java 8前为永久代,Java 8及以后为元数据区)。 3. JVM调的基础知识 JVM调需要利用各种工具和参数来监控和调整虚拟机的性能。 方法区和栈内存调:方法区的调整通常通过-XX:MaxPermSize(Java 8以前)进行,而栈内存的大小可以通过-Xss设置,以避免栈溢出。 5. 8. 常见问题及解决方案 调过程中常见的问题包括内存泄漏、GC频繁和停顿时间过长、高并发环境下的性能问题等。内存泄漏可以通过工具如JVisualVM的内存分析功能进行排查。

    43010编辑于 2024-08-05
  • 来自专栏学海无涯

    Java Web之Tomcat调

    Tomcat调是一个老话题,目的都是为了提高站点的吞吐和并发。这里面涉及到Tomcat本身参数的优化和JVM优化。近期在研究JVM的参数设置和Tomcat集群,所以进行了一下调实践。 executor port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8" 此值对系统性能影响较大,Sun官方推荐配置为整个堆的 3/8。 -XX:SurvivorRatio:Eden 区与 Survivor 区的大小比值,设置为 8,表示 2 个 Survivor 区(JVM 堆内存年轻代中默认有 2 个大小相等的 Survivor 区) 与 1 个 Eden 区的比值为 2:8,即 1 个 Survivor 区占整个年轻代大小的 1/10。

    1.4K40发布于 2018-05-03
  • 来自专栏运维开发故事

    k8s的 Nginx Ingress 调

    概述 Nginx Ingress Controller 基于 Nginx 实现了 Kubernetes Ingress API,Nginx 是公认的高性能网关,但如果不对其进行一些参数调,就不能充分发挥出高性能的优势 内核参数调 我们先看看通过内核的哪些参数能够提高Ingress的性能。保证在高并发环境下,发挥Ingress的最大性能。 4096,建议给 Nginx Ingress 设为 65535: sysctl -w net.core.somaxconn=65535 扩大源端口范围 根据《linux中TCP三次握手与四次挥手介绍及调》 1024-65535: sysctl -w net.ipv4.ip_local_port_range="1024 65535" TIME_WAIT 根据《linux中TCP三次握手与四次挥手介绍及调》 除了内核参数需要调,Nginx 本身的一些配置也需要进行调,下面我们来详细看下。

    3.8K30发布于 2021-08-13
  • 来自专栏JavaQ

    Java经验谈

    性能调:经过上一步的分析定位到了问题所在,需要对问题进行解决,使用代码、配置等手段进行优化。 Java也不外乎这三步。 性能调 与性能分析相对应,性能调同样分为三部分。 CPU调 不要存在一直运行的线程(无限while循环),可以使用sleep休眠一段时间。 此外,G1直到jdk8的出现也并没有得到广泛应用,并不建议使用。 吞吐量优先的应用,也尽可能的设置大,因为对响应时间没有要求,垃圾收集可以并行进行,建议适合8CPU以上的应用使用。 方法参数设置为final,这种用法也没有太大的意义,尤其在jdk8中引入了effective final,会自动识别final变量。

    72010发布于 2019-01-03
  • 来自专栏全栈技术

    JAVA 如何实现性能调

    前言 Java是一种强大的编程语言,但在处理大型应用和复杂业务时,性能问题可能会出现。为了优化Java应用程序的性能,我们需要使用一些技术和方法来进行性能调。 本文将介绍性能调的概念,探讨几种常用的性能调方法,并提供相应的代码示例。 性能调的概念 性能调是指通过优化代码、改进内存管理、提高并发性和多线程处理等手段来提升程序的执行效率和响应速度,以达到更好的性能表现。 性能调的方法 1 代码优化 优化代码是性能调的关键部分。 = null) { // 处理数据 } reader.close(); inputStream.close(); 总结 性能调是提升Java应用程序性能的关键步骤。 通过合理运用这些方法,我们可以提高Java应用程序的性能和响应能力,提升用户体验,并满足系统的需求。

    1.5K20编辑于 2023-06-27
领券