SlideShare a Scribd company logo
Java ドラッグレース
チューニング
Takayoshi Kimura
Senior Software Maintenance Engineer
Global Support Service, Red Hat
Java VM
起動速度遅い
そんな幻想を
!ぶち壊す
環境
● Dell Latitude E6320
● 法人向けラップトップ
● Intel(R) Core(TM) i7-2620M CPU @
2.70GHz
● 16GB memory
環境
● Fedora 19 64bit
● Linux 3.10.5-201.fc19.x86_64
● java-1.7.0-openjdk-1.7.0.25-
2.3.12.3.fc19.x86_64
WildFly
8.0.0.Alpha4
started in
2412ms
Tuned
WildFly
8.0.0.Alpha4
started in
1059ms
?なにをしたのか
● 2412ms から 1059ms
● 224% パフォーマンス向上
● 2 点
● ふつうに JVM オプションの変更
● ふつうそんなことやらねーよ、って
いう荒技
Java VM オプション
● -client
● 32bit のみ
● -server
● -XX:+TieredCompilation
● -XX:TieredStopAtLevel=1
Java VM オプション
● サーバアプリケーションでは最
適化が抑制されるため長期的に
はパフォーマンス不利
● -client
● -XX:TieredStopAtLevel=1
Java VM オプション
● TieredCompilation
● Java 8 からデフォルトで有効
● codecache の使用量が多くなる
Java VM オプション
● -Xverify:none
● クラス検証無効化
● テスト環境や本番環境では検証は有
効にしておこう
デモ
● WildFly 8.0.0.Alpha4 の JVM オ
プションチューニング
● 前 : 2400ms
● 後 : 1200ms
!まだいける
荒技
#!/bin/sh
# Example: $ find . -type f -name *.jar | xargs -n1 fatjar
set -e
JARFILE=$(realpath $1)
TMPDIR=/tmp/fatjar.tmp
echo "Fat $JARFILE"
rm -rf $TMPDIR
mkdir -p $TMPDIR
(cd $TMPDIR; jar xf $JARFILE)
if [ -f $TMPDIR/META-INF/MANIFEST.MF ]; then
jar c0fm $JARFILE $TMPDIR/META-INF/MANIFEST.MF -C $TMPDIR .
else
jar c0f $JARFILE -C $TMPDIR .
fi
rm -rf $TMPDIR
デモ
● WildFly 8.0.0.Alpha4 に荒技適
用
● 前 : 1200ms
● 後 : 1050ms
まとめ
ソフトウェア チューニング前
(ms)
チューニング後
(ms)
WildFly 8.0.0.Alpha4 2400 1100
GlassFish 4.0.0 4000 1300
JBoss EAP 6.1.0 2200 1100
JBoss EAP 5.2.0 13800 7000
JRuby 1.7.4 1000 620
Clojure 1.5.1 800 390
Scala 2.10.2 460 410
Groovy 2.1.6 550 270
まとめ
● JVM オプション
● -Xverify:none
● -XX:+TieredCompilation
● -XX:TieredStopAtLevel=1
● 非圧縮 jar
Java Drag Race Tuning

More Related Content

PDF
仮想スイッチをフェイルオーバーさせてみる予定
PDF
Avanceの検証レポート
PDF
10GbE時代のネットワークI/O高速化
PPT
osoljp201105_ZFSjiman_nslope
PDF
INF-002_Azure IaaS 最新動向
PDF
BitVisor Summit 8「2. BitVisor 2019年の主な変更点」
PDF
Router board勉強会vol2(配布用)
PPTX
Cloud next with Server Roadmap
仮想スイッチをフェイルオーバーさせてみる予定
Avanceの検証レポート
10GbE時代のネットワークI/O高速化
osoljp201105_ZFSjiman_nslope
INF-002_Azure IaaS 最新動向
BitVisor Summit 8「2. BitVisor 2019年の主な変更点」
Router board勉強会vol2(配布用)
Cloud next with Server Roadmap

What's hot (20)

