当前位置: 首页 > news >正文

JVM优化常用命令

  • jps

列出正在运行的虚拟机进程

jps
  • top

列出线程CPU或内存占用

top
top -Hp pid  //列出pid全部线程
  • jstat

监视虚拟机运行状态信息

jstat -gc pid 5000   //每隔5s打印gc情况
  • jmap

jmap -heap pid   //输出jvm内存情况
jmap -histo:live pid | more  //查看堆内存中的对象数量和大小
jmap -dump:format=b,file=xxx pid  //生成堆存储快照,使用mat等工具分析
  • jstack

生成虚拟机当前时刻的线程快照,帮助定位线程出现长时间停顿的原因

jstack -l 30386 >> /xx/logs/xxx.log   //导出线程情况
jstack pid |grep -A 200 nid   //查询具体线程情况
printf "%x\n" pid   //10进制转16进制

一些JVM参数

4.1.设定堆内存大小

  • -Xms:启动JVM时的堆内存空间。

  • -Xmx:堆内存最大限制。

  • -Xmn:设置年轻代大小整个堆大小=年轻代大小 + 年老代大小 + 持久代大小,Sun官方推荐配置为整个堆的3/8

  • -XX:PermSize=128M设置持久代大小

  • -XX:MaxPermSize=128M设置持久代最大值,此值可以设置与-XX:PermSize相同,防止持久代内存伸缩,持久代设置很重要,一般预留其使用空间的1/3.

4.2.设定新生代大小。

  • -XX:NewRatio:新生代和老年代的占比。

  • -XX:NewSize:新生代空间。

  • -XX:SurvivorRatio:伊甸园空间和幸存者空间的占比。

  • -XX:MaxTenuringThreshold:对象进入老年代的年龄阈值。

4.3.设定垃圾回收器

  • -XX:+UseSerialGC 开启串行收集器

  • -XX:+UseParallelGC开启年轻代并行收集器,JDK5.0以上,JVM会根据系统配置自行设置,所以无需再设置此值

  • -XX:+UseParallelOldGC开启老年代并行收集器

  • -XX:+UseConcMarkSweepGC开启老年代并发收集器(简称CMS),可以和UseParallelGC一起使用

  • -XX:CMSInitiatingOccupancyFraction=70老年代内存使用比例到多少激活CMS收集器,这个数值的设置有很大技巧基本上满足(Xmx-Xmn)*(100-CMSInitiatingOccupancyFraction)/100>=Xmn否则会出现“Concurrent Mode Failure”,promotionfailed,官方建议数值为68

  • -XX:+UseCMSCompactAtFullCollection:使用并发收集器时,开启对年老代的压缩

4.4.其他

  • -Xss: 设置每个线程的堆栈大小,设置每个线程的堆栈大小。JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右,这个参数对性能的影响比较大的

  • -XX:MaxTenuringThreshold=0:设置垃圾最大年龄。如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年老代。对于年老代比较多的应用,可以提高效率。如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象再年轻代的存活时间,增加在年轻代即被回收的概论,linux64的java6默认值是15

  • -XX:ParallelGCThreads=设置并行垃圾回收的线程数。此值可以设置与机器处理器数量相等(逻辑cpu数),这个不确定是物理、还是逻辑使用默认就好

  • -XX:MaxGCPauseMillis=指定垃圾回收时的最长暂停时间,单位毫秒,如果指定了此值的话,堆大小和垃圾回收相关参数会进行调整以达到指定值,设定此值可能会减少应用的吞吐量

  • -XX:GCTimeRatio=设定吞吐量为垃圾回收时间与非垃圾回收时间的比值,公式为1/(1+N)。例如,-XX:GCTimeRatio=19时,表示5%的时间用于垃圾回收。默认情况为99,即1%的时间用于垃圾回收

  • -XX:+UseAdaptiveSizePolicy:设置此选项后,并行收集器会自动选择年轻代区大小和相应的Survivor区比例,以达到目标系统规定的最低相应时间或者收集频率等,此值建议使用并行收集器时,一直打开

  • -XX:+DisableExplicitGC:禁止 java 程序中的 full gc, 如System.gc() 的调用. 最好加上, 防止程序在代码里误用了对性能造成冲击

  • -XX:+PrintGCDetails 打应垃圾收集的情况

  • -XX:+PrintGCTimeStamps 打应垃圾收集的情况

  • -XX:+PrintGCApplicationConcurrentTime:打印每次垃圾回收前,程序未中断的执行时间。可与上面混合使用

  • -XX:+PrintGCApplicationStoppedTime 打应垃圾收集时 , 系统的停顿时间

  • -XX:+PrintGC 打印GC情况

  • -XX:PrintHeapAtGC:打印GC前后的详细堆栈信息

