一、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. mysql用户ip登录失败怎么办_MySQL使用IP地址登录 ERROR 1045 (28000) Access denied for use...
  2. 用计算机求锐角A,B,计算机操作题
  3. AJAX基础:JavaScript中类的实现
  4. JavaScript数据结构——树(Tree)
  5. 微软十二月补丁星期二修复58个漏洞
  6. Windows 键盘快捷键概述
  7. unable to recognize ole stream是什么意思_洞彻状态管理,或者说为什么你永远做不到...
  8. mysql 分库分表 ~ ShardingSphere生态圈
  9. 开运算和闭运算的性质
  10. 优秀网站源码、编程源码大全
  11. 郑州园博园“私房照”曝光,8月试运营对市民免费开放!这可是咱郑州人家门口的“苏州园林”!...
  12. 人工智能的历史(History of artificial intelligence)
  13. html导出excel换行,ASP.NET 导出到Excel时保留换行的代码
  14. 骁龙8+gen1和天玑9000+区别 骁龙8+和天玑9000+评测选哪个好
  15. js获取上一个页面url
  16. 关于阿里云服务器可以怎么选择地域
  17. C++面试题总结,一篇就够了
  18. C语言编程>第十一周 ⑥ 某学生的记录由学号、5门课程成绩和平均分组成,学号和5门课程的成绩已在主函数中给出。请编写函数fun,它的功能是:求出该学生的平均分,并放在记录的ave成员中。
  19. 产品学习之【竞品分析】
  20. mmkv跨进程,Android开发经验的有效总结,系列篇

热门文章

  1. kubelet垃圾回收配置
  2. python的内存调优_python内存机制与垃圾回收、调优手段
  3. R语言检验时间序列的平稳性(tseries包adf.test):时间序列数据是zoo或xts对象,使用coredata函数提取原始数据,再将其传递给adf.test函数
  4. 【Python入门教程】第49篇 集合的子集
  5. 全球人口突破80亿!免费分享全球人口分布数据
  6. 虚拟机——csol检测非法进程
  7. 国家电网入局区块链,打造国家级能源互联网
  8. 微信小程序开发——实现修改文章富文本(hf_editor)输入框回显文章功能
  9. 微擎url模式解读_微擎常用开发文档
  10. Laya魅族手动关闭banner广告之后打不开