PPTX
Master of DR!バックアップ機能強化で進化を遂げた最新Zerto7をご紹介!
PDF
BitVisor Summit 9「2. BitVisor 2020年の主な変更点」
PDF
OpenStack with SR-IOV
KEY
物理マシンをケチる技術
PDF
ゼロからはじめるKVM超入門
PPTX
無償ライセンス ESXi と 3rd パーティ製バックアップ製品
PDF
Platespin Forge による災害対策システムの構築
PPTX
201711 vxrailチャンピオンクラブ_ワークショップ~入門編~テキスト
PDF
Sheepdogを使ってみて分かったこと(第六回ストレージ研究会発表資料)
PDF
Dpdk pmd
PDF
20180629_VxRailCC_サイジング編_EMC田中様
PDF
Btrfsの基礎 part1 機能編
PDF
Linux KVM環境におけるGPGPU活用最新動向
PDF
Routerboard勉強会 tips
PDF
Router board勉強会vol2(ベンチマーク班まとめ)
PDF
20180706_VxRailCC_ワークショップ編_NW
PDF
仮想化環境での利用者公平性
PDF
Crooz meet fusion io3 open
PPTX
20171012_VxRailチャンピオンクラブKickOffセミナー_BootUp!ハイパーコンバージド!
Master of DR!バックアップ機能強化で進化を遂げた最新Zerto7をご紹介!
BitVisor Summit 9「2. BitVisor 2020年の主な変更点」
OpenStack with SR-IOV
物理マシンをケチる技術
ゼロからはじめるKVM超入門
無償ライセンス ESXi と 3rd パーティ製バックアップ製品
Platespin Forge による災害対策システムの構築
201711 vxrailチャンピオンクラブ_ワークショップ~入門編~テキスト
Sheepdogを使ってみて分かったこと(第六回ストレージ研究会発表資料)
Dpdk pmd
20180629_VxRailCC_サイジング編_EMC田中様
Btrfsの基礎 part1 機能編
Linux KVM環境におけるGPGPU活用最新動向
Routerboard勉強会 tips
Router board勉強会vol2(ベンチマーク班まとめ)
20180706_VxRailCC_ワークショップ編_NW
仮想化環境での利用者公平性
Crooz meet fusion io3 open
20171012_VxRailチャンピオンクラブKickOffセミナー_BootUp!ハイパーコンバージド!
Ad

Viewers also liked (7)

PDF
Javaパフォーマンスチューニング基礎
PDF
Iteratorパターン
PPTX
GCについて
PDF
GCが止まらない
PDF
会社でClojure使ってみて分かったこと
PDF
簡単!AWRをEXCELピボットグラフで分析しよう♪
PDF
ワタシはSingletonがキライだ
Javaパフォーマンスチューニング基礎
Iteratorパターン
GCについて
GCが止まらない
会社でClojure使ってみて分かったこと
簡単!AWRをEXCELピボットグラフで分析しよう♪
ワタシはSingletonがキライだ
Ad

Similar to Java Drag Race Tuning (20)

PDF
KVM環境におけるネットワーク速度ベンチマーク
PDF
CUDAプログラミング入門
PDF
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
PDF
Networld vx railchampionclub_essential point of sizing
PDF
仮想化技術の今後の動向
PPTX
IDCFクラウドセミナー RDB活用
PDF
PF部第19回資料 poor man's JTAG
PDF
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
KEY
GPGPU deいろんな問題解いてみた
PDF
20201127 .NET 5
PDF
コンテナ型仮想化とはなんだったのか
PDF
Cld002 windows server_2016_で作るシンプ
PDF
第1回【CCNA】ネットワーク基礎講座‗なにわTECH道171208
PDF
第15回「インテル® Xeon® プロセッサー E5 ファミリー 新登場!」(2012/03/22 on しすなま!) ②IBM資料
PDF
Interact 2019 - CI01 Windows Server 2019
PPTX
MySQL Clusterを運用して10ヶ月間
PDF
IEEE ITSS Nagoya Chapter NVIDIA
PPTX
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
ODP
Android デバッグ小ネタ
PPTX
Osc2012 tokyo fall_home_san_nayamaguti
KVM環境におけるネットワーク速度ベンチマーク
CUDAプログラミング入門
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
Networld vx railchampionclub_essential point of sizing
仮想化技術の今後の動向
IDCFクラウドセミナー RDB活用
PF部第19回資料 poor man's JTAG
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
GPGPU deいろんな問題解いてみた
20201127 .NET 5
コンテナ型仮想化とはなんだったのか
Cld002 windows server_2016_で作るシンプ
第1回【CCNA】ネットワーク基礎講座‗なにわTECH道171208
第15回「インテル® Xeon® プロセッサー E5 ファミリー 新登場!」(2012/03/22 on しすなま!) ②IBM資料
Interact 2019 - CI01 Windows Server 2019
MySQL Clusterを運用して10ヶ月間
IEEE ITSS Nagoya Chapter NVIDIA
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
Android デバッグ小ネタ
Osc2012 tokyo fall_home_san_nayamaguti

More from nekop (11)

PDF
JBoss AS 7 / EAP 6 modules and class loading
PDF
Module classloading
PDF
JBoss AS7 rev3
PDF
Infinispan - Open Source Data Grid rev2
PDF
JBoss AS7 rev2
PDF
JBoss AS7
PDF
CDI, Seam 3 and Forge
PDF
Infinispan - Open Source Data Grid
PDF
Proxy
PDF
ClassLoader Leak Patterns
PDF
mod_cluster
JBoss AS 7 / EAP 6 modules and class loading
Module classloading
JBoss AS7 rev3
Infinispan - Open Source Data Grid rev2
JBoss AS7 rev2
JBoss AS7
CDI, Seam 3 and Forge
Infinispan - Open Source Data Grid
Proxy
ClassLoader Leak Patterns
mod_cluster

Java Drag Race Tuning