相关文章:

JVM优化常用命令

jps列出正在运行的虚拟机进程jpstop列出线程CPU或内存占用top top -Hp pid //列出pid全部线程jstat监视虚拟机运行状态信息jstat -gc pid 5000 //每隔5s打印gc情况jmapjmap -heap pid //输出jvm内存情况 jmap -histo:live pid | more //查看堆内存中的对象数量和大小 jma…...

按键中断实验

gpio.c#include"gpio.h"//给gpio使能和设置为输入模式void hal_gpio_init(){//使能GPIOF控制器RCC->MP_AHB4ENSETR|(0x1<<5);//通过GPIOF_将pf9/pf7/pf8设置为输入模式 GPIOF->MODER&(~(0x3<<18));GPIOF->MODER&(~(0x3<<14));GPI…...

kubernetes入门介绍,从0到1搭建并使用

Kubernetes是一个容器编排系统&#xff0c;用于自动化应用程序部署、扩展和管理。本指南将介绍Kubernetes的基础知识&#xff0c;包括基本概念、安装部署和基础用法。 基础介绍 Kubernetes是Google开发的开源项目&#xff0c;是一个容器编排系统&#xff0c;可以自动化部署、…...

【C语言进阶】字符串函数与内存函数的学习与模拟实现

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;C语言进阶 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录1.字符串处理函数介…...

【JavaEE初阶】第一节.多线程(进阶篇 ) 常见的锁策略、CAS及它的ABA问题

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、常见的锁策略 1.1 乐观锁 vs 悲观锁 1.2 普通的互斥锁 vs 读写锁 1.3 重量级锁 vs 轻量级锁 1.4 自旋锁 vs 挂起等待锁 1.5 公平…...

Linux基础命令-pstree树状显示进程信息

Linux基础命令-uname显示系统内核信息 Linux基础命令-lsof查看进程打开的文件 Linux基础命令-uptime查看系统负载 文章目录 前言 一 命令介绍 二 语法及参数 2.1 使用man查看命令语法 2.2 常用参数 三 参考实例 3.1 以树状图的形式显示所有进程 3.2 以树状图显示进程号…...

keepalived+LVS配置详解

keepalivedLVS配置详解keepalived简介keepalived的应用场景keepalived工作原理VRRP协议核心组件分层工作工作状态LVS简介LVS三种模式NAT模式(网络地址映射)IPTUN模式(IP隧道)DR模式(直接路由)三种模式对比keepalivedLVS配置1.master配置2. keepalived配置文件3 修改keepalived配…...

Unity之C#端使用protobuf

什么是protobuf protobuf全称Protocol Buffers&#xff0c;由Google推出的一种平台、语言无关的数据交互格式&#xff0c;目前使用最广泛的一种数据格式&#xff0c;尤其在网络传输过程中&#xff0c;有很强的安全性&#xff0c;而且数据量比json和xml要小很多。 最主要的是pr…...

C++设计模式(18)——模板方法模式

亦称&#xff1a; Template Method 意图 模板方法模式是一种行为设计模式&#xff0c; 它在超类中定义了一个算法的框架&#xff0c; 允许子类在不修改结构的情况下重写算法的特定步骤。 问题 假如你正在开发一款分析公司文档的数据挖掘程序。 用户需要向程序输入各种格式…...

SQLserver 索引碎片

