java性能优化命令集合

#一、概述
java虚拟机有一套自动管理内存,减少我们开发人员不少麻烦,但同时如果线上出现问题,比如死锁、FULL GC,我们应该如何去发现这些问题并解决问题呢,其实JDK,操作系统以及一些大厂提供了很多的工具,这篇主要讲常用的linux命令以及JDK自带命令。
image.png
##二、linux常用命令
  Linux平台式使用最为广泛的服务器平台之一,不少Java端程序都运行在类Linux平台下(入AIX、Solaris等)。不同的类linux操作系统之间的很多命令都非常相似,不少命令仅有一些细节上的差异。这篇文章主要记录用于linux平台下的性能手机和统计工具。

  • 2.1 TOP

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。

  • 2.2 sar

sar命令也是Linux系统中重要的性能监控工具之一,利用它可以周期性地对内存和CPU使用情况进行采样。

  • 命令格式:
    sar [ options ] [ [ ] ]
    interval和count分别表示采样周期和采样数量。options选项可以指定sar命令对那些性能数据进行采集(不同版本的sar命令,选项可能有所不同,可以通过sar-h命令插看).
命令样例:sar -r 10 3 #每隔10秒进行3次采样
-A: 所有报告的总和
-u: CPU利用率
-D:应该使用报告
-b: I/O的情况
-q: 查看队列长度
-r: 内存使用统计情况
-n: 网络信息统计
-o: 采样结果输出到文件
  • 2.3 vmstat

  vmstat也是一款功能比较齐全的性能检测工具,他可以统计CPU、内存使用情况、swap使用情况等信息。和sar功能类似,vmstat也可以指定采样周期和采样次数。

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 8  0   7424 20042520 3370116 40245956    0    0     0    26    0    0  3  2 95  0  0
 3  0   7424 20038228 3370116 40246956    0    0     0   420 20341 36452  5  3 92  0  0
r 表示运行队列(就是说多少个进程真的分配到CPU),我测试的服务器目前CPU比较空闲,没什么程序在跑,当这个值超过了CPU数目,就会出现CPU瓶颈了。这个也和top的负载有关系,一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。top的负载类似每秒的运行队列。如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。

b 表示阻塞的进程,这个不多说,进程阻塞,大家懂的。

swpd 虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。
free   空闲的物理内存的大小,我的机器内存总共8G,剩余3415M。
buff   Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存,我本机大概占用300多M
cache cache直接用来记忆我们打开的文件,给文件做缓冲,我本机大概占用300多M(这里是Linux/Unix的聪明之处,把空闲的物理内存的一部分拿来做文件和目录的缓存
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值