SlideShare a Scribd company logo
1 of 21
Download to read offline
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

What's hot

物理マシンをケチる技術
物理マシンをケチる技術物理マシンをケチる技術
物理マシンをケチる技術
Satoshi KOBAYASHI
 
無償ライセンス ESXi と 3rd パーティ製バックアップ製品
無償ライセンス ESXi と 3rd パーティ製バックアップ製品無償ライセンス ESXi と 3rd パーティ製バックアップ製品
無償ライセンス ESXi と 3rd パーティ製バックアップ製品
yhanako
 
Routerboard勉強会 tips
Routerboard勉強会 tipsRouterboard勉強会 tips
Routerboard勉強会 tips
kometch H
 
Router board勉強会vol2(ベンチマーク班まとめ)
Router board勉強会vol2(ベンチマーク班まとめ)Router board勉強会vol2(ベンチマーク班まとめ)
Router board勉強会vol2(ベンチマーク班まとめ)
milk hanakara
 

What's hot (20)

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

Viewers also liked (7)

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

Similar to Java Drag Race Tuning

High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
Takuma Usui
 
GPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみたGPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみた
Ryo Sakamoto
 
Osc2012 tokyo fall_home_san_nayamaguti
Osc2012 tokyo fall_home_san_nayamagutiOsc2012 tokyo fall_home_san_nayamaguti
Osc2012 tokyo fall_home_san_nayamaguti
Noriyuki Yamaguchi
 

Similar to Java Drag Race Tuning (20)

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

More from nekop (11)

JBoss AS 7 / EAP 6 modules and class loading
JBoss AS 7 / EAP 6 modules and class loadingJBoss AS 7 / EAP 6 modules and class loading
JBoss AS 7 / EAP 6 modules and class loading
 
Module classloading
Module classloadingModule classloading
Module classloading
 
JBoss AS7 rev3
JBoss AS7 rev3JBoss AS7 rev3
JBoss AS7 rev3
 
Infinispan - Open Source Data Grid rev2
Infinispan - Open Source Data Grid rev2Infinispan - Open Source Data Grid rev2
Infinispan - Open Source Data Grid rev2
 
JBoss AS7 rev2
JBoss AS7 rev2JBoss AS7 rev2
JBoss AS7 rev2
 
JBoss AS7
JBoss AS7JBoss AS7
JBoss AS7
 
CDI, Seam 3 and Forge
CDI, Seam 3 and ForgeCDI, Seam 3 and Forge
CDI, Seam 3 and Forge
 
Infinispan - Open Source Data Grid
Infinispan - Open Source Data GridInfinispan - Open Source Data Grid
Infinispan - Open Source Data Grid
 
Proxy
ProxyProxy
Proxy
 
ClassLoader Leak Patterns
ClassLoader Leak PatternsClassLoader Leak Patterns
ClassLoader Leak Patterns
 
mod_cluster
mod_clustermod_cluster
mod_cluster
 

Recently uploaded

Recently uploaded (11)

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 

Java Drag Race Tuning