Oracle 不需要整理碎片&#xff0c;原因&#xff1f; 1. rowid 默认的索引是&#xff22;&#xff0d;树索引。索引建立在表中的一个或多个列或者是表的表达式上&#xff0c;将列值和行编号一起存储。行编号是唯一标记表中行的伪列。 行编号是物理表中的行数据的内部地址&am…...

【Storm】【二】安装

1 准备 1.1 准备linux服务器 本文搭建的是3节点的集群&#xff0c;需要3台linux服务器&#xff0c;我这里使用的是centos7版本的linux虚拟机&#xff0c;虚拟机网络配置如下&#xff1a; 主节点&#xff1a; master 192.168.92.90 从节点&#xff1a; slave1 192.168.92.…...

Android ConditionVariable

Android ConditionVariable 线程操作经常用到wait和notify&#xff0c;用起来稍显繁琐&#xff0c;而Android给我们封装好了一个ConditionVariable类&#xff0c;用于线程同步。提供了三个方法block()、open()、close()。 void block() //阻塞当前线程&#xff0c;直到条件为…...

Action Segmentation数据集介绍——Breakfast

文章目录简介细节Cooking actibitiesillustration of the actions论文讲解Breakfast&#xff08;The Breakfast Action Dataset&#xff09;简介 早餐动作数据集包括与早餐准备相关的10个动作&#xff0c;由18个不同厨房的52个不同的人执行。该数据集是最大的完全带注释的数据…...

横道图时间标尺在P6软件中的设置

卷首语 由于其直观简洁且易于管理的特性&#xff0c;使其成为展示项目活动顺序及时间安排的最常用的进度管理工具。 甘特图 甘特图&#xff08;Gantt Chart&#xff09;&#xff0c;又称为横道图或棒条图&#xff0c;是最早的项目进度管理工具之一。由于其直观简洁且易于管理…...

空间复杂度(超详解+例题)

全文目录引言空间复杂度例题test1test2&#xff08;冒泡排序&#xff09;test3&#xff08;求阶乘&#xff09;test4&#xff08;斐波那契数列&#xff09;总结引言 在上一篇文章中&#xff0c;我们提到判断一个算法的好坏的标准是时间复杂度与空间复杂度。 时间复杂度的作用…...

Document-Level event Extraction via human-like reading process 论文解读

Document-Level event Extraction via human-like reading process 论文&#xff1a;2202.03092v1.pdf (arxiv.org) 代码&#xff1a;无 期刊/会议&#xff1a;ICASSP 2022 摘要 文档级事件抽取(DEE)特别困难&#xff0c;因为它提出了两个挑战:论元分散和多事件。第一个挑战…...

H5盲盒抽奖系统源码

盲盒抽奖系统4.0&#xff0c;带推广二维码防洪炮灰功能和教程。 支持微信无限回调登录 标价就是源码价格&#xff0c;vuetp5框架编写&#xff0c;H5网页&#xff0c;前后端分离 此源码为正规开发&#xff0c;正版产品已申请软著。 开源无加密无授权&#xff0c;可以二开使用…...

低代码平台和无代码平台哪个更适合开发企业管理系统?

编者按&#xff1a;本文分析了开发企业管理系统所需要的平台特性&#xff0c;并根据这些特点和低代码无代码的优劣比较&#xff0c;得出低代码平台更适合开发企业管理系统。关键词&#xff1a;私有化部署&#xff0c;可视化设计&#xff0c;源码交付&#xff0c;数据集成&#…...

75岁彪马再发NFT 复活美洲狮IP

在“运动品牌Web3”的潮流里&#xff0c;彪马&#xff08;PUMA&#xff09;绝对算是发烧友级别。2月22日&#xff0c;这家德国服装品牌的新NFT又来了&#xff0c;总量10000个Super PUMA NFT中&#xff0c;将有4000个以0.15 ETH&#xff08;约为255美元&#xff09;价格正式公售…...

大学生成人插画培训机构盘点

成人插画培训机构哪个好&#xff0c;成人学插画如何选培训班&#xff1f;给大家梳理了国内较好的插画培训机构排名&#xff0c;各有优势和特色&#xff0c;供大家参考&#xff01; 一&#xff1a;国内成人插画培训机构排名 1、轻微课&#xff08;五颗星&#xff09; 主打课程有…...

