spring boot服务器内存不足排查
一、top使用讲解:
1、top命令显示视图说明:
第一行: top - 11:20:27 up 71 days, 1:21, 4 users, load average: 0.08, 0.03, 0.05
- 11:20:27:代表时间
- 71 days, 1:21:系统已经运行时间
- 4 users: 当前有4个用户登录系统
load average: 0.08, 0.03, 0.05:load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况,
注意:load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
第二行:Tasks: 121 total, 1 running, 120 sleeping, 0 stopped, 0 zombie
- 121 total:任务(进程),系统现在共有121个进程。
- 1 running:运行1个。
- 120 sleeping:休眠120个。
- 0 stopped:停止0个。
- 0 zombie:僵尸的有0个。
第三行CPU状态:%Cpu(s): 0.0 us, 3.2 sy, 0.0 ni, 96.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
- 0.0 us:用户空间占用CPU的百分比。
- 3.2 sy:内核空间占用CPU的百分比。
- 0.0 ni: 改变过优先级的进程占用CPU的百分比。
- 96.8 id:空闲CPU百分比。
- 0.0 wa: IO等待占用CPU的百分比。
- 0.0 hi:硬中断(Hardware IRQ)占用CPU的百分比。
- 0.0 si: 软中断(Software Interrupts)占用CPU的百分比。
第四行:内存状态 KiB Mem : 3880188 total, 2155184 free, 1366012 used, 358992 buff/cache
- KiB:内存单位K
- 3880188 total:物理总内存。
- 2155184 free:空闲内存。
- 1366012 used:使用中的内存。
- 358992 buff/cache:缓存的内存量 。
第五行:swap交换区 KiB Swap: 0 total, 0 free, 0 used. 2262420 avail Mem
- 0 total:交换区总量。
- 0 free:空闲交换区总量。
- 0 used. 使用量。
- 2262420 avail Mem:可交换量。
第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。
其中可用内存计算:
第四行的free + 第四行的buffers/cached ,按这个公式此台服务器的可用内存:2155184+358992 = 4.7GB。
2、top各进程(任务)的状态监控:
- PID — 进程id
- USER — 进程所有者
- PR — 进程优先级
- NI — nice值。负值表示高优先级,正值表示低优先级
- VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
- RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
- SHR — 共享内存大小,单位kb
- S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
- %CPU — 上次更新到现在的CPU时间占用百分比
- %MEM — 进程使用的物理内存百分比
- TIME+ — 进程使用的CPU时间总计,单位1/100秒
- COMMAND — 进程名称(命令名/命令行)
3、多U多核CPU监控
在top基本视图中,按键盘数字“1”,可监控每个逻辑CPU的状况:
4、top默认的排序列是“%CPU”
通过”shift + >”或”shift + <”可以向右或左改变排序列,下图是按一次”shift + >”的效果图
视图现在已经按照%MEM来排序了。
5、使用top命令后,按f, 可以选择相关参数,按d标示 是否显示,按q标示退出
6、top然后按m,显示内存剩余大小:
7、 top -p 进程号 -H 查看进程下的线程
8、jstack -l 15683 (pid) 查看进程下的所有堆栈信息
- jstack -l 15683 > 15683 .txt将堆栈信息保存在本地
- printf "%x" 15739 将线程的10进制转换成16进程
在15683.txt查看到对应堆栈信息:
Locked ownable synchronizers:
一个可持有的同步器多半是线程独有并且使用了AbstractOwnableSynchronizer(或是其子类)去实现它的同步特性,ReentrantLock与ReentrantReadWriteLock就是JAVA平台提供的两个例子。
二、监控java线程数
ps -eLf | grep java | wc -l
netstat -n | grep tcp | grep 9088 | wc -l
监控网络客户连接数:
三、物理内存占用排序
ps -aux --sort -rss |head 列出进程拿物理内存占用排序 使用ps aux 查看系统进程时,第六列即 RSS列显示的就是进程使用的物理内存。
ps aux --sort=-rss (rss查看内存量)
四、查看系统内存情况
free -m
total: 本机共有多少内存
used: 本机已消耗的内存
free: 本机空闲的内存
五、限制启动服务启动量
java -Xms256m -Xmx512m
spring boot服务器内存不足排查相关推荐
- Docker环境下Spring Boot应用内存飙升分析与解决
目录 Spring Boot应用内存飙升 服务现状 JVM默认内存设置 优化 限制JVM内存 参数解释 JVM常见参数 java.security.egd 作用 优化后的Dockerfile文件 优化 ...
- 音乐播放器-Android+okhttp连接+Spring boot服务器+oracle数据库+腾讯云端
1.整体架构 1.1软件系统架构: Android+okhttp连接+Spring boot服务器+oracle数据库+腾讯云端服务器地址:https://github.com/DNFDS/Twink ...
- 深入Spring Boot:利用Arthas排查NoSuchMethodError
前言 有时spring boot应用会遇到java.lang.NoSuchMethodError的问题,下面以具体的demo来说明怎样利用arthas来排查. Demo: https://github ...
- cpuz不显示服务器内存,问题排查:系统不能识别内存但 CPU-Z 可以识别
今天早上搬砖的时候发现在自己的工作站上安装的 Windows 10 64 bit 开机以后只能识别 96 GB 内存,但是机器上面装了 128 GB (16 GB x8) 内存 排查过程: 内存不能识 ...
- spring boot 服务器常用
ps aux|grep tgcw ll /opt/nginx/html sudo cp -r /tmp/tgcw/dist/* /opt/nginx/html/design sudo cp ...
- 从Spring Boot信息泄露到AWS控制台劫持(攻破aws亚马逊服务器)
0x01 引言 全球云厂商有很多,本文主要针对Spring Boot信息泄露在aws上的利用. 0x02 正文 1) 用shodan分析spring boot服务器在asn上分布的情况 https:/ ...
- 掌握 Spring Boot 运行内存及内存参数设置:助力高效应用部署与优化
pring Boot 是当今非常流行的 Java 应用框架之一,在企业级应用开发中被广泛使用.应用部署和优化是企业级应用开发的一个非常重要的方面.在这篇博客中,我们将学习如何掌握 Spring Boo ...
- 使用Spring Boot和MongoDB构建一个React式应用程序
"我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. 如果您要 ...
- 使用Spring Boot和MongoDB构建一个反应式应用程序
"我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. 如果您要 ...
最新文章
- 字节跳动AI Lab社招以及实习生内推
- SAP QM 通过控制图 (Control Chart) 的实现提升企业质量管理水平
- 超壮观!10只波士顿动力机器狗,拖动大卡车,步伐整齐划一如同仪仗队
- python处理数据的优势-Python与其他语言相比有哪些优势?
- 【拔刀吧少年】之shell函数
- 第十四期:5 个 JS 不良编码习惯,你占几个呢?
- Git操作失败并提示Another git process seems to be running in this......
- 数据在内存中的存储(二进制形式存储)
- 如何爬取了知乎用户信息,并做了简单的分析
- Python实现批量处理扫描特定目录
- APP设计~切图那些事儿
- 王道书 P150 T18(在中序线索二叉树里找指定节点在后序的前驱节点)+ 拓展(在中序线索二叉树里找指定节点在先序的后继节点)
- python三维图形等高线_python等高线
- 前端面试题及解答(尽量口语化,模拟面试现场时的回答)
- 彻悟人生555句金玉良言
- 数据库MSSQLSERVER_18456错误解决
- 旷视科技2023校园招聘提前批正式启动!
- H5填坑笔记--持续更新
- javafx-webview中加载的网页有弹窗不显示问题
- P3518 [POI2011]strongbox
热门文章
- 数码宝贝服务器连接中断,数码宝贝新世纪服务器满了 问题解决方法分享
- 稠密集和疏朗集_康托集为啥不是疏朗集?
- 同程联盟景点门票动态程序 beta1.0源码
- webRTC(十五):webrtc 文件实时传输
- sim卡无线上网公用服务器,云SIM卡池,云SIM卡解决方案,流量分发随身WIFI方案( 忻瑞科技)...
- 如何删除WORD空白页
- 北京信息科技大学计算机录取名单,北京信息科技大学2021年硕士研究生拟录取名单公示...
- 耐克李宁竞相加码电竞产业,谁会先成就下一个电竞帝国
- 基于STM8L15x-16x-05x系列单片机的官方标准库文件创建第一个EWSTM8工程项目
- mysql cc攻击_CC攻击数据详细分析