温馨提示×

怎么测Debian的Java性能

小樊
38
2026-09-23 05:39:15
栏目: 编程语言

在 Debian 上“测 Java 性能”通常分几种场景,我先按最常见需求给你一个清晰路线,再给具体命令和工具。


一、先确认 Java 环境(必做)

java -version
which java

如果是多个 JDK,建议用:

update-alternatives --config java

二、CPU / 内存 / 线程级监控(系统层)

1. 看 Java 进程

ps -ef | grep java
top -p <pid>

更直观:

htop

2. 查看 JVM 内存和 GC

jstat -gc <pid> 1000

常用参数:

  • -gc:GC 情况
  • -gcutil:使用率
  • -class:类加载

三、JDK 自带性能工具(强烈推荐)

1. jstack(线程)

jstack <pid> > thread.txt

看是否:

  • 死锁
  • 线程阻塞
  • 线程过多

2. jmap(内存)

jmap -heap <pid>
jmap -histo <pid> | head

导出堆:

jmap -dump:live,format=b,file=heap.hprof <pid>

3. jcmd(综合)

jcmd <pid> VM.native_memory
jcmd <pid> GC.run

四、可视化分析(最实用)

1. VisualVM

apt install visualvm

或下载: https://visualvm.github.io/

可看:

  • CPU
  • 内存
  • 线程
  • GC

2. Java Mission Control(JMC)

适合生产环境,低开销。


五、压测 Java 应用(应用层)

1. 写个简单 benchmark

long start = System.nanoTime();
// 业务逻辑
long end = System.nanoTime();
System.out.println((end - start) / 1_000_000 + " ms");

2. 用 JMH(专业)

mvn archetype:generate -Dfilter=jmh

适合:

  • 方法级性能
  • JVM 优化影响

3. 外部压测

  • ab
  • wrk
  • jmeter

六、GC 性能分析(非常关键)

java -Xlog:gc* -jar app.jar

或:

-XX:+PrintGCDetails -XX:+PrintGCDateStamps

七、常见性能问题定位顺序

  1. CPU 高不高(top)
  2. 是不是 GC 频繁(jstat)
  3. 是不是线程卡死(jstack)
  4. 是不是内存泄漏(jmap + VisualVM)

如果你愿意,可以告诉我:

  • 是 Web 服务 / 后台程序 / 算法
  • Debian 版本
  • OpenJDK 还是 Oracle JDK

我可以给你更针对性的测试方案。

0 踩