惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Simon Willison's Weblog
Simon Willison's Weblog
Google DeepMind News
Google DeepMind News
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
P
Proofpoint News Feed
Recent Announcements
Recent Announcements
MongoDB | Blog
MongoDB | Blog
U
Unit 42
云风的 BLOG
云风的 BLOG
Recorded Future
Recorded Future
G
Google Developers Blog
I
InfoQ
Blog — PlanetScale
Blog — PlanetScale
A
About on SuperTechFans
Jina AI
Jina AI
量子位
宝玉的分享
宝玉的分享
The Cloudflare Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 聂微东
Last Week in AI
Last Week in AI
WordPress大学
WordPress大学
美团技术团队
The Hacker News
The Hacker News
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Tailwind CSS Blog
博客园 - 司徒正美
博客园 - 叶小钗
Hugging Face - Blog
Hugging Face - Blog
P
Palo Alto Networks Blog
博客园_首页
阮一峰的网络日志
阮一峰的网络日志
博客园 - 【当耐特】
Spread Privacy
Spread Privacy
The GitHub Blog
The GitHub Blog
Y
Y Combinator Blog
Vercel News
Vercel News
Martin Fowler
Martin Fowler
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Forbes - Security
Forbes - Security
Attack and Defense Labs
Attack and Defense Labs
Google DeepMind News
Google DeepMind News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Azure Blog
Microsoft Azure Blog
P
Privacy International News Feed
G
GRAHAM CLULEY
The Last Watchdog
The Last Watchdog
C
Cyber Attacks, Cyber Crime and Cyber Security
AI
AI
V2EX - 技术
V2EX - 技术

博客园 - 007少侠

使用Recaf编辑汇编代码直接修改java的编译代码class Centos Linux 更换源,原官方源已经不再提供服务 如何在Docker容器中的Linux系统(Ubuntu + Centos Linux)里面使用systemctl Centos Linux 7 搭建邮件服务器(postfix + dovecot) Ubuntu Linux 搭建邮件服务器(postfix + dovecot) 【WSL2】在Windows通过自定义域名访问wsl2中的服务 Python pip pip3 源设置成国内源,阿里云源,清华大学源 利用云服务器实现内网穿透(frp),开启个人电脑(windows)可远程桌面访问 使用docker安装centos7并挂载主机目录 Rust交叉编译Mac编译Linux/Windows平台 Linux下安装dart sdk并配置环境变量 Linux下安装JDK-openj9并配置环境变量 centos7 安装 bbr加速 mybatis plus + druid多数据源(使用dynamic实现) docker将容器打包成镜像并传输至其他服务器部署(可用于容器重新run) .gitignore == git添加忽略不生效解决方案 jenkins自动构建项目源码git pull时出现冲突的终极解决方案(git远程覆盖本地分支) mysql查询,根据时间查询:几天前、几天内的数据 spring boot 使用aop实现拦截器
linux环境常用命令和java/jvm常用命令
007少侠 · 2020-09-03 · via 博客园 - 007少侠

Linux查看系统内存和cpu情况:

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head

Linux查看系统内存占用情况(概况):

Linux查看系统内存和cpu等详细信息:

注:

1.内存排序: Shift + M;2.改变内存单位: E键;3.显示详细路径: C键;4.显示CPU占比: T键;5.显示内存占比: M键;6.高亮显示: Z键;7.列高亮显示: X键;

Java查看实时堆栈信息:

Java将堆内存使用的详细情况输出到文件:

jmap -dump:file=xxx.hprof PID

jmap -dump:live,format=b,file=xxx.hprof PID (使用hprof二进制形式,输出jvm的heap内容到文件=.  live子选项是可选的,假如指定live选项,那么只输出活的对象到文件)

Java查看实时gc信息(5秒刷新一次):

Java实时查看虚拟机的各项参数:

Java输出线程dump信息到文件(jstack更多用法参考:https://www.jianshu.com/p/8d5782bc596e):

堆外内存分析

在分析堆外内存时,在网上搜了很多。在分析堆外内存时,使用到了jcmd命令,Native Memory Tracking (NMT) 是Hotspot VM用来分析VM内部内存使用情况的一个功能。我们可以利用jcmd(jdk自带)这个工具来访问NMT的数据

在使用jcmd之前,需要配置一些jvm参数,如下如所示:

即:-XX:NativeMemoryTracking=[off | summary | detail] 配置该jvm参数,重启应用即可。

注: -XX:NativeMemoryTracking=必须放在java与-jar之间,如:java -XX:NativeMemoryTracking=detail -jar application.jar

使用命令 jcmd PID VM.native_memory detail scale=MB > a.txt 查看内存的一个使用情况。

这里包含了几个部分,在分析这些内存的时候,需要搞明白啥意思,具体可以参考文章:https://blog.csdn.net/Developlee/article/details/100691997

搞清楚每一项代表的含义,那接下来就是结合自己的代码,分析哪块可能有问题。对于我问题,通过 jcmd PID VM.native_memory baseline 设置基准线,耐心多次 jcmd pid VM.native_memory detail.diff scale=MB > a_diff.txt 看差值,然后得出有详细信息。

以上的Code为代码缓存(默认是240M),通过-XX:ReservedCodeCacheSize=50m参数可以设置其大小

Class的大小需要如下2个参数(元空间)配合配置,大小根据实际情况配置(参考:https://blog.csdn.net/mayifan0/article/details/80479903

-XX:MaxMetaspaceSize=150m 

-XX:CompressedClassSpaceSize=120m  (jdk8默认1G)