一、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服务器内存不足排查相关推荐

  1. Docker环境下Spring Boot应用内存飙升分析与解决

    目录 Spring Boot应用内存飙升 服务现状 JVM默认内存设置 优化 限制JVM内存 参数解释 JVM常见参数 java.security.egd 作用 优化后的Dockerfile文件 优化 ...

  2. 音乐播放器-Android+okhttp连接+Spring boot服务器+oracle数据库+腾讯云端

    1.整体架构 1.1软件系统架构: Android+okhttp连接+Spring boot服务器+oracle数据库+腾讯云端服务器地址:https://github.com/DNFDS/Twink ...

  3. 深入Spring Boot:利用Arthas排查NoSuchMethodError

    前言 有时spring boot应用会遇到java.lang.NoSuchMethodError的问题,下面以具体的demo来说明怎样利用arthas来排查. Demo: https://github ...

  4. cpuz不显示服务器内存,问题排查:系统不能识别内存但 CPU-Z 可以识别

    今天早上搬砖的时候发现在自己的工作站上安装的 Windows 10 64 bit 开机以后只能识别 96 GB 内存,但是机器上面装了 128 GB (16 GB x8) 内存 排查过程: 内存不能识 ...

  5. spring boot 服务器常用

    ps aux|grep tgcw  ll /opt/nginx/html    sudo cp -r /tmp/tgcw/dist/* /opt/nginx/html/design   sudo cp ...

  6. 从Spring Boot信息泄露到AWS控制台劫持(攻破aws亚马逊服务器)

    0x01 引言 全球云厂商有很多,本文主要针对Spring Boot信息泄露在aws上的利用. 0x02 正文 1) 用shodan分析spring boot服务器在asn上分布的情况 https:/ ...

  7. 掌握 Spring Boot 运行内存及内存参数设置:助力高效应用部署与优化

    pring Boot 是当今非常流行的 Java 应用框架之一,在企业级应用开发中被广泛使用.应用部署和优化是企业级应用开发的一个非常重要的方面.在这篇博客中,我们将学习如何掌握 Spring Boo ...

  8. 使用Spring Boot和MongoDB构建一个React式应用程序

    "我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. 如果您要 ...

  9. 使用Spring Boot和MongoDB构建一个反应式应用程序

    "我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. 如果您要 ...

最新文章

  1. 字节跳动AI Lab社招以及实习生内推
  2. SAP QM 通过控制图 (Control Chart) 的实现提升企业质量管理水平
  3. 超壮观!10只波士顿动力机器狗,拖动大卡车,步伐整齐划一如同仪仗队
  4. python处理数据的优势-Python与其他语言相比有哪些优势?
  5. 【拔刀吧少年】之shell函数
  6. 第十四期:5 个 JS 不良编码习惯,你占几个呢?
  7. Git操作失败并提示Another git process seems to be running in this......
  8. 数据在内存中的存储(二进制形式存储)
  9. 如何爬取了知乎用户信息,并做了简单的分析
  10. Python实现批量处理扫描特定目录
  11. APP设计~切图那些事儿
  12. 王道书 P150 T18(在中序线索二叉树里找指定节点在后序的前驱节点)+ 拓展(在中序线索二叉树里找指定节点在先序的后继节点)
  13. python三维图形等高线_python等高线
  14. 前端面试题及解答(尽量口语化,模拟面试现场时的回答)
  15. 彻悟人生555句金玉良言
  16. 数据库MSSQLSERVER_18456错误解决
  17. 旷视科技2023校园招聘提前批正式启动!
  18. H5填坑笔记--持续更新
  19. javafx-webview中加载的网页有弹窗不显示问题
  20. P3518 [POI2011]strongbox

热门文章

  1. 数码宝贝服务器连接中断,数码宝贝新世纪服务器满了 问题解决方法分享
  2. 稠密集和疏朗集_康托集为啥不是疏朗集?
  3. 同程联盟景点门票动态程序 beta1.0源码
  4. webRTC(十五):webrtc 文件实时传输
  5. sim卡无线上网公用服务器,云SIM卡池,云SIM卡解决方案,流量分发随身WIFI方案( 忻瑞科技)...
  6. 如何删除WORD空白页
  7. 北京信息科技大学计算机录取名单,北京信息科技大学2021年硕士研究生拟录取名单公示...
  8. 耐克李宁竞相加码电竞产业,谁会先成就下一个电竞帝国
  9. 基于STM8L15x-16x-05x系列单片机的官方标准库文件创建第一个EWSTM8工程项目
  10. mysql cc攻击_CC攻击数据详细分析