抖音下载神器终极指南:免费批量下载视频、直播回放和音乐原声

抖音下载神器终极指南&#xff1a;免费批量下载视频、直播回放和音乐原声 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallbac…...

RePKG架构深度解析:Wallpaper Engine资源逆向工程与高性能转换方案

RePKG架构深度解析&#xff1a;Wallpaper Engine资源逆向工程与高性能转换方案 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg RePKG是一款专为Wallpaper Engine设计的C#开源工具&a…...

为什么你的PS手柄在Windows上无法畅玩游戏?3步解锁完美兼容方案

为什么你的PS手柄在Windows上无法畅玩游戏&#xff1f;3步解锁完美兼容方案 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows 你是否曾经兴奋地想在PC上使用心爱的PlayStation手柄&#xff…...

符号的魔法:数学、物理、化学中那些有趣的故事

&#x1f52c; 符号的魔法&#xff1a;数学、物理、化学中那些有趣的故事 &#x1f4d6; 开篇&#xff1a;为什么符号如此重要&#xff1f; 想象一下&#xff0c;如果没有符号&#xff1a; ❌ 没有数学符号&#xff1a; “一个数加上另一个数等于第三个数&#xff0c;如果第一个…...

RHEL8 SSH蜜罐实战:生产级威胁感知与行为仿真

1. 为什么在RHEL8上部署SSH蜜罐不是“搞个假登录框”那么简单 很多人第一次听说“SSH蜜罐”&#xff0c;脑子里浮现的是一台开着22端口、用户名密码全设成admin/admin的虚拟机&#xff0c;等着黑客连上来截图发朋友圈。我在金融行业做红蓝对抗支撑的那几年&#xff0c;亲眼见过…...

OllyDbg与CheatEngine动态分析实战:恶意软件行为建模指南

1. 这不是游戏外挂工具&#xff0c;而是逆向工程师的听诊器与显微镜很多人第一次听说OllyDbg和Cheat Engine&#xff0c;是在游戏论坛里看到“修改血量”“无限金币”的教程&#xff1b;也有人在安全群聊中听到老手随口一提&#xff1a;“这壳用OD下断点跑两圈就脱了”。但如果…...

LeetCode 912:排序数组 | 排序算法全面解析

LeetCode 912&#xff1a;排序数组 | 排序算法全面解析 引言 排序数组&#xff08;Sort an Array&#xff09;是 LeetCode 第 912 题&#xff0c;难度为 Medium。题目要求将给定数组排序并返回。虽然这是一个看似简单的问题&#xff0c;但题目对时间和空间复杂度有要求&#xf…...

雪球md5__1038签名逆向:从Chrome调试到Node.js稳定复现

1. 这不是“破解”&#xff0c;而是对前端加密逻辑的常规逆向工程实践你打开雪球网的行情接口&#xff0c;抓到一个带md5__1038xxx参数的请求&#xff0c;复制下来一试——换台电脑、换个时间、甚至只是刷新一下页面&#xff0c;参数就失效了。后端直接返回403 Forbidden或{&qu…...

Windows 11热键冲突别抓狂!用OpenArk一键揪出‘元凶’并释放你的Ctrl+C

Windows 11热键冲突终极排查指南&#xff1a;用OpenArk精准定位并解决问题每次按下CtrlC却毫无反应&#xff0c;或者发现AltTab突然失效时&#xff0c;那种挫败感简直让人抓狂。作为每天要与数十个软件打交道的设计师&#xff0c;我深刻理解热键冲突对工作效率的致命影响。本文…...

Gemini 3.5破解50年数学猜想,数学家紧急复核

AI 攻克人类智慧高地&#xff1f;Gemini 3.5 传出“破解 50 年数学猜想”重大突破&#xff0c;数学家&#xff1a;正在紧急复核&#xff01;2026年伊始&#xff0c;科技界与学术界共同迎来了一场堪称“地震级”的重磅新闻。据权威学术预印本网站及谷歌 DeepMind 团队透露&#…...