Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Beyond top: Command-Line Monitoring on the JVM ...
Search
Colin Jones
October 29, 2015
Programming
700
1
Share
Beyond top: Command-Line Monitoring on the JVM (JavaOne 2015)
A session from JavaOne 2015
Colin Jones
October 29, 2015
More Decks by Colin Jones
See All by Colin Jones
A Bug's Life: What if `select` is Broken After All?
trptcolin
0
180
Underestimated costs of microservice architectures
trptcolin
3
1.6k
FP vs. OOP: Beyond the Bikeshed
trptcolin
0
460
Diving into the Details with DTrace! (RubyConf 2016 edition)
trptcolin
2
540
Diving into the Details with DTrace
trptcolin
3
540
Adopting FP: the good, the familiar, and the unknown
trptcolin
0
280
Finding out what's *really* going on, with DTrace!
trptcolin
1
410
Beyond top: Command-Line Monitoring on the JVM (ClojureRemote)
trptcolin
0
170
ZooKeeper: Wait-free coordination for Internet-scale systems
trptcolin
2
220
Other Decks in Programming
See All in Programming
新規プロダクトを高速で生み出すハーネスエンジニアリング
seanchas116
3
190
【ディップ|26年新卒研修資料】TDD実装演習
dip_tech
PRO
0
190
ソースコード→AST→オペコード、の旅を覗いてみる
o0h
PRO
1
140
Symfony AI in Action - SymfonyLive Berlin 2026
chr_hertel
1
160
ローカルLLMでどこまでコードが書けるか / How much code can be written on a local LLM
kishida
2
370
KMP × Kotlin 2.3 - How Android Got Slower While iOS Builds Improved by 47%
rio432
0
200
20260514_its_the_context_window_stupid.pdf
heita
0
1k
書き換えて学ぶTemporal #fukts
pirosikick
2
380
検索設計から 推論設計への重心移動と Recall-First Retrieval
po3rin
5
1.7k
「なんか〇〇ライブラリで脆弱性あるみたいなんだけど。。。」から始める脆弱性対応 / First Steps in Vulnerability Response
mackey0225
2
130
PHPでローカル環境用のSSL/TLS証明書を発行することはできるのか? #phpconkagawa
akase244
0
370
なぜあなたのコードには「コシ」がないのか?〜AI時代に問う、最後まで美味しい設計と戦略〜 #phpconkagawa / phpconkagawa2026
shogogg
0
210
Featured
See All Featured
The Curious Case for Waylosing
cassininazir
1
350
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
210
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
New Earth Scene 8
popppiees
3
2.2k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
300
4 Signs Your Business is Dying
shpigford
187
22k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
560
Prompt Engineering for Job Search
mfonobong
0
310
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
570
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
440
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
110k
Transcript
Beyond top(1) Command-Line Monitoring on the JVM Colin Jones @trptcolin
8th Light
None
What to expect
command-line tooling
on the JVM
introspection & serviceability
--all-flags=false
war stories
real-life usage (well, re-enacted anyway)
A long time ago in a software shop far, far
away…
Things are going pretty well
What does this thing look like? app-architecture Postgres Web /
API Application Server Load Balancer Periodic Job Application Server 3rd-party Service A 3rd-party Service B Monitored email account End users: native mobile app Admin users: desktop browsers
But strange things are afoot
the server sometimes gets really slow
the team has to manually restart the application server
incident response time is ~5 minutes
Yes, strange things are afoot
Pain, frustration, anger
Just the facts
sometimes, things get slow
all requests seem to be affected
the JVM stays up
restart the JVM and everything is fine
What could it be?
Demo
More facts, please!
constant full GCs
what’s in the heap
what application code was running
The right tools for the job
vmstat system-level: CPU, memory, disk, context switching
top per-process: CPU & memory
jps what’s our PID?
jstack status of all threads (right now-ish!)
jcmd what can’t it do?! jcmd [PID] help (sorry, JVM
6 users: see jinfo/jmap/jstack)
jstat GC classloader compiler
Mystery solved!
Now “just” fix it
idea 1: eliminate the leak
idea 2: eliminate the cache altogether?
idea 3: delete the feature
idea 4: full-text search engine
So we’re good now… until the next incident
Lessons
“it’s slow” could mean lots of things
“high CPU” could mean lots of things
collecting data is crucial in a crisis
reproducing the issue helps me sleep at night
Other “right tools for the job”
Heap analyzers
Profilers
Constant monitoring & alerting
Dynamic tracing
Learning more
Books
operators are standing by! man jstat man jstack jcmd [PID]
help [COMMAND] etc.
Thank you! Colin Jones @trptcolin 8th Light