SlideShare a Scribd company logo
© 2014 IBM Corporation
JJUG  CCC  2014  Spring
IBM  SDK  for  Java  8の全貌
⽇日本アイ・ビー・エム(株)盛林林 哲
© 2014 IBM Corporation
⾃自⼰己紹介 
2
2000  年年より  WebSphere  製品の技術者として活動。
サポートエンジニアを経て、現在はサービス部⾨門で  WAS  専⾨門家としてトラブルシュー
トを数多く実施。
ヘルスチェックやパフォーマンスチェックなど安定稼働に取り組む。趣味スノーボード・写
真など。  
© 2014 IBM Corporation
IBM  Javaとは
© 2014 IBM Corporation
IBM  SDK  for  Javaとは
4
Java  SDK  =  JRE  +  DevTools
Java実⾏行行環境 開発に使⽤用する各ツール群
Java  API
JVM
GC/MemoryManagement
JIT/Interpreter
RAS
(SPEC準拠)
© 2014 IBM Corporation
IBM  Java  Runtime:  J9VMとは
§ IBM  Java  5から標準採⽤用されている新しい実装のVM
(IBM  Java  1.3.1  および  1.4.2  でも開発環境における⾼高速デバッグ⽤用に⼀一部含まれていた)
§ マイクロエディション  (J2ME)から発展
§ ⾼高パフォーマンスの実⾏行行環境
§ 15種類以上のプラットフォームをサポート
§ ダンプやトレースによる強⼒力力な診断機能
§ 各種分析ツール
© 2014 IBM Corporation
IBM  Java  Runtime:  ガーベッジ・コレクション(GC)
§ J9VMの実装
§ CPU能力を活用したマルチスレッド処理
§ 複数のGC方式を提供
GCの種類	
  説明
optthruput	
  スーループットに最適化されたIBM  Java登場時から利利⽤用されているGC⽅方式。Mark,Sweep,Compactionの3つの処理理で成り⽴立立
つ。保守的GCと呼ばれる。
optavgpause 停⽌止時間に最適化されたGC。保守的GC利利⽤用時に、ヒープ中のオブジェクト数が増えるとMark処理理が⻑⾧長時間化し、アプリケーション
停⽌止時間が⻑⾧長い問題を防ぐ。Mark処理理をGC実⾏行行時以外にも平⾏行行して⾏行行う。
subpool ヒープレイアウトはoptthruputと同じ。⼤大規模環境で問題となるオブジェクト割り当てを⾼高速化するため、フリーリストをサイズ別に構
造化管理理。(AIX,ppcLinux,i5,zLinux,zOSで使⽤用可能)現在はoptthruputに統合された。
gencon 世代別GC。オブジェクトの存在時間に着⽬目してヒープ領領域をNew/Oldに分割し、New領領域にスカベンジGC(オブジェクトのコピー
による処理理)、Old領領域にoptturuput⽅方式を⽤用いる。IBM  Java5から利利⽤用可能。WASV8から標準構成。
metronome IBM  Java7から評価⽤用に提供。(Winを除く)IBM  WebSphere  RealTime  製品により正式サポート利利⽤用可能。ミリ秒単位に
分割されたGCで、制御系や処理理の応答速度度重視のアプリケーション(例例:アルゴリズムトレーディング等)に有⽤用。http://
www.ibm.com/developerworks/jp/java/library/j-‐‑‒rtj4/
balanced	
  バランスGC。Java7より利利⽤用可能。世代別GCの強みを活⽤用し、複数の処理理を効果的に組み合わせたGC。ヒープ領領域を多数に分
割し、GC対象とGCの処理理を動的に選択して処理理することで、⼤大規模メモリー、⼤大規模CPU環境において問題が顕著となるグローバ
ルGCの発⽣生を抑える。
© 2014 IBM Corporation
IBM  Java  Runtime:バランスGCとは
§ 世代別GCの課題 ⇒グローバルGCの発⽣生
§ 解決策 ⇒ バランスGC
 OLDNew
通常のスカベンジGCの範囲
グローバルGCの範囲
Javaヒープ構造
⼤大規模JVMでは致命的ともいえる⻑⾧長時間GCの発⽣生につながる恐れ
Javaヒープ領領域を1024〜~2047個に分割して個別管理理(各領領域サイズは512KB,1MB,2MB,4MB,8MB...で⾃自動選択)
Javaヒープ構造
割り当て
割り当て
割り当て
Copying ←パーシャルGCと呼ばれる
•  通常はパーシャルGCが若若いオブジェクトが多い領領域を重点に⾃自動的に実⾏行行される
•  パーシャルGCの効率率率が下がると、GlobalMarkを実⾏行行、各領領域の状況を判定して、パーシャルGCの効率率率を上げる
•  メモリー不不⾜足だとグローバルGCが発⽣生する場合があるが、世代別GCより発⽣生を抑えられる
© 2014 IBM Corporation
IBM  Java  Runtime:バランスGCとは
§  バランスGCポリシーを使⽤用するための条件
–  64bitプラットフォーム上の64bit  JVMを使⽤用している
–  4G以上のJavaヒープ領領域を割り当てている
§  バランスGCポリシーが効果を発揮するために有利利な条件
–  実⾏行行しているH/Wが

NUMA  (Non-‐‑‒Uniform  Memory  Architecture)  特性を持っている
–  アプリケーションが,多数のスレッドが並⾏行行稼働するようになっている
–  アプリケーションが,動的なクラスのロード(リフレクション)を多⽤用している
§  バランスGCポリシーを利利⽤用するべきでない条件
–  Javaヒープ・サイズの使⽤用率率率が恒常的に⾼高い/空き領領域がほとんどない
–  サイズの⼤大きい配列列(最⼤大ヒープ・サイズの0.1%より⼤大きいサイズ)を

多⽤用している
リーフポインターを使⽤用して複数の領領域に分割格納する
dWおよびWASV8アナウンスメントワークショップ(JVM設計)より
© 2014 IBM Corporation
IBM  Java  Runtime:  Just  In  Time  Compiler(JIT)
§ J9VMの実装 (通称Testarossa)
§ 独立したコンパイルスレッド 	
–  プロファイルスレッドが  “hotness”の判定実施
– メソッドはコンパイルのためにQueueされる
– 5  つの最適化レベル
– メソッド再コンパイルが可能	
強
弱
1.  scorching  
2.  veryHot  
3.  hot  
4.  warm  
5.  cold  
6.  noOpt
コンパイル
キュー
コンパイル
スレッド
プロファイル
スレッド
Impact2014より
© 2014 IBM Corporation
IBMのJava  SE  テクノロジーへのアプローチ
10
Java
テクノロジ
リファレンス

Oracle,  open

source,  等
IBM
Java
IBM  Java
Technology
Centre
品質技術
パフォーマンス
セキュリティー
信頼性
保守性
製品要望
IBM  Software  Group
IBMサーバー
ISV
IBMユーザー
ü  ワールドクラスのサービスおよびサポート
ü  最も多くのプラットフォームで利利⽤用可能
ü  IBM主要ミドルウェアやお客様シナリオに最適化
ü  ハードウェア、ソフトウェア双⽅方の能⼒力力を最⼤大化
XML Crypto CORBA
J9 Virtual machine
Impact2014より
© 2014 IBM Corporation
IBMはアプリケーションの⾼高い要求に応えるために

Javaテクノロジーに取り組んでいます
11
●  パフォーマンス
–  パフォーマンスはJavaユーザーにとって重要です
–  IBMはパフォーマンス技術に関する多くの経験があり、⾼高パフォーマンスで拡張性のあるソリューションの開発に深い関⼼心を持って取り組
んでいます
–  この経験を⽣生かし、サポートするプラットフォーム全体にわたり最良良のパフォーマンスを得るために、ハードウェア、オペレーティング・システム
およびミドルウェアのデザイナーと密接に連携しています
●  セキュリティー
–  IBMはXMLセキュリティー標準で⼤大きな貢献を⾏行行っています
–  FIPS準拠のJCE、JSSEプロバイダーを提供し、そして多くのハードウェア暗号装置をサポートしています
●  信頼性
–  Javaはミッション・クリティカルなアプリケーションで使⽤用されています
–  ⾼高信頼性のために、IBMはJava  Runtime⼼心臓部のエンジンに細⼼心の注意を払いながら、JVMの再デザインを⾏行行っています
●  保守性
–  障害発⽣生時には、迅速に問題を⾒見見つけて切切離離すことは重要です
–  IBMは確実に素早く問題解決するために、トレース、ログ、初期障害データ・キャプチャー機能  (FFDC)、デバッグおよびパフォーマンス
⽤用のインターフェース、ツールを重視しています
●  拡張性  
–  数多くの設定項⽬目
–  Plug可能なインターフェース
–  クラス・ライブラリの独⽴立立性
Impact2014より
© 2014 IBM Corporation
2006	
  2007	
  2008	
  2009	
  2010	
  2011	
  2012	
  2013	
  2014	
 
Java  SE  リリース
12
•  パフォーマンス改善
•  UIの改良
•  Client Webサービス	
 のサポー
ト
Java 6.0
改良点
• 起動時間の短縮
• スループット向上
• 新たにバランスGCの追加
• 保守ツールの新機能
• ソフト・リアルタイム評
価版
• POWER7およびz196上で
のパフォーマンス向上
IBM Java 7.0
•  Solaris x86-64
•  Solaris SPARC
•  Solaris x86
•  Windows IA32
•  Windows AMD64
•  Windows EAMT64
•  Linux IA32
•  Linux AMD64
•  Linux EAMT64
•  zOS 64
•  AIX PPC 32
•  AIX PPC 64
•  iSeries (via PASE)
•  Linux PPC 32
•  Linux PPC 64
•  zLinux 31
•  zLinux 64
•  HP-UX PA-RISC 32
•  HP-UX PA-RISC 64
•  HP-UX IA64
•  zOS 31
IBM サポート プラットフォーム
(Java 6.0/7.0)
•  言語の変更
•  New IO API(NIO2)
•  Java persistance API
•  SWINGの使いやすさの向上
Java 7.0
•  改良点
• プラットフォームカバレッ
ジ
• パフォーマンス
• 保守ツール
•  新機能
• IBM WebSphere Real-Time
V1.0
IBM Java 6.0
Solaris x64
Solaris SPARC
Solaris x86
Windows IA32
Windows AMD64
•  Windows EAMT64
•  Linux IA32
•  Linux IA64
•  Linux AMD64
•  Linux EAMT64
Oracle サポート プラットフォーム
(Java 6.0)
8.0
Java 7R1
21 プラットフォーム
対応
IBM Java 7.1
新プラットフォーム対応
POWER 8
zEC12
• 新機能
•  Data Access Accelerator
•  RDMA
•  評価版
•  マルチテナンシー
•  Packed Objects
•  改良点
•  サービス
•  パフォーマンス
•     ツール
•  ラムダ式
•  日付時刻API
•  タイプアノテーション
Java 8.0
Java 6.0
21 プラットフォーム対応
Java 7.0
21プラットフォーム対応
7.0
6.0
Impact2014より	
 
※HP,SolarisはIBMのクラスライブラリを追加したもの
© 2014 IBM Corporation
IBM  Java  8の新機能 
© 2014 IBM Corporation
Java8で採⽤用されたフィーチャー
14
●  Language
–  Access  to  Parameter  Names  at  Runtime
–  Add  Javadoc  to  javax.tools  (JSR  199  MR)
–  Annotations  on  Java  Types  (JSR  308)
–  Generalized  Target-‐‑‒Type  Inference  (JSR  335)
–  Lambda  Expressions  &  Virtual  Extension  Methods  (JSR  269  MR,  335)
–  Repeating  Annotations  (JSR  269  MR,  337)
●  Core  Libraries
–  Base64  Encoding  &  Decoding
–  Bulk  Data  Operations  for  Collections  (JSR  335)
–  Concurrency  Updates
–  Date  &  Time  API  (JSR  310)
–  Enhance  Core  Libraries  with  Lambda  (JSR  335)
–  JDBC  4.2  (JSR  114  MR,  221  MR)
–  Parallel  Array  Sorting
●  I18n
–  BCP  47  Locale  Matching
–  Unicode  6.2
●  Security
–  Configurable  Secure  Random-‐‑‒Number  Generation
–  Enhance  the  Certificate  Revocation-‐‑‒Checking  API
–  Limited  doPrivileged
–  NSA  Suite  B  Cryptographic  Algorithms
–  TLS  Server  Name  Indication  (SNI)  Extension
●  Platform
–  Compact  Profiles
–  Prepare  for  Modularization  (JSR  160  MR,  173  MR,  206  MR,  337)
http://openjdk.java.net/
Impact2014より
© 2014 IBM Corporation
IBM  Java8に追加されるフィーチャー
15
§ Java  SE8  (JSR  337)互換
§ 最新のIBMハードウェアへの対応
– (例例:  IBM  zEnterprize  EC12、POWER8)
§ アプリケーション変更更をせずスループットを向上させるワークロード最適化ラ
ンタイムの改善
§ クラウド、マルチテナンシー環境のサポート強化
§ Javaコードからnativeデータ・レコードやタイプへのアクセスの効率率率改善
(予定)	
 
Impact2014より
© 2014 IBM Corporation
IBM  Java  8を使うには.. 
16
●  IBM  Java8  GA版は2014年年11⽉月に提供開始予定です。
●  現在  IBM  Java8  Beta3が利利⽤用可能です。
●  http://www.ibm.com/developerworks/java/jdk/beta/
●  IBM  Java8に搭載される先進機能は、2013年年12⽉月6⽇日に正式リリ
ースされたIBM  Java7Release1でも利利⽤用できます。
  (2014年年5⽉月現在の情報です)
© 2014 IBM Corporation
IBM  Java  7  Release1の新機能 
© 2014 IBM Corporation
IBM  Java7  Release  1の機能 
18
§ Java  SE7  (JSR  336)互換
§ IBM  Java7と平⾏行行して提供
§ 最新機能の提供
– z/OS  V2.1,zEC12,  zBC12の機能に対応
– POWER8の機能に対応
– アプリケーション変更更無しでスループット向上
– Javaコードからnativeデータ・レコードやタイプへのアクセスのサポート
強化(評価版)
– より多くの調査を迅速に⾏行行うための診断機能とモニタリング機能の改
善
– アプリケーション密度度の向上実現する機能(評価版)
Impact2014より
© 2014 IBM Corporation
IBM  Java  SDK:  モニタリングおよび管理理ツール
19
アプリケーション・モニタリングおよび問題の診断ツールは以下の特徴があります。
●  無償で統⼀一化されたツール群により、Javaアプリケーションの特性を把握可能
●  軽量量でパフォーマンスへの影響は最⼩小のままアプリケーションのモニタリングおよび診断が可能
●  可視化だけではなく、監視・診断結果やユーザーに推奨する設定内容を提⽰示
各ツールの説明
http://www.ibm.com/developerworks/java/jdk/tools/index.html
p  Interactive  Diagnostic  Data  Explorer
p  Garbage  Collection  and  Memory  Visualizer
p  Memory  Analyser
p  Health  Center
IBM  Monitoring  and  Diagnostic  Tools  for  Java
Impact2014より	
 
eclipse market placeからも提供	
 
eclipse market placeからも提供	
 
eclipse market placeからも提供	
 
※IBMのサイトから提供	
 
 ※参考情報 http://bit.ly/1j6Dr2N
© 2014 IBM Corporation
例例:  HealthCenter
20
HealthCenter:  実サービス環境で利利⽤用可能な低負荷なプロファイリングツール
  
IBM  JVM HealthCenter
クライアント(RCP)HealthCenter
エージェント
Windows/Linux
TCP/IP
ログ
ログ
項⽬目 設定内容
Baseline Health  Centerを完全に無効化した場合
Dormant Health  Centerエージェントはロードされているが活動していない場合
Network  Client Health  Centerエージェントを活動させ、ネットワーククライアントを接続している場合
Headless  Client Health  Centerエージェントをロードし、ローカルのログに記録する場合
Headless  Client  with  ZIP Health  Centerエージェントをロードし、ローカルのログににZIPで記録する場合
エージェントをロード・活動化してモニターした
ほうがスループットが⾼高い!
•  CPU
•  I/O
•  GC
•  クラス
•  スレッド
•  ネイティブ・メモリー詳細
•  メソッド・トレース
•  アプリケーションロック
エージェントはIBMJava標準同梱
java -jar healthcenter.jar
をIBM  JVM同⼀一OS上で実⾏行行すると、稼働中のJVMに
HealthCenterエージェントを動的にロードして利利⽤用可能
出典元:
http://www.slideshare.net/cnbailey/javaone2013-‐‑‒build-‐‑‒your-‐‑‒own-‐‑‒runtime-‐‑‒monitoring-‐‑‒for-‐‑‒the-‐‑‒ibm-‐‑‒jdk-‐‑‒with-‐‑‒the-‐‑‒health-‐‑‒center-‐‑‒api
zipまたはflat
実稼働環境におけるアプリケーションの課題把握に有⽤用
Eclipse  Market  Placeからプラグイン提供中
15種類以上のプラットフォーム
© 2014 IBM Corporation
強化されたモニタリング、診断機能
21
■  機能向上のポイント
p  javacoreファイルへの追加情報
p  com.ibm.jvm.Dump  APIの強化
p  JIT  診断機能の改善
p  SDK  メソッド・トレースのパフォーマンス改善
p  トレース・ポイントのサブスクライブのJVMTI拡張
p  SDKのトレース・ポイントの追加
■  ユーザーのメリット
p  APIの改良良によりJavaアプリケーションによるダンプの取得と診断がより便便利利に 
p  javacoreの環境およびスレッド・セクションに新たに追加された情報は初期障害診断に有⽤用
p  新しいJITダンプ機能により、迅速な調査およびJITの初期障害診断を実現
p  トレース設定時のアプリケーション・スループットの向上で、Javaアプリケーション・フローの調査
にも強⼒力力なSDK環境を提供
p  他のソフトウェアコンポーネントとSDKトレース機能の統合
p  トレース・ポイントの対象拡⼤大によるSDKの保守性の改善
IBM	
  Java	
  Version	
  7	
  Release	
  1	
  
Impact2014より
© 2014 IBM Corporation
例例:javacoreファイルへの追加情報
22
3XMTHREADINFO            "WebContainer  :  0"  J9VMThread:0x0000000016295800,  j9thread_̲t:0x00002AAABADE8040,  java/lang/Thread:
0x0000000001426508,  state:P,  prio=5
3XMJAVALTHREAD                        (java/lang/Thread  getId:0x3E4,  isDaemon:true)
3XMTHREADINFO1                        (native  thread  ID:0x93F,  native  priority:0x5,  native  policy:UNKNOWN)
3XMTHREADINFO2                        (native  stack  address  range  from:0x0000000043B34000,  to:0x0000000043B75000,  size:0x41000)
3XMCPUTIME                              CPU  usage  total:  6.866931193  secs
3XMTHREADBLOCK          Parked  on:  java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject@0x0000000001919F88  Owned  by:  
<unknown>
3XMHEAPALLOC                          Heap  bytes  allocated  since  last  GC  cycle=2048  (0x800)
3XMTHREADINFO3                      Java  callstack:
4XESTACKTRACE                                at  sun/misc/Unsafe.park(Native  Method)
4XESTACKTRACE                                at  java/util/concurrent/locks/LockSupport.parkNanos(LockSupport.java:222(Compiled  Code))
4XESTACKTRACE                                at  java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:
2127(Compiled  Code))
4XESTACKTRACE                                at  com/ibm/ws/util/BoundedBuffer$GetQueueLock.await(BoundedBuffer.java:286(Compiled  Code))
4XESTACKTRACE                                at  com/ibm/ws/util/BoundedBuffer.waitGet_̲(BoundedBuffer.java:425(Compiled  Code))
4XESTACKTRACE                                at  com/ibm/ws/util/BoundedBuffer.take(BoundedBuffer.java:823(Compiled  Code))
4XESTACKTRACE                                at  com/ibm/ws/util/ThreadPool.getTask(ThreadPool.java:1036(Compiled  Code))
4XESTACKTRACE                                at  com/ibm/ws/util/ThreadPool$Worker.run(ThreadPool.java:1888)
3XMTHREADINFO3                      Native  callstack:
4XENATIVESTACK                              (0x00002AAAAB0A3122  [libj9prt26.so+0x13122])
4XENATIVESTACK                              (0x00002AAAAB0B079F  [libj9prt26.so+0x2079f])
4XENATIVESTACK                              (0x00002AAAAB0A2E6B  [libj9prt26.so+0x12e6b])
4XENATIVESTACK                              (0x00002AAAAB0A2F67  [libj9prt26.so+0x12f67])
4XENATIVESTACK                              (0x00002AAAAB0B079F  [libj9prt26.so+0x2079f])
4XENATIVESTACK                              (0x00002AAAAB0A2A8B  [libj9prt26.so+0x12a8b])
4XENATIVESTACK                              (0x00002AAAAB09C8E2  [libj9prt26.so+0xc8e2])
4XENATIVESTACK                              (0x000000352020EBE0  [libpthread.so.0+0xebe0])
4XENATIVESTACK                              pthread_̲cond_̲timedwait+0x120  (0x000000352020B1C0  [libpthread.so.0+0xb1c0])
4XENATIVESTACK                              j9thread_̲park+0xfe  (0x00002AAAAAE7EACE  [libj9thr26.so+0x5ace])
4XENATIVESTACK                              (0x00002AAAB030A12D  [libjclscar_̲26.so+0x5712d])
4XENATIVESTACK                              sun_̲misc_̲Unsafe_̲park+0x64  (0x00002AAAB02FD160  [libjclscar_̲26.so+0x4a160])
Javaスレッド毎の合計
CPU使⽤用量量が判
る!!
Javaスレッド毎に前回の
GC後に割り当てたヒープ
量量が判る!!
0SECTION ENVINFO subcomponent dump routine
NULL =================================
....
1CISYSINFO System Information
NULL --------------------------------------------------------------------
2CISYSINFO Hypervisor name = VMWare
•  スレッド情報セクション抜粋
•  システム情報セクション抜粋
JVMが稼働するOSが実
⾏行行されるハイパーバイザー
情報が判る
© 2014 IBM Corporation
例例:ダンプ機能周りの改善
23
項目	
  設定内容
Javacore	
  JVMの内部情報をテキストファイルに書き出す。
Heapdump	
  JVMのJavaヒープの情報をファイルに書き出す。パック・オブジェクト書き出しに対応。
Snapdump	
  JVMのトレースバッファの情報をファイルに書き出す。(フライトレコーダ)
Systemdump	
  JVMのプロセス全体のイメージを書き出す。(OSのプロセスダンプ)
jitdump	
  JVMのJITコンパイラの詳細情報をファイルに書き出す。-‐‑‒Xdump:jitで制御。JIT問題判別⽤用。 New
New
•  com.ibm.jvm.Dump  APIの強化
•  ダンプの種類と内容 (JIT診断機能の改善)
以下の新しいメソッドをアプリケーションが利利⽤用可能です。
ダンプのファイル名を取得できます。
String  javaDumpToFile()
String  heapDumpToFile()
String  systemDumpToFile()
String  snapDumpToFile()
ダンプのファイル名を指定ができます。 ファイル名には%dateや%pidなどのトークンが利利⽤用可能です。
String  javaDumpToFile(String  fileName)
String  heapDumpToFile(String  fileName)
String  systemDumpToFile(String  fileName)
String  snapDumpToFile(String  fileName)
ダンプのトリガーにはAPI呼び出し以外にも17種類以上の詳細なイベントに条件設定可能。
© 2014 IBM Corporation
zEC12  ハードウェア新機能への対応 
24
z/OS上のJavaへの積極的な投資を継続
Javaに合わせて協調設計された、⼀一連の重要なハードウェ
ア新機能
ハードウェア・トランザクション・メモリー  (HTM)  
マルチスレッド・アプリケーションにおける並⾏行行性の向上
例例:  juc.ConcurrentLinkedQueueが最⼤大2倍以上
Runtime  Instrumentation  (RI)機構
ランタイムを管理理するために設計された⾰革新的な新しいハードウェア機構
JRE最適化の新たな拡張を実現
2GBのページ・フレーム
64-‐‑‒bitヒープのパフォーマンス向上
Flash  Expressによる1MBラージ・ページ
メモリー管理理⽅方法の多様化
ソフトウェアの新しいヒント/ディレクティブ
データの⽤用途に従ったキャッシュ管理理が向上
分岐のプリロードにより分岐予測が向上
zEnterprise  Data  Compression  accelerator
gzip  アクセラレーター
新しいトラップ命令令
暗黙的な境界/NULLチェックのオーバーヘッド削減
新しい  5.5  GHz  6コア・プロセッサー・チップ
⼤大容量量キャッシュ  によるデータ・サービスの最適化  
第2世代  OOO  design
Java処理理において60%のスループット向上
zEC12  およびIBM  Java7SR3使⽤用
出典:Engineered  Together̶—IBM  Java  and  zEC12  Boost  Workload  Performance
http://www.ibmsystemsmag.com/mainframe/trends/whatsnew/java_̲compiler/
Impact2014より
© 2014 IBM Corporation
Power  8  プロセッサー新機能への対応
25
■  Power  8  プロセッサのフィーチャー
-‐‑‒  ハードウェア・トランザクション・メモリー(HTM)
-‐‑‒  Runtime  Instrumentation(RI)機構
-‐‑‒  AES  暗号処理理
-‐‑‒  Polynomial  multiplication-‐‑‒sum
-‐‑‒  Direct  move
-‐‑‒  Vector  load/store
-‐‑‒  SMT8
-‐‑‒  16バイト  larx/stcxlq/stq
ここでご紹介したzEC12およびPower8新機能への対応はIBM  J9  JVMとJITコンパイラ―によっ
て直接使⽤用されている機能です。
いずれもパフォーマンス等の利利⽤用者へのメリットを提供するものであり、既存のJavaアプリケーション
および開発者への影響をあたえるものではありません。
⼤大幅なパフォーマンスの向上を達成!!! 
Java  7  SR4  と⽐比較し、  SPECjbb2013  ʻ‘max-‐‑‒jOPSʼ’  で10%以上のパフォーマンス改善するという⽬目標を達成
しました。さらに以下の改善を達成しています。
●    13%  のスループット、26%  応答時間改善:  Watson
●    30%のスループット向上:  ILOG
●    3-‐‑‒5%  のスループット向上:  DayTrader3
●    RMI-‐‑‒IIOPのマーシャル/アンマーシャル処理理のパフォーマンスはWeblogic  
t3に⽐比較し3.8倍、Day-‐‑‒traderでは8.5%向上
Impact2014より	
 
この結果。。。
© 2014 IBM Corporation26
新たな機能のご紹介〜~
© 2014 IBM Corporation27
JSoR(RDMAサポート)
マルチテナンシー
Data  Access  
Accelerators(DAA)
パック・オブジェクト
Impact2014より
© 2014 IBM Corporation
JSoR:  Remote  Direct  Memory  Access  (RDMA)  通信
28
●  低遅延、⾼高スループットネットワーク  を活⽤用(10/40/56  Gbps)
●  リモートホスト間でのアプリケーションからアプリケーションへの直メモリー・アクセス
●  ネットワーク処理理を  RDMA  NIC/HCAにオフロードし、  OS/カーネルをバイパス  (Z-‐‑‒Copy)
●  java.net.Socket  APIでそのまま利利⽤用可能な実装   (JSoR=Java  Socket  over  
RDMA)
Java Application
Server
Buffer
Off
Heap
Buffer
Java Application
Client
Buffer
Off
Heap
Buffer
Ether/IB
SwitchRDMA NIC/HCA RDMA NIC/HCA
OS OS
DMA DMA
(Z-Copy) (Z-Copy)
(B-Copy)(B-Copy)
Acronyms:
Z-Copy – Zero Copy
B-Copy – Buffer Copy
IB – InfiniBand
Ether - Ethernet
NIC – Network Interface Card
HCA – Host Control Adapter
Impact2014より
© 2014 IBM Corporation
JSoR/RDMA通信のパフォーマンス 
29
JSoRはTCP/IPや、IPoIB、SDPよりも優れたデータ転送能⼒力力が⽰示されています
参考:NetPIPE  for  Java  Benchmark  -‐‑‒  http://bitspjoule.org/netpipe/
Impact2014より
© 2014 IBM Corporation
マルチテナンシー概要 
30
アプリケーション密度度:  
 単⼀一のハードウェア上でどれだけのアプリケーションを集約できるかの指標
課題:多くのJavaアプリケーションの密度度向上を妨げる要因 ⇒ メモリー
巨⼤大にもかかわらずJVM間で共有できていないメモリー領領域 
» Javaヒープ
» JITコンパイル・コードとメタデータ
  多くのJVMはフットプリントよりパフォーマンス・チューニングに重点
同⼀一OS上で複数のJVM間でGC、JITサービスは連携していない
解決策:マルチテナンシー
マルチテナンシー機能により、JVMがʼ’仮想化ʼ’され、アプリケーションの変更更なしに複数のアプリケーションが
単⼀一のランタイムを共有できる。H/W上のハイパーバイザーと同様のコンセプトで、これによりアプリケー
ションのリソースを積極的に共有。
Technology Preview	
 
Impact2014より
© 2014 IBM Corporation
マルチテナンシー:IBMのJVM仮想化へのアプローチ
31
 〇通常のjava環境
  3つの個別(共有されていない)のJVMが起動されます。




 〇IBMマルチテナンシーJVM環境
各javaコマンドは軽量量なマルチテナント・プロキシ―  JVMを⽣生成します。マルチテナント・プロキシ―は
javadと呼ばれる共有JVMデーモンとの通信を⾏行行います。
●  javadは⾃自動的に起動・
停⽌止します
●  javadはランタイム機能の
共有を積極的に⾏行行います
例例:3つのJavaアプリケーションを1つのコンピュータ上で実⾏行行
JVM
ヒープ
+
クラス
java
JVM
ヒープ
+
クラス
java
JVM
ヒープ
+
クラス
java
JVM
ヒープ
+
クラス
javad
java
マルチテナント
プロキシー	
 
java
マルチテナント
プロキシー	
 
java
マルチテナント
プロキシー	
 
Technology Preview	
 
Impact2014より
© 2014 IBM Corporation
マルチテナンシー:リソース管理理
32
テナントのリソース消費の上限はポリシーで制限されます。
制御対象はCPU使⽤用率率率、スレッド数、ヒープ・メモリー、Disk、ネットワークI/O。
使⽤用率率率はテナント毎に以下のJava引数で制御されます。
-‐‑‒Xlimit:<resource_̲name>=<min_̲limit>-‐‑‒<max_̲limit>
<min_̲limit>:  起動時に割り当てられる最⼩小のリソースの合計
<max_̲limit>:  利利⽤用可能な最⼤大のリソースの合計
テナント
テナント
要求
割合
制御
テナント
割り当て
テナント
テナント
テナント
テナント
テナント
テナント
例例:
CPUに負荷を与えるアプリケーションとして、それ
ぞれ全く同じフィボナッチ計算を実⾏行行させる。ただ
し、CPUをそれぞれ60%と30%と異異なった割り
当てにする。
java  -‐‑‒Xmt  -‐‑‒Xlimit:cpu=60  -‐‑‒jar  fibbonacci

java  -‐‑‒Xmt  -‐‑‒Xlimit:cpu=30  -‐‑‒jar  fibbonacci
Technology Preview	
 
Impact2014より
© 2014 IBM Corporation
マルチテナンシー関連:管理理ツールの強化
33
課題:
クラウドやマルチテナンシーといった環境で、Javaプログラムがホスト環境のリソースなどの変更更に合わせた
⾃自⼰己変化・適応を⾏行行うためには、基準となる情報が不不⾜足している。
⇒ネイティブ・コードの追加をせずにリソースの状況(空きなど)を検出・特定する必要性
新たな管理理ツールの提供:
●  より詳細な環境情報を提供する新しいJMX  Bean
メリット:
リソース消費情報を得るためのネイティブ・コードを記述する必要が無い
JVMおよびミドルウェアは環境に合わせて正しいサイズに調整できる。
例例:コア・ファイルのサイズ、個数およびメモリー・サイズ等
仮想化環境の詳細(ハイパーバイザー)はRAS機能にも提供される。
種類	
  内容 インターフェース
OperatingSystemMXBean	
  メモリー、CPU使⽤用率率率 com.ibm.lang.management.OperatingSystemMXBean
HypervisorMXBean	
  ハイパーバイザーの特定 com.ibm.virtualization.management.HypervisorMXBean
GuestOSMXBean	
  VM/LPAR構成の詳細とゲストOSの統
計モニター(メモリー、CPU)
com.ibm.virtualization.management.GuestOSMXBean
Impact2014より
© 2014 IBM Corporation
DAA
34
Javaはパック10進数の表現を備えていない
2つのパック10進数の加算は次のような操作が必要です
–  byte[]  から  BigDecimalへの変換
–  BigDecimalの加算
–  BigDecimal演算結果を再びbyte[]に変換
IBM  Javaはこの操作をするためにヘルパーメソッドを提供します
従来のアプローチ:
byte[] addPacked(byte[] a, byte[] b) {
BigDecimal a_bd = convertPackedToBd(a[]);
BigDecimal b_bd = convertPackedToBd(b[]);
a_bd.add(b_bd);
return (convertBDtoPacked(a_bd));
}
BigDecimal convertPackedToBd(byte[] myBytes) {
...
}
新しいアプローチ: (イメージ)
byte[] addPacked(byte[] a, byte[] b) {
DAA.addPackedDecimal(a[], b[]);
return (a[]);
}
例例:パック10進数に加算処理理を⾏行行う
詳しくは、com.ibm.dataaccessパッケージの  API  資料料を参照してください。
•  パック  10  進数演算:
算術演算
⽐比較演算
他の  10  進数型  (外部  10  進数型、Unicode  10  進
数型など)  とプリミティブ型との間の型変換
妥当性検査
演算の桁移動と桁送り
•  外部  10  進数型と  Unicode  10  進数型との間の  
BigDecimal  および  BigInteger  型変換
•  マーシャル・オペレーション:  プリミティブ型  (short、int、long、
float、および  double)  とバイト配列列との間のマーシャルとアンマ
ーシャル
メソッドで提供する機能
Impact2014より
© 2014 IBM Corporation
Data  Access  Accelerator  (DAA)  概要
35
課題:ビッグデータやアナリティクス、⾔言語間の通信といったデータセントリックなタスクでは、Javaからネイ
ティブ・フォーマットのデータレコードや型に最良良のパフォーマンスでアクセスや操作することが求められま
す。オブジェクトの作成、データのコピー、抽象化、ボクシング等の防⽌止が必要となってきます。
必要最⼩小限のデータ変換と演算等のためのDAA Javaライブラリーの提供。
»  バイト配列列での直接演算
»  プラットフォームに合わせた強⼒力力な最適化のためにJITと連携
»  IBM  JITと連動し、中間Javaオブジェクトは作成しない
»  提供機能による操作により⾼高コストなJavaオブジェクトインスタンス化の回避
メリット:
ハードウェア・アクセラレータをプラットフォームに依存せず使⽤用
(2  –  100倍のスピードアップ)
レコードのパース処理理を⾏行行うフレームワークで⼤大幅なスピードアップを実現
データのマーシャリングや⾔言語間の通信に⼤大幅なスピードアップを実現
Impact2014より
© 2014 IBM Corporation
パック・オブジェクト概要
36
パック・オブジェクトは、IBM  Javaランタイムの拡張機能で標準化されていない⾔言語です。現在テクノロジー・
プリビューの位置づけです。  
フィードバックを得るために提供をしているため、正式サポート(保証)は提供しておらず、Java⾔言語への正
式追加を将来約束するものではありません。
パック・オブジェクトは、Javaオブジェクトのメモリー・レイアウトについて、より綿密なコントロール⼿手段を開発者
に提供します。
なぜ必要?
✔  JavaオブジェクトのシリアライズとI/Oの改善
✔  ネイティブ・データ(オフヒープ)への直接アクセスを可能にする
✔  コンパクトなデータ構造に関する表現がソース上で明確に
メリット:
フットプリント、シリアライズ処理理のパフォーマンス向上、より細かいデータ管理理、⾔言語間の通信の向上のため、
Javaの構造化データをサポート
Technology Preview	
 
ネイティブ・メモリー上のデータ構造
20byte Javaヒープ上のデータ構造
72byte
I/O
Impact2014より
© 2014 IBM Corporation
パック・オブジェクト:ヒープ参照データ
37
int y
int x
aPoint
Object header
Object field / data
int y
int x
aPointPoint b
Point a
aLine
Point c
int y
int x
aPoint
例例:Javaで効率率率よくpointオブジェクトを連続的に表現したい
Technology Preview	
 
Impact2014より
© 2014 IBM Corporation
パック・オブジェクト:ヒープ参照データ
38
int y
int x
aPoint
Object header
Object field / data
int y
int x
aPointPoint b
Point a
aLine
int y
int x
int y
int x
aPackedLine
offset
target
Point c
int y
int x
aPoint
int y
int x
@Packed
final class PackedPoint extends PackedObject {
int x;
int y;
}
@Packed
final class PackedLine extends PackedObject {
PackedPoint a;
PackedPoint b;
PackedPoint c;
}
aLine.a
aLine.b
aLine.c
Technology Preview	
 
Impact2014より
© 2014 IBM Corporation
パック・オブジェクト  ネイティブ・メモリーのサポート
39
§  Javaでは直接アクセスするためにはJavaオブジ
ェクトである必要がある
§  外部データはJavaヒープ・フォーマットに読み込
む必要がある-‐‑‒変換コストは⾼高い
§  データのコピーとヘッダーのためデータの肥⼤大化が
発⽣生
§  通常のオブジェクトではデータの局所性が維持さ
れない
§  パック・オブジェクトは任意のフォーマットのデータに
不不要なコピーや変換を⾏行行わず直アクセスが可能
§  パック・オブジェクトはネイティブ・メモリーまたはJav
aヒープ上のどちらでも良良い
data
data
copy
header
array  [      ]
オブジェクト
header
data
copy
header
data
copy
header
data
copy
header
data data data
Javaヒープ上
のオブジェクト
ネイティブ・
メモリー
パック
array  [      ]
ネイティブ・
メモリー
または
Javaヒープ
例例:ネイティブ上のデータ・レコードをJavaから操作する
Technology Preview	
 
Impact2014より
© 2014 IBM Corporation
パック・オブジェクト:  ネイティブへのアクセス例例
40
int y
int x
Object header
Struct field / data
offset
target
aPackedLine
Java Native
Ø
@Packed
final class PackedPoint extends PackedObject {
int x;
int y;
}
int y
int x
int y
int x
Technology Preview	
 
Impact2014より
© 2014 IBM Corporation
パック・オブジェクト:  考慮点 
41
Technology Preview	
 
•  パック・オブジェクトを使⽤用するにはJVM起動時に次の引数を指定
する必要があります。
-‐‑‒XX:+PackedObject
•  以下のGC⽅方式のみが利利⽤用可能です
•  gencon
•  optthruput
•  optavgpause
•  圧縮参照は使⽤用できません
© 2014 IBM Corporation
追加情報
42
§ Diagnostics  Collector  は除去されました
– IBM  Support  Assistant  Data  collectorを利利⽤用してくださ
い
§ IBM  Java7  Relase1からppcLinux(LE)*に対応しました
*LE=Little  Endian
§ Java  communications  API  は利利⽤用できません
§ 以下の旧OSのサポートは終了了しました
– Windows  XP,  Server  2003
– Linux  RHEL  5,  SLES  10,  Ubuntu  8.04  &  10.04,  
Asianux  Server  3
Impact2014より更新
© 2014 IBM Corporation
IBM  Java関連情報 
43
dW:  IBM  developer  kits(Linux/AIX版  JDKダウンロード先)
http://www.ibm.com/developerworks/java/jdk/
IBM  Java  Knowledge  Center(オンラインマニュアル)
www.ibm.com/support/knowledgecenter/SSYKE2/welcome_̲javasdk_̲family.html
User  Guides  and  Reference  information  for  viewing  offline.  
(オフライン⽂文書)
http://www.ibm.com/developerworks/java/jdk/docs/offline.html
WAS  V8.0  によるWebシステム基盤設計ワークショップ資料料
http://www.ibm.com/developerworks/jp/websphere/library/was/was8_̲guide/
WebSphere  Application  Server  (WAS)  ⼩小ワザ集
http://www.ibm.com/developerworks/jp/websphere/library/was/was_̲tips/
dW:  Javaの診断をIBMスタイルで
http://bit.ly/SdtevS
© 2014 IBM Corporation
コードネーム BlueMixとは? 
© 2014 IBM Corporation
BlueMixはIBMのPaaS
45
●  CloudFoundryベース
●  SoftLayer(IBMのIaaS)上で動作
●  IBM独⾃自サービスもcommunityサービスを簡単に追加可能
+IBM独⾃自のランタイム
    およびサービス
IBMJavaやWebSphere  Liberty  Profileも利利⽤用可能
© 2014 IBM Corporation
BlueMixでJavaアプリケーションを動かす
46
●  BlueMixトップページ http://www.bluemix.net
2014年5月現在はβ版を無償で利用可能です
IBM ID(無償)でログインします。
© 2014 IBM Corporation
BlueMixでLiberty  for  Javaのランタイムを作成する
47
●  ブラウザ上の数クリックで環境の構成と起動が完成
30秒で!
© 2014 IBM Corporation
BlueMix:⼿手元のWebアプリをデプロイ(CFツール)
48
●  ログイン
C:optCloudFoundry>cf  login
API  endpoint>  http://api.stage1.ng.bluemix.net
Warning:  Insecure  http  API  endpoint  detected:  secure  https  API  endpoints  are  recommended
Email>  amoriba@jp.ibm.com
Password>
Authenticating...
OK
Targeted  org  amoriba@jp.ibm.com
Targeted  space  dev
API  endpoint:  http://api.stage1.ng.bluemix.net  (API  version:  2.2.0)
User:                  amoriba@jp.ibm.com
Org:                    amoriba@jp.ibm.com
Space:                dev
C:optCloudFoundry>
既に⼿手元に開発したアプリケーションをCFツールでBlueMixにデプロイできます。
CFツールはコマンドラインインターフェースのツールです。
© 2014 IBM Corporation
BlueMixにデプロイ
49
●  デプロイ (CFツールでPUSH)
C:DLBlueMixtestEnv>c:optCloudFoundrycf.exe  push  amoribaTEST  -‐‑‒m  512m
Creating  app  amoribaTEST  in  org  amoriba@jp.ibm.com  /  space  dev  as  amoriba@jp.ibm.com...
OK
Creating  route  amoribatest.stage1.ng.bluemix.net...
OK
Binding  amoribatest.stage1.ng.bluemix.net  to  amoribaTEST...
OK
Uploading  amoribaTEST...
Uploading  app  files  from:  C:DLBlueMixtestEnv
Uploading  1.2K,  3  files
OK
Starting  app  amoribaTEST  in  org  amoriba@jp.ibm.com  /  space  dev  as  amoriba@jp.ibm.com...
-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒>  Downloaded  app  package  (4.0K)
OK
Buildpack  Version:  20140511-‐‑‒1311
-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒>  Downloading  IBM  1.7.0  JRE  from  http://file.icap.cdl.ibm.com/icapShared/jre/ibm-‐‑‒java-‐‑‒jre-‐‑‒7.0-‐‑‒6.0-‐‑‒
linux-‐‑‒x86_̲64-‐‑‒small-‐‑‒footprint-‐‑‒uncompressed-‐‑‒jar-‐‑‒20140116.tar.gz  (0.0s)
              Expanding  JRE  to  .java  (1.1s)
Downloading  from  output/wlp/com.ibm.ws.liberty-‐‑‒2014.4.0.0-‐‑‒201405111311.tar.gz  ...  (0.0s).
Installing  archive  ...  (0.6s).
-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒>  Uploading  droplet  (93M)
0  of  1  instances  running,  1  starting
0  of  1  instances  running,  1  starting
0  of  1  instances  running,  1  starting
1  of  1  instances  running
© 2014 IBM Corporation
BlueMixにデプロイ(続)
50
●  デプロイ(CFツールでPUSH)の続き
●  起動完了了&利利⽤用可能
App  started
Showing  health  and  status  for  app  amoribaTEST  in  org  amoriba@jp.ibm.com  /  space  dev  as  
amoriba@jp.ibm.com...
OK
requested  state:  started
instances:  1/1
usage:  512M  x  1  instances
urls:  amoribatest.stage1.ng.bluemix.net
          state          since                                        cpu        memory                      disk
#0      running      2014-‐‑‒05-‐‑‒15  01:27:14  PM      0.0%      295.1M  of  512M      178.5M  of  1G
© 2014 IBM Corporation
BlueMixにデプロイ(続)
51
●  アプリにアクセス
数クリックでサーバ構成と起動完了了
数コマンドラインでアプリのデプロイ起動完了了
© 2014 IBM Corporation
BlueMix DevOpsサービスによるアプリのデプロイ 
52
●  JazzHub*やGitHub上で管理理するコードを直接BlueMixにデプロイ可能
●  今すぐにコーディング
●  チームの協業
●  簡単なアクセス
●  ビルドとデプロイ
	
 	
 
JazzHub上(ブラウザ)でコードを編集してすぐにBlueMixにデプロイ可能
*JazzHubはIBMのSaaSです
© 2014 IBM Corporation
BlueMix Eclipseからデプロイ 
53
●  Eclipseのプラグインから直接BlueMixにデプロイ可能
	
 	
 
いつものEclipseからすぐにBlueMixにデプロイ可能
eclipse marketplace:
http://marketplace.eclipse.org/content/ibm-codename-bluemix-eclipse-kepler#.U3gu2_l_tuk
© 2014 IBM Corporation
BlueMix ボイラー・プレート
54
ランタイムといくつかのサービスを組み合わせた環境を
わずか数クリックで完成できるテンプレート
© 2014 IBM Corporation
BlueMixで利利⽤用可能なサービス
55
Service Category	
 IBM Created Services	
 Community Services 	
Mobile Services	
 Mobile Application Security 	
Mobile Data 	
Mobile Quality Assurance 	
Push 	
Internet of Things 	
Web App Services	
 Application Security Service 	
 Rabbit MQ 	
Configuration Service 	
 Redis 	
CastIronLive 	
 Wearable Fitness 	
Cloud Integration 	
DataCache 	
Elastic MQ 	
IBM Bluemix Text Analytics 	
Log Analysis 	
RapidApps 	
Rules 	
SessionCache 	
Single Sign-On (SSO) 	
Smart Cloud Object Storage 	
SMTP 	
Data Management	
 Cloudant 	
 MongoDB 	
JSON Database (JSONDB) 	
 My SQL 	
SQL Database (SQLDB) 	
 PostgreSQL 	
Time Series Database 	
Big Data	
 BLU Acceleration 	
MapReduce 	
DevOps	
 IBM DevOps Services 	
Monitoring and Analytics 	
Git Hosting 	
Web IDE 	
Add-ons	
 Auto-Scaling 	
Auto-Scaling Cfg 	
2014/05/18現在:
今後も追加更更新される可能性があります
•  モバイル、Webアプリケーション、データ
管理理、ビッグデータ、DevOps、アドオン
の6つのカテゴリ
•  IBMが作成したもの、コミュニティが作成
したもの、パートナー様が作成したもの
が利利⽤用可能
•  開発者はアイディアをプログラムし、実⾏行行
し結果を出すために全て簡単に構成・
利利⽤用可能
•  Webアプリはローカルディスクにデータを
書き出すとPUSHの都度度データが消え
るため、DBにデータ保管をすることが基
本
© 2014 IBM Corporation
BlueMix関連情報 
56
IBM  BlueMix  (IBM  ID(無料料)でログインが必要)
http://ace.ng.bluemix.net/
Tutorials
https://www.ng.bluemix.net/docs/Tutorials.jsp
BlueMix  Developers  Community
https://www.ibmdw.net/bluemix/
JazzHub  Forum
https://www.ibmdw.net/answers?community=jazzhub
IBM  jStart  by  ibmjstart(サンプルアプリケーション)
http://ibmjstart.github.io/
developerWorks(⽇日本語コンテンツあり)
http://www.ibm.com/developerworks/jp/
© 2014 IBM Corporation
まとめ
57
§  IBM  Javaとは
§  IBM  Java8
§  IBM  Javatm  Technology  Edition  Version  7  Release  1
–  最新のIBMシステムハードウェアサポート
–  ネイティブ・データの操作(DAA)
–  評価テクノロジーの提供
•  アプリケーション密度度 (マルチテナンシー)
•  ネイティブ⾔言語との連携(パック)
•  パフォーマンスやフットプリント改善のためのオブジェクトレイアウト改良良  
(パック)
–  Java  Sockets  over  RDMA  (JsoR)サポート
–  保守性の向上  
§  BlueMix(PaaS)
© 2014 IBM Corporation
おつかれさまでした!
58
© 2014 IBM Corporation59
ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の見解を反映したものです。
それらは情報提供の目的のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助言を意図したものではなく、ま
たそのような結果を生むものでもありません。本講演資料に含まれている情報については、完全性と正確性を期するよう努力しましたが、
「現状のまま」提供され、明示または暗示にかかわらずいかなる保証も伴わないものとします。本講演資料またはその他の資料の使用によ
って、あるいはその他の関連によって、いかなる損害が生じた場合も、IBMは責任を負わないものとします。	
 本講演資料に含まれている内
容は、IBMまたはそのサプライヤーやライセンス交付者からいかなる保証または表明を引きだすことを意図したものでも、IBMソフトウェア
の使用を規定する適用ライセンス契約の条項を変更することを意図したものでもなく、またそのような結果を生むものでもありません。	
 
	
 
本講演資料でIBM製品、プログラム、またはサービスに言及していても、IBMが営業活動を行っているすべての国でそれらが使用可能である
ことを暗示するものではありません。本講演資料で言及している製品リリース日付や製品機能は、市場機会またはその他の要因に基づいて
IBM独自の決定権をもっていつでも変更できるものとし、いかなる方法においても将来の製品または機能が使用可能になると確約すること
を意図したものではありません。本講演資料に含まれている内容は、参加者が開始する活動によって特定の販売、売上高の向上、またはそ
の他の結果が生じると述べる、または暗示することを意図したものでも、またそのような結果を生むものでもありません。	
 パフォーマン
スは、管理された環境において標準的なIBMベンチマークを使用した測定と予測に基づいています。ユーザーが経験する実際のスループッ
トやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラミングの量、入出力構成、ストレージ構成、および処理さ
れるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがって、個々のユーザーがここで述べられているものと
同様の結果を得られると確約するものではありません。	
 
	
 
記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使用したか、またそれらのお客様が達成した結果の実例と
して示されたものです。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。	
 
	
 
IBM、IBM	
 ロゴ、ibm.com、WebSphereは、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。	
 
他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。	
 
現時点での	
 IBM の商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧ください。	
 	
 
	
 
Adobe, Adobeロゴ, PostScript, PostScriptロゴは、Adobe Systems Incorporatedの米国およびその他の国における登録商標または商標です。	
IT Infrastructure Libraryは英国Office of Government Commerceの一部であるthe Central Computer and Telecommunications Agencyの登録商標で
す。	
インテル, Intel, Intelロゴ, Intel Inside, Intel Insideロゴ, Intel Centrino, Intel Centrinoロゴ, Celeron, Intel Xeon, Intel SpeedStep, Itanium, およびPentium
は Intel Corporationまたは子会社の米国およびその他の国における商標または登録商標です。	
Linuxは、Linus Torvaldsの米国およびその他の国における登録商標です。	
Microsoft, Windows, Windows NT および Windowsロゴは Microsoft Corporationの米国およびその他の国における商標です。	
ITILは英国The Minister for the Cabinet Officeの登録商標および共同体登録商標であって、米国特許商標庁にて登録されています。	
UNIXはThe Open Groupの米国およびその他の国における登録商標です。	
Cell Broadband Engineは、Sony Computer Entertainment, Inc.の米国およびその他の国における商標であり、同社の許諾を受けて使用しています。	
JavaおよびすべてのJava関連の商標およびロゴは Oracleやその関連会社の米国およびその他の国における商標または登録商標です。	
Linear Tape-Open, LTO, LTOロゴ, UltriumおよびUltriumロゴは、HP, IBM Corp.およびQuantumの米国およびその他の国における商標です。

More Related Content

What's hot

PostgreSQLの冗長化について
PostgreSQLの冗長化についてPostgreSQLの冗長化について
PostgreSQLの冗長化について
Soudai Sone
 
負荷試験入門公開資料 201611
負荷試験入門公開資料 201611負荷試験入門公開資料 201611
負荷試験入門公開資料 201611
樽八 仲川
 
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
NTT DATA Technology & Innovation
 
Pacemaker+PostgreSQLレプリケーションで共有ディスクレス高信頼クラスタの構築@OSC 2013 Tokyo/Spring
Pacemaker+PostgreSQLレプリケーションで共有ディスクレス高信頼クラスタの構築@OSC 2013 Tokyo/SpringPacemaker+PostgreSQLレプリケーションで共有ディスクレス高信頼クラスタの構築@OSC 2013 Tokyo/Spring
Pacemaker+PostgreSQLレプリケーションで共有ディスクレス高信頼クラスタの構築@OSC 2013 Tokyo/Spring
Takatoshi Matsuo
 
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニングしばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
オラクルエンジニア通信
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
infinite_loop
 
【旧版】Oracle Gen 2 Exadata Cloud@Customer:サービス概要のご紹介 [2021年12月版]
【旧版】Oracle Gen 2 Exadata Cloud@Customer:サービス概要のご紹介 [2021年12月版]【旧版】Oracle Gen 2 Exadata Cloud@Customer:サービス概要のご紹介 [2021年12月版]
【旧版】Oracle Gen 2 Exadata Cloud@Customer:サービス概要のご紹介 [2021年12月版]
オラクルエンジニア通信
 
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装
infinite_loop
 
NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA OSS Professional Services
 
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
NTT DATA OSS Professional Services
 
S13 Oracle Database を Microsoft Azure 上で運用する為に~基本事項とベストプラクティス
S13 Oracle Database を Microsoft Azure 上で運用する為に~基本事項とベストプラクティスS13 Oracle Database を Microsoft Azure 上で運用する為に~基本事項とベストプラクティス
S13 Oracle Database を Microsoft Azure 上で運用する為に~基本事項とベストプラクティス
Microsoft Azure Japan
 
MaxScaleを触ってみた
MaxScaleを触ってみたMaxScaleを触ってみた
MaxScaleを触ってみた
Fujishiro Takuya
 
ビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年versionビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年version
Tetsutaro Watanabe
 
Open Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere LibertyOpen Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere Liberty
Takakiyo Tanaka
 
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
NTT DATA OSS Professional Services
 
いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理
Uptime Technologies LLC (JP)
 
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?takezoe
 

What's hot (20)

PostgreSQLの冗長化について
PostgreSQLの冗長化についてPostgreSQLの冗長化について
PostgreSQLの冗長化について
 
負荷試験入門公開資料 201611
負荷試験入門公開資料 201611負荷試験入門公開資料 201611
負荷試験入門公開資料 201611
 
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
 
Pacemaker+PostgreSQLレプリケーションで共有ディスクレス高信頼クラスタの構築@OSC 2013 Tokyo/Spring
Pacemaker+PostgreSQLレプリケーションで共有ディスクレス高信頼クラスタの構築@OSC 2013 Tokyo/SpringPacemaker+PostgreSQLレプリケーションで共有ディスクレス高信頼クラスタの構築@OSC 2013 Tokyo/Spring
Pacemaker+PostgreSQLレプリケーションで共有ディスクレス高信頼クラスタの構築@OSC 2013 Tokyo/Spring
 
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニングしばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
 
【旧版】Oracle Gen 2 Exadata Cloud@Customer:サービス概要のご紹介 [2021年12月版]
【旧版】Oracle Gen 2 Exadata Cloud@Customer:サービス概要のご紹介 [2021年12月版]【旧版】Oracle Gen 2 Exadata Cloud@Customer:サービス概要のご紹介 [2021年12月版]
【旧版】Oracle Gen 2 Exadata Cloud@Customer:サービス概要のご紹介 [2021年12月版]
 
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装
 
NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦
 
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
 
S13 Oracle Database を Microsoft Azure 上で運用する為に~基本事項とベストプラクティス
S13 Oracle Database を Microsoft Azure 上で運用する為に~基本事項とベストプラクティスS13 Oracle Database を Microsoft Azure 上で運用する為に~基本事項とベストプラクティス
S13 Oracle Database を Microsoft Azure 上で運用する為に~基本事項とベストプラクティス
 
MaxScaleを触ってみた
MaxScaleを触ってみたMaxScaleを触ってみた
MaxScaleを触ってみた
 
ビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年versionビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年version
 
Open Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere LibertyOpen Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere Liberty
 
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
 
いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理
 
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?
 

Viewers also liked

CLUB DB2 第137回:基礎から再入門!DB2モニタリング入門
CLUB DB2 第137回:基礎から再入門!DB2モニタリング入門CLUB DB2 第137回:基礎から再入門!DB2モニタリング入門
CLUB DB2 第137回:基礎から再入門!DB2モニタリング入門
Akira Shimosako
 
IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)
IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)
IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)
Akira Shimosako
 
Java用O/Rマッピングソフトについて私が知っている二、三の事柄
Java用O/Rマッピングソフトについて私が知っている二、三の事柄Java用O/Rマッピングソフトについて私が知っている二、三の事柄
Java用O/Rマッピングソフトについて私が知っている二、三の事柄
Akira Shimosako
 
エバンジェリストが語るパワーシステム特論 ~ 特番:世界最速スパコン、セコイア(IBM Blue Gene/Q)の凄さの秘密に迫る
エバンジェリストが語るパワーシステム特論 ~ 特番:世界最速スパコン、セコイア(IBM Blue Gene/Q)の凄さの秘密に迫るエバンジェリストが語るパワーシステム特論 ~ 特番:世界最速スパコン、セコイア(IBM Blue Gene/Q)の凄さの秘密に迫る
エバンジェリストが語るパワーシステム特論 ~ 特番:世界最速スパコン、セコイア(IBM Blue Gene/Q)の凄さの秘密に迫る
Takumi Kurosawa
 
DB2をAWS上に構築する際のヒント&TIPS
DB2をAWS上に構築する際のヒント&TIPSDB2をAWS上に構築する際のヒント&TIPS
DB2をAWS上に構築する際のヒント&TIPS
Akira Shimosako
 
DBパフォーマンスチューニングの基礎:インデックス入門
DBパフォーマンスチューニングの基礎:インデックス入門DBパフォーマンスチューニングの基礎:インデックス入門
DBパフォーマンスチューニングの基礎:インデックス入門
Akira Shimosako
 
Groovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみようGroovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみよう
Akira Shimosako
 
DB2の使い方 管理ツール編
DB2の使い方 管理ツール編DB2の使い方 管理ツール編
DB2の使い方 管理ツール編
Akira Shimosako
 
データベース設計徹底指南
データベース設計徹底指南データベース設計徹底指南
データベース設計徹底指南
Mikiya Okuno
 

Viewers also liked (9)

CLUB DB2 第137回:基礎から再入門!DB2モニタリング入門
CLUB DB2 第137回:基礎から再入門!DB2モニタリング入門CLUB DB2 第137回:基礎から再入門!DB2モニタリング入門
CLUB DB2 第137回:基礎から再入門!DB2モニタリング入門
 
IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)
IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)
IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)
 
Java用O/Rマッピングソフトについて私が知っている二、三の事柄
Java用O/Rマッピングソフトについて私が知っている二、三の事柄Java用O/Rマッピングソフトについて私が知っている二、三の事柄
Java用O/Rマッピングソフトについて私が知っている二、三の事柄
 
エバンジェリストが語るパワーシステム特論 ~ 特番:世界最速スパコン、セコイア(IBM Blue Gene/Q)の凄さの秘密に迫る
エバンジェリストが語るパワーシステム特論 ~ 特番:世界最速スパコン、セコイア(IBM Blue Gene/Q)の凄さの秘密に迫るエバンジェリストが語るパワーシステム特論 ~ 特番:世界最速スパコン、セコイア(IBM Blue Gene/Q)の凄さの秘密に迫る
エバンジェリストが語るパワーシステム特論 ~ 特番:世界最速スパコン、セコイア(IBM Blue Gene/Q)の凄さの秘密に迫る
 
DB2をAWS上に構築する際のヒント&TIPS
DB2をAWS上に構築する際のヒント&TIPSDB2をAWS上に構築する際のヒント&TIPS
DB2をAWS上に構築する際のヒント&TIPS
 
DBパフォーマンスチューニングの基礎:インデックス入門
DBパフォーマンスチューニングの基礎:インデックス入門DBパフォーマンスチューニングの基礎:インデックス入門
DBパフォーマンスチューニングの基礎:インデックス入門
 
Groovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみようGroovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみよう
 
DB2の使い方 管理ツール編
DB2の使い方 管理ツール編DB2の使い方 管理ツール編
DB2の使い方 管理ツール編
 
データベース設計徹底指南
データベース設計徹底指南データベース設計徹底指南
データベース設計徹底指南
 

Similar to JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57

夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発
夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発 夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発
夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発
Takakiyo Tanaka
 
20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQL20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQL
Ryusuke Kajiyama
 
XPagesDay 2014 - What's new in XPages NOW!
XPagesDay 2014 - What's new in XPages NOW!XPagesDay 2014 - What's new in XPages NOW!
XPagesDay 2014 - What's new in XPages NOW!
Atsushi Sato
 
今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJava今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJava
Takashi Ito
 
たった1時間でシステム構築!“激速”環境構築を実現する“パターン技術”の秘密とは
たった1時間でシステム構築!“激速”環境構築を実現する“パターン技術”の秘密とはたった1時間でシステム構築!“激速”環境構築を実現する“パターン技術”の秘密とは
たった1時間でシステム構築!“激速”環境構築を実現する“パターン技術”の秘密とは
Rina Owaki
 
IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-
IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-
IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-
Takakiyo Tanaka
 
EMC様講演 OpenStack最新情報セミナー 2014年6月
EMC様講演 OpenStack最新情報セミナー 2014年6月EMC様講演 OpenStack最新情報セミナー 2014年6月
EMC様講演 OpenStack最新情報セミナー 2014年6月
VirtualTech Japan Inc.
 
TFセミナー マイクロソフト製品で作る Web インフラ 基本編
TFセミナー マイクロソフト製品で作る Web インフラ 基本編TFセミナー マイクロソフト製品で作る Web インフラ 基本編
TFセミナー マイクロソフト製品で作る Web インフラ 基本編
hirookun
 
Windows環境でのMySQL
Windows環境でのMySQLWindows環境でのMySQL
Windows環境でのMySQL
yoyamasaki
 
WebSphere Application Server V8.5.5 Libertyプロファイルのご紹介 #jjug_ccc #ccc_r51
WebSphere Application Server V8.5.5Libertyプロファイルのご紹介 #jjug_ccc #ccc_r51WebSphere Application Server V8.5.5Libertyプロファイルのご紹介 #jjug_ccc #ccc_r51
WebSphere Application Server V8.5.5 Libertyプロファイルのご紹介 #jjug_ccc #ccc_r51
Takakiyo Tanaka
 
Introduction to web development 1
Introduction to web development 1Introduction to web development 1
Introduction to web development 1
hideaki honda
 
20161119 java one-feedback_osaka
20161119 java one-feedback_osaka20161119 java one-feedback_osaka
20161119 java one-feedback_osaka
Takashi Ito
 
PHP on Windows Azure in Open Source Conference
PHP on Windows Azure in Open Source ConferencePHP on Windows Azure in Open Source Conference
PHP on Windows Azure in Open Source Conference
Microsoft
 
Harmoware-VIS Tutorial
Harmoware-VIS TutorialHarmoware-VIS Tutorial
Harmoware-VIS Tutorial
Nobuo Kawaguchi
 
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説Akira Inoue
 
Open Liberty / WebSphere Liberty
Open Liberty / WebSphere LibertyOpen Liberty / WebSphere Liberty
Open Liberty / WebSphere Liberty
Takakiyo Tanaka
 
IT pro Special 登壇資料 Windows server 2003 移行先の選択と特徴
IT pro Special 登壇資料 Windows server 2003 移行先の選択と特徴IT pro Special 登壇資料 Windows server 2003 移行先の選択と特徴
IT pro Special 登壇資料 Windows server 2003 移行先の選択と特徴
NetApp Japan
 
OpenStack + KVM + IPv6 = oname.com; Next Folsom/Grizzly Service development s...
OpenStack + KVM + IPv6 = oname.com; Next Folsom/Grizzly Service development s...OpenStack + KVM + IPv6 = oname.com; Next Folsom/Grizzly Service development s...
OpenStack + KVM + IPv6 = oname.com; Next Folsom/Grizzly Service development s...Naoto Gohko
 
JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」
JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」
JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」
Takakiyo Tanaka
 
VIOPS03: VMware参考資料
VIOPS03: VMware参考資料VIOPS03: VMware参考資料

Similar to JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57 (20)

夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発
夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発 夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発
夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発
 
20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQL20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQL
 
XPagesDay 2014 - What's new in XPages NOW!
XPagesDay 2014 - What's new in XPages NOW!XPagesDay 2014 - What's new in XPages NOW!
XPagesDay 2014 - What's new in XPages NOW!
 
今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJava今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJava
 
たった1時間でシステム構築!“激速”環境構築を実現する“パターン技術”の秘密とは
たった1時間でシステム構築!“激速”環境構築を実現する“パターン技術”の秘密とはたった1時間でシステム構築!“激速”環境構築を実現する“パターン技術”の秘密とは
たった1時間でシステム構築!“激速”環境構築を実現する“パターン技術”の秘密とは
 
IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-
IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-
IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-
 
EMC様講演 OpenStack最新情報セミナー 2014年6月
EMC様講演 OpenStack最新情報セミナー 2014年6月EMC様講演 OpenStack最新情報セミナー 2014年6月
EMC様講演 OpenStack最新情報セミナー 2014年6月
 
TFセミナー マイクロソフト製品で作る Web インフラ 基本編
TFセミナー マイクロソフト製品で作る Web インフラ 基本編TFセミナー マイクロソフト製品で作る Web インフラ 基本編
TFセミナー マイクロソフト製品で作る Web インフラ 基本編
 
Windows環境でのMySQL
Windows環境でのMySQLWindows環境でのMySQL
Windows環境でのMySQL
 
WebSphere Application Server V8.5.5 Libertyプロファイルのご紹介 #jjug_ccc #ccc_r51
WebSphere Application Server V8.5.5Libertyプロファイルのご紹介 #jjug_ccc #ccc_r51WebSphere Application Server V8.5.5Libertyプロファイルのご紹介 #jjug_ccc #ccc_r51
WebSphere Application Server V8.5.5 Libertyプロファイルのご紹介 #jjug_ccc #ccc_r51
 
Introduction to web development 1
Introduction to web development 1Introduction to web development 1
Introduction to web development 1
 
20161119 java one-feedback_osaka
20161119 java one-feedback_osaka20161119 java one-feedback_osaka
20161119 java one-feedback_osaka
 
PHP on Windows Azure in Open Source Conference
PHP on Windows Azure in Open Source ConferencePHP on Windows Azure in Open Source Conference
PHP on Windows Azure in Open Source Conference
 
Harmoware-VIS Tutorial
Harmoware-VIS TutorialHarmoware-VIS Tutorial
Harmoware-VIS Tutorial
 
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
 
Open Liberty / WebSphere Liberty
Open Liberty / WebSphere LibertyOpen Liberty / WebSphere Liberty
Open Liberty / WebSphere Liberty
 
IT pro Special 登壇資料 Windows server 2003 移行先の選択と特徴
IT pro Special 登壇資料 Windows server 2003 移行先の選択と特徴IT pro Special 登壇資料 Windows server 2003 移行先の選択と特徴
IT pro Special 登壇資料 Windows server 2003 移行先の選択と特徴
 
OpenStack + KVM + IPv6 = oname.com; Next Folsom/Grizzly Service development s...
OpenStack + KVM + IPv6 = oname.com; Next Folsom/Grizzly Service development s...OpenStack + KVM + IPv6 = oname.com; Next Folsom/Grizzly Service development s...
OpenStack + KVM + IPv6 = oname.com; Next Folsom/Grizzly Service development s...
 
JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」
JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」
JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」
 
VIOPS03: VMware参考資料
VIOPS03: VMware参考資料VIOPS03: VMware参考資料
VIOPS03: VMware参考資料
 

More from Takakiyo Tanaka

OutOfMemoryErrorとは
OutOfMemoryErrorとは OutOfMemoryErrorとは
OutOfMemoryErrorとは
Takakiyo Tanaka
 
MicroProfile Starterで簡単スタート Open Liberty
MicroProfile Starterで簡単スタート Open LibertyMicroProfile Starterで簡単スタート Open Liberty
MicroProfile Starterで簡単スタート Open Liberty
Takakiyo Tanaka
 
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについて
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについてオープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについて
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについて
Takakiyo Tanaka
 
自分のDocker/Kubernetes環境を手に入れる ICP Community Editionで簡単構築
自分のDocker/Kubernetes環境を手に入れる ICP Community Editionで簡単構築自分のDocker/Kubernetes環境を手に入れる ICP Community Editionで簡単構築
自分のDocker/Kubernetes環境を手に入れる ICP Community Editionで簡単構築
Takakiyo Tanaka
 
クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?
クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?
クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?
Takakiyo Tanaka
 
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Takakiyo Tanaka
 
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
Takakiyo Tanaka
 
エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4
エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4
エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4
Takakiyo Tanaka
 
JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...
JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...
JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...
Takakiyo Tanaka
 
ついに始まるJava EE 7時代のアプリケーション開発
ついに始まるJava EE 7時代のアプリケーション開発ついに始まるJava EE 7時代のアプリケーション開発
ついに始まるJava EE 7時代のアプリケーション開発
Takakiyo Tanaka
 
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
Takakiyo Tanaka
 
Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51
Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51
Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51
Takakiyo Tanaka
 
Java EE 6で復活するエンタープライズJavaの世界
Java EE 6で復活するエンタープライズJavaの世界Java EE 6で復活するエンタープライズJavaの世界
Java EE 6で復活するエンタープライズJavaの世界
Takakiyo Tanaka
 

More from Takakiyo Tanaka (13)

OutOfMemoryErrorとは
OutOfMemoryErrorとは OutOfMemoryErrorとは
OutOfMemoryErrorとは
 
MicroProfile Starterで簡単スタート Open Liberty
MicroProfile Starterで簡単スタート Open LibertyMicroProfile Starterで簡単スタート Open Liberty
MicroProfile Starterで簡単スタート Open Liberty
 
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについて
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについてオープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについて
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについて
 
自分のDocker/Kubernetes環境を手に入れる ICP Community Editionで簡単構築
自分のDocker/Kubernetes環境を手に入れる ICP Community Editionで簡単構築自分のDocker/Kubernetes環境を手に入れる ICP Community Editionで簡単構築
自分のDocker/Kubernetes環境を手に入れる ICP Community Editionで簡単構築
 
クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?
クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?
クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?
 
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
 
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
 
エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4
エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4
エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4
 
JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...
JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...
JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...
 
ついに始まるJava EE 7時代のアプリケーション開発
ついに始まるJava EE 7時代のアプリケーション開発ついに始まるJava EE 7時代のアプリケーション開発
ついに始まるJava EE 7時代のアプリケーション開発
 
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
 
Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51
Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51
Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51
 
Java EE 6で復活するエンタープライズJavaの世界
Java EE 6で復活するエンタープライズJavaの世界Java EE 6で復活するエンタープライズJavaの世界
Java EE 6で復活するエンタープライズJavaの世界
 

JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57

  • 1. © 2014 IBM Corporation JJUG  CCC  2014  Spring IBM  SDK  for  Java  8の全貌 ⽇日本アイ・ビー・エム(株)盛林林 哲
  • 2. © 2014 IBM Corporation ⾃自⼰己紹介  2 2000  年年より  WebSphere  製品の技術者として活動。 サポートエンジニアを経て、現在はサービス部⾨門で  WAS  専⾨門家としてトラブルシュー トを数多く実施。 ヘルスチェックやパフォーマンスチェックなど安定稼働に取り組む。趣味スノーボード・写 真など。  
  • 3. © 2014 IBM Corporation IBM  Javaとは
  • 4. © 2014 IBM Corporation IBM  SDK  for  Javaとは 4 Java  SDK  =  JRE  +  DevTools Java実⾏行行環境 開発に使⽤用する各ツール群 Java  API JVM GC/MemoryManagement JIT/Interpreter RAS (SPEC準拠)
  • 5. © 2014 IBM Corporation IBM  Java  Runtime:  J9VMとは § IBM  Java  5から標準採⽤用されている新しい実装のVM (IBM  Java  1.3.1  および  1.4.2  でも開発環境における⾼高速デバッグ⽤用に⼀一部含まれていた) § マイクロエディション  (J2ME)から発展 § ⾼高パフォーマンスの実⾏行行環境 § 15種類以上のプラットフォームをサポート § ダンプやトレースによる強⼒力力な診断機能 § 各種分析ツール
  • 6. © 2014 IBM Corporation IBM  Java  Runtime:  ガーベッジ・コレクション(GC) § J9VMの実装 § CPU能力を活用したマルチスレッド処理 § 複数のGC方式を提供 GCの種類 説明 optthruput スーループットに最適化されたIBM  Java登場時から利利⽤用されているGC⽅方式。Mark,Sweep,Compactionの3つの処理理で成り⽴立立 つ。保守的GCと呼ばれる。 optavgpause 停⽌止時間に最適化されたGC。保守的GC利利⽤用時に、ヒープ中のオブジェクト数が増えるとMark処理理が⻑⾧長時間化し、アプリケーション 停⽌止時間が⻑⾧長い問題を防ぐ。Mark処理理をGC実⾏行行時以外にも平⾏行行して⾏行行う。 subpool ヒープレイアウトはoptthruputと同じ。⼤大規模環境で問題となるオブジェクト割り当てを⾼高速化するため、フリーリストをサイズ別に構 造化管理理。(AIX,ppcLinux,i5,zLinux,zOSで使⽤用可能)現在はoptthruputに統合された。 gencon 世代別GC。オブジェクトの存在時間に着⽬目してヒープ領領域をNew/Oldに分割し、New領領域にスカベンジGC(オブジェクトのコピー による処理理)、Old領領域にoptturuput⽅方式を⽤用いる。IBM  Java5から利利⽤用可能。WASV8から標準構成。 metronome IBM  Java7から評価⽤用に提供。(Winを除く)IBM  WebSphere  RealTime  製品により正式サポート利利⽤用可能。ミリ秒単位に 分割されたGCで、制御系や処理理の応答速度度重視のアプリケーション(例例:アルゴリズムトレーディング等)に有⽤用。http:// www.ibm.com/developerworks/jp/java/library/j-‐‑‒rtj4/ balanced バランスGC。Java7より利利⽤用可能。世代別GCの強みを活⽤用し、複数の処理理を効果的に組み合わせたGC。ヒープ領領域を多数に分 割し、GC対象とGCの処理理を動的に選択して処理理することで、⼤大規模メモリー、⼤大規模CPU環境において問題が顕著となるグローバ ルGCの発⽣生を抑える。
  • 7. © 2014 IBM Corporation IBM  Java  Runtime:バランスGCとは § 世代別GCの課題 ⇒グローバルGCの発⽣生 § 解決策 ⇒ バランスGC  OLDNew 通常のスカベンジGCの範囲 グローバルGCの範囲 Javaヒープ構造 ⼤大規模JVMでは致命的ともいえる⻑⾧長時間GCの発⽣生につながる恐れ Javaヒープ領領域を1024〜~2047個に分割して個別管理理(各領領域サイズは512KB,1MB,2MB,4MB,8MB...で⾃自動選択) Javaヒープ構造 割り当て 割り当て 割り当て Copying ←パーシャルGCと呼ばれる •  通常はパーシャルGCが若若いオブジェクトが多い領領域を重点に⾃自動的に実⾏行行される •  パーシャルGCの効率率率が下がると、GlobalMarkを実⾏行行、各領領域の状況を判定して、パーシャルGCの効率率率を上げる •  メモリー不不⾜足だとグローバルGCが発⽣生する場合があるが、世代別GCより発⽣生を抑えられる
  • 8. © 2014 IBM Corporation IBM  Java  Runtime:バランスGCとは §  バランスGCポリシーを使⽤用するための条件 –  64bitプラットフォーム上の64bit  JVMを使⽤用している –  4G以上のJavaヒープ領領域を割り当てている §  バランスGCポリシーが効果を発揮するために有利利な条件 –  実⾏行行しているH/Wが
 NUMA  (Non-‐‑‒Uniform  Memory  Architecture)  特性を持っている –  アプリケーションが,多数のスレッドが並⾏行行稼働するようになっている –  アプリケーションが,動的なクラスのロード(リフレクション)を多⽤用している §  バランスGCポリシーを利利⽤用するべきでない条件 –  Javaヒープ・サイズの使⽤用率率率が恒常的に⾼高い/空き領領域がほとんどない –  サイズの⼤大きい配列列(最⼤大ヒープ・サイズの0.1%より⼤大きいサイズ)を
 多⽤用している リーフポインターを使⽤用して複数の領領域に分割格納する dWおよびWASV8アナウンスメントワークショップ(JVM設計)より
  • 9. © 2014 IBM Corporation IBM  Java  Runtime:  Just  In  Time  Compiler(JIT) § J9VMの実装 (通称Testarossa) § 独立したコンパイルスレッド  –  プロファイルスレッドが  “hotness”の判定実施 – メソッドはコンパイルのためにQueueされる – 5  つの最適化レベル – メソッド再コンパイルが可能 強 弱 1.  scorching   2.  veryHot   3.  hot   4.  warm   5.  cold   6.  noOpt コンパイル キュー コンパイル スレッド プロファイル スレッド Impact2014より
  • 10. © 2014 IBM Corporation IBMのJava  SE  テクノロジーへのアプローチ 10 Java テクノロジ リファレンス
 Oracle,  open
 source,  等 IBM Java IBM  Java Technology Centre 品質技術 パフォーマンス セキュリティー 信頼性 保守性 製品要望 IBM  Software  Group IBMサーバー ISV IBMユーザー ü  ワールドクラスのサービスおよびサポート ü  最も多くのプラットフォームで利利⽤用可能 ü  IBM主要ミドルウェアやお客様シナリオに最適化 ü  ハードウェア、ソフトウェア双⽅方の能⼒力力を最⼤大化 XML Crypto CORBA J9 Virtual machine Impact2014より
  • 11. © 2014 IBM Corporation IBMはアプリケーションの⾼高い要求に応えるために
 Javaテクノロジーに取り組んでいます 11 ●  パフォーマンス –  パフォーマンスはJavaユーザーにとって重要です –  IBMはパフォーマンス技術に関する多くの経験があり、⾼高パフォーマンスで拡張性のあるソリューションの開発に深い関⼼心を持って取り組 んでいます –  この経験を⽣生かし、サポートするプラットフォーム全体にわたり最良良のパフォーマンスを得るために、ハードウェア、オペレーティング・システム およびミドルウェアのデザイナーと密接に連携しています ●  セキュリティー –  IBMはXMLセキュリティー標準で⼤大きな貢献を⾏行行っています –  FIPS準拠のJCE、JSSEプロバイダーを提供し、そして多くのハードウェア暗号装置をサポートしています ●  信頼性 –  Javaはミッション・クリティカルなアプリケーションで使⽤用されています –  ⾼高信頼性のために、IBMはJava  Runtime⼼心臓部のエンジンに細⼼心の注意を払いながら、JVMの再デザインを⾏行行っています ●  保守性 –  障害発⽣生時には、迅速に問題を⾒見見つけて切切離離すことは重要です –  IBMは確実に素早く問題解決するために、トレース、ログ、初期障害データ・キャプチャー機能  (FFDC)、デバッグおよびパフォーマンス ⽤用のインターフェース、ツールを重視しています ●  拡張性   –  数多くの設定項⽬目 –  Plug可能なインターフェース –  クラス・ライブラリの独⽴立立性 Impact2014より
  • 12. © 2014 IBM Corporation 2006 2007 2008 2009 2010 2011 2012 2013 2014 Java  SE  リリース 12 •  パフォーマンス改善 •  UIの改良 •  Client Webサービス のサポー ト Java 6.0 改良点 • 起動時間の短縮 • スループット向上 • 新たにバランスGCの追加 • 保守ツールの新機能 • ソフト・リアルタイム評 価版 • POWER7およびz196上で のパフォーマンス向上 IBM Java 7.0 •  Solaris x86-64 •  Solaris SPARC •  Solaris x86 •  Windows IA32 •  Windows AMD64 •  Windows EAMT64 •  Linux IA32 •  Linux AMD64 •  Linux EAMT64 •  zOS 64 •  AIX PPC 32 •  AIX PPC 64 •  iSeries (via PASE) •  Linux PPC 32 •  Linux PPC 64 •  zLinux 31 •  zLinux 64 •  HP-UX PA-RISC 32 •  HP-UX PA-RISC 64 •  HP-UX IA64 •  zOS 31 IBM サポート プラットフォーム (Java 6.0/7.0) •  言語の変更 •  New IO API(NIO2) •  Java persistance API •  SWINGの使いやすさの向上 Java 7.0 •  改良点 • プラットフォームカバレッ ジ • パフォーマンス • 保守ツール •  新機能 • IBM WebSphere Real-Time V1.0 IBM Java 6.0 Solaris x64 Solaris SPARC Solaris x86 Windows IA32 Windows AMD64 •  Windows EAMT64 •  Linux IA32 •  Linux IA64 •  Linux AMD64 •  Linux EAMT64 Oracle サポート プラットフォーム (Java 6.0) 8.0 Java 7R1 21 プラットフォーム 対応 IBM Java 7.1 新プラットフォーム対応 POWER 8 zEC12 • 新機能 •  Data Access Accelerator •  RDMA •  評価版 •  マルチテナンシー •  Packed Objects •  改良点 •  サービス •  パフォーマンス •     ツール •  ラムダ式 •  日付時刻API •  タイプアノテーション Java 8.0 Java 6.0 21 プラットフォーム対応 Java 7.0 21プラットフォーム対応 7.0 6.0 Impact2014より ※HP,SolarisはIBMのクラスライブラリを追加したもの
  • 13. © 2014 IBM Corporation IBM  Java  8の新機能 
  • 14. © 2014 IBM Corporation Java8で採⽤用されたフィーチャー 14 ●  Language –  Access  to  Parameter  Names  at  Runtime –  Add  Javadoc  to  javax.tools  (JSR  199  MR) –  Annotations  on  Java  Types  (JSR  308) –  Generalized  Target-‐‑‒Type  Inference  (JSR  335) –  Lambda  Expressions  &  Virtual  Extension  Methods  (JSR  269  MR,  335) –  Repeating  Annotations  (JSR  269  MR,  337) ●  Core  Libraries –  Base64  Encoding  &  Decoding –  Bulk  Data  Operations  for  Collections  (JSR  335) –  Concurrency  Updates –  Date  &  Time  API  (JSR  310) –  Enhance  Core  Libraries  with  Lambda  (JSR  335) –  JDBC  4.2  (JSR  114  MR,  221  MR) –  Parallel  Array  Sorting ●  I18n –  BCP  47  Locale  Matching –  Unicode  6.2 ●  Security –  Configurable  Secure  Random-‐‑‒Number  Generation –  Enhance  the  Certificate  Revocation-‐‑‒Checking  API –  Limited  doPrivileged –  NSA  Suite  B  Cryptographic  Algorithms –  TLS  Server  Name  Indication  (SNI)  Extension ●  Platform –  Compact  Profiles –  Prepare  for  Modularization  (JSR  160  MR,  173  MR,  206  MR,  337) http://openjdk.java.net/ Impact2014より
  • 15. © 2014 IBM Corporation IBM  Java8に追加されるフィーチャー 15 § Java  SE8  (JSR  337)互換 § 最新のIBMハードウェアへの対応 – (例例:  IBM  zEnterprize  EC12、POWER8) § アプリケーション変更更をせずスループットを向上させるワークロード最適化ラ ンタイムの改善 § クラウド、マルチテナンシー環境のサポート強化 § Javaコードからnativeデータ・レコードやタイプへのアクセスの効率率率改善 (予定) Impact2014より
  • 16. © 2014 IBM Corporation IBM  Java  8を使うには..  16 ●  IBM  Java8  GA版は2014年年11⽉月に提供開始予定です。 ●  現在  IBM  Java8  Beta3が利利⽤用可能です。 ●  http://www.ibm.com/developerworks/java/jdk/beta/ ●  IBM  Java8に搭載される先進機能は、2013年年12⽉月6⽇日に正式リリ ースされたIBM  Java7Release1でも利利⽤用できます。  (2014年年5⽉月現在の情報です)
  • 17. © 2014 IBM Corporation IBM  Java  7  Release1の新機能 
  • 18. © 2014 IBM Corporation IBM  Java7  Release  1の機能  18 § Java  SE7  (JSR  336)互換 § IBM  Java7と平⾏行行して提供 § 最新機能の提供 – z/OS  V2.1,zEC12,  zBC12の機能に対応 – POWER8の機能に対応 – アプリケーション変更更無しでスループット向上 – Javaコードからnativeデータ・レコードやタイプへのアクセスのサポート 強化(評価版) – より多くの調査を迅速に⾏行行うための診断機能とモニタリング機能の改 善 – アプリケーション密度度の向上実現する機能(評価版) Impact2014より
  • 19. © 2014 IBM Corporation IBM  Java  SDK:  モニタリングおよび管理理ツール 19 アプリケーション・モニタリングおよび問題の診断ツールは以下の特徴があります。 ●  無償で統⼀一化されたツール群により、Javaアプリケーションの特性を把握可能 ●  軽量量でパフォーマンスへの影響は最⼩小のままアプリケーションのモニタリングおよび診断が可能 ●  可視化だけではなく、監視・診断結果やユーザーに推奨する設定内容を提⽰示 各ツールの説明 http://www.ibm.com/developerworks/java/jdk/tools/index.html p  Interactive  Diagnostic  Data  Explorer p  Garbage  Collection  and  Memory  Visualizer p  Memory  Analyser p  Health  Center IBM  Monitoring  and  Diagnostic  Tools  for  Java Impact2014より eclipse market placeからも提供 eclipse market placeからも提供 eclipse market placeからも提供 ※IBMのサイトから提供  ※参考情報 http://bit.ly/1j6Dr2N
  • 20. © 2014 IBM Corporation 例例:  HealthCenter 20 HealthCenter:  実サービス環境で利利⽤用可能な低負荷なプロファイリングツール   IBM  JVM HealthCenter クライアント(RCP)HealthCenter エージェント Windows/Linux TCP/IP ログ ログ 項⽬目 設定内容 Baseline Health  Centerを完全に無効化した場合 Dormant Health  Centerエージェントはロードされているが活動していない場合 Network  Client Health  Centerエージェントを活動させ、ネットワーククライアントを接続している場合 Headless  Client Health  Centerエージェントをロードし、ローカルのログに記録する場合 Headless  Client  with  ZIP Health  Centerエージェントをロードし、ローカルのログににZIPで記録する場合 エージェントをロード・活動化してモニターした ほうがスループットが⾼高い! •  CPU •  I/O •  GC •  クラス •  スレッド •  ネイティブ・メモリー詳細 •  メソッド・トレース •  アプリケーションロック エージェントはIBMJava標準同梱 java -jar healthcenter.jar をIBM  JVM同⼀一OS上で実⾏行行すると、稼働中のJVMに HealthCenterエージェントを動的にロードして利利⽤用可能 出典元: http://www.slideshare.net/cnbailey/javaone2013-‐‑‒build-‐‑‒your-‐‑‒own-‐‑‒runtime-‐‑‒monitoring-‐‑‒for-‐‑‒the-‐‑‒ibm-‐‑‒jdk-‐‑‒with-‐‑‒the-‐‑‒health-‐‑‒center-‐‑‒api zipまたはflat 実稼働環境におけるアプリケーションの課題把握に有⽤用 Eclipse  Market  Placeからプラグイン提供中 15種類以上のプラットフォーム
  • 21. © 2014 IBM Corporation 強化されたモニタリング、診断機能 21 ■  機能向上のポイント p  javacoreファイルへの追加情報 p  com.ibm.jvm.Dump  APIの強化 p  JIT  診断機能の改善 p  SDK  メソッド・トレースのパフォーマンス改善 p  トレース・ポイントのサブスクライブのJVMTI拡張 p  SDKのトレース・ポイントの追加 ■  ユーザーのメリット p  APIの改良良によりJavaアプリケーションによるダンプの取得と診断がより便便利利に  p  javacoreの環境およびスレッド・セクションに新たに追加された情報は初期障害診断に有⽤用 p  新しいJITダンプ機能により、迅速な調査およびJITの初期障害診断を実現 p  トレース設定時のアプリケーション・スループットの向上で、Javaアプリケーション・フローの調査 にも強⼒力力なSDK環境を提供 p  他のソフトウェアコンポーネントとSDKトレース機能の統合 p  トレース・ポイントの対象拡⼤大によるSDKの保守性の改善 IBM  Java  Version  7  Release  1   Impact2014より
  • 22. © 2014 IBM Corporation 例例:javacoreファイルへの追加情報 22 3XMTHREADINFO            "WebContainer  :  0"  J9VMThread:0x0000000016295800,  j9thread_̲t:0x00002AAABADE8040,  java/lang/Thread: 0x0000000001426508,  state:P,  prio=5 3XMJAVALTHREAD                        (java/lang/Thread  getId:0x3E4,  isDaemon:true) 3XMTHREADINFO1                        (native  thread  ID:0x93F,  native  priority:0x5,  native  policy:UNKNOWN) 3XMTHREADINFO2                        (native  stack  address  range  from:0x0000000043B34000,  to:0x0000000043B75000,  size:0x41000) 3XMCPUTIME                              CPU  usage  total:  6.866931193  secs 3XMTHREADBLOCK          Parked  on:  java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject@0x0000000001919F88  Owned  by:   <unknown> 3XMHEAPALLOC                          Heap  bytes  allocated  since  last  GC  cycle=2048  (0x800) 3XMTHREADINFO3                      Java  callstack: 4XESTACKTRACE                                at  sun/misc/Unsafe.park(Native  Method) 4XESTACKTRACE                                at  java/util/concurrent/locks/LockSupport.parkNanos(LockSupport.java:222(Compiled  Code)) 4XESTACKTRACE                                at  java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java: 2127(Compiled  Code)) 4XESTACKTRACE                                at  com/ibm/ws/util/BoundedBuffer$GetQueueLock.await(BoundedBuffer.java:286(Compiled  Code)) 4XESTACKTRACE                                at  com/ibm/ws/util/BoundedBuffer.waitGet_̲(BoundedBuffer.java:425(Compiled  Code)) 4XESTACKTRACE                                at  com/ibm/ws/util/BoundedBuffer.take(BoundedBuffer.java:823(Compiled  Code)) 4XESTACKTRACE                                at  com/ibm/ws/util/ThreadPool.getTask(ThreadPool.java:1036(Compiled  Code)) 4XESTACKTRACE                                at  com/ibm/ws/util/ThreadPool$Worker.run(ThreadPool.java:1888) 3XMTHREADINFO3                      Native  callstack: 4XENATIVESTACK                              (0x00002AAAAB0A3122  [libj9prt26.so+0x13122]) 4XENATIVESTACK                              (0x00002AAAAB0B079F  [libj9prt26.so+0x2079f]) 4XENATIVESTACK                              (0x00002AAAAB0A2E6B  [libj9prt26.so+0x12e6b]) 4XENATIVESTACK                              (0x00002AAAAB0A2F67  [libj9prt26.so+0x12f67]) 4XENATIVESTACK                              (0x00002AAAAB0B079F  [libj9prt26.so+0x2079f]) 4XENATIVESTACK                              (0x00002AAAAB0A2A8B  [libj9prt26.so+0x12a8b]) 4XENATIVESTACK                              (0x00002AAAAB09C8E2  [libj9prt26.so+0xc8e2]) 4XENATIVESTACK                              (0x000000352020EBE0  [libpthread.so.0+0xebe0]) 4XENATIVESTACK                              pthread_̲cond_̲timedwait+0x120  (0x000000352020B1C0  [libpthread.so.0+0xb1c0]) 4XENATIVESTACK                              j9thread_̲park+0xfe  (0x00002AAAAAE7EACE  [libj9thr26.so+0x5ace]) 4XENATIVESTACK                              (0x00002AAAB030A12D  [libjclscar_̲26.so+0x5712d]) 4XENATIVESTACK                              sun_̲misc_̲Unsafe_̲park+0x64  (0x00002AAAB02FD160  [libjclscar_̲26.so+0x4a160]) Javaスレッド毎の合計 CPU使⽤用量量が判 る!! Javaスレッド毎に前回の GC後に割り当てたヒープ 量量が判る!! 0SECTION ENVINFO subcomponent dump routine NULL ================================= .... 1CISYSINFO System Information NULL -------------------------------------------------------------------- 2CISYSINFO Hypervisor name = VMWare •  スレッド情報セクション抜粋 •  システム情報セクション抜粋 JVMが稼働するOSが実 ⾏行行されるハイパーバイザー 情報が判る
  • 23. © 2014 IBM Corporation 例例:ダンプ機能周りの改善 23 項目 設定内容 Javacore JVMの内部情報をテキストファイルに書き出す。 Heapdump JVMのJavaヒープの情報をファイルに書き出す。パック・オブジェクト書き出しに対応。 Snapdump JVMのトレースバッファの情報をファイルに書き出す。(フライトレコーダ) Systemdump JVMのプロセス全体のイメージを書き出す。(OSのプロセスダンプ) jitdump JVMのJITコンパイラの詳細情報をファイルに書き出す。-‐‑‒Xdump:jitで制御。JIT問題判別⽤用。 New New •  com.ibm.jvm.Dump  APIの強化 •  ダンプの種類と内容 (JIT診断機能の改善) 以下の新しいメソッドをアプリケーションが利利⽤用可能です。 ダンプのファイル名を取得できます。 String  javaDumpToFile() String  heapDumpToFile() String  systemDumpToFile() String  snapDumpToFile() ダンプのファイル名を指定ができます。 ファイル名には%dateや%pidなどのトークンが利利⽤用可能です。 String  javaDumpToFile(String  fileName) String  heapDumpToFile(String  fileName) String  systemDumpToFile(String  fileName) String  snapDumpToFile(String  fileName) ダンプのトリガーにはAPI呼び出し以外にも17種類以上の詳細なイベントに条件設定可能。
  • 24. © 2014 IBM Corporation zEC12  ハードウェア新機能への対応  24 z/OS上のJavaへの積極的な投資を継続 Javaに合わせて協調設計された、⼀一連の重要なハードウェ ア新機能 ハードウェア・トランザクション・メモリー  (HTM)   マルチスレッド・アプリケーションにおける並⾏行行性の向上 例例:  juc.ConcurrentLinkedQueueが最⼤大2倍以上 Runtime  Instrumentation  (RI)機構 ランタイムを管理理するために設計された⾰革新的な新しいハードウェア機構 JRE最適化の新たな拡張を実現 2GBのページ・フレーム 64-‐‑‒bitヒープのパフォーマンス向上 Flash  Expressによる1MBラージ・ページ メモリー管理理⽅方法の多様化 ソフトウェアの新しいヒント/ディレクティブ データの⽤用途に従ったキャッシュ管理理が向上 分岐のプリロードにより分岐予測が向上 zEnterprise  Data  Compression  accelerator gzip  アクセラレーター 新しいトラップ命令令 暗黙的な境界/NULLチェックのオーバーヘッド削減 新しい  5.5  GHz  6コア・プロセッサー・チップ ⼤大容量量キャッシュ  によるデータ・サービスの最適化   第2世代  OOO  design Java処理理において60%のスループット向上 zEC12  およびIBM  Java7SR3使⽤用 出典:Engineered  Together̶—IBM  Java  and  zEC12  Boost  Workload  Performance http://www.ibmsystemsmag.com/mainframe/trends/whatsnew/java_̲compiler/ Impact2014より
  • 25. © 2014 IBM Corporation Power  8  プロセッサー新機能への対応 25 ■  Power  8  プロセッサのフィーチャー -‐‑‒  ハードウェア・トランザクション・メモリー(HTM) -‐‑‒  Runtime  Instrumentation(RI)機構 -‐‑‒  AES  暗号処理理 -‐‑‒  Polynomial  multiplication-‐‑‒sum -‐‑‒  Direct  move -‐‑‒  Vector  load/store -‐‑‒  SMT8 -‐‑‒  16バイト  larx/stcxlq/stq ここでご紹介したzEC12およびPower8新機能への対応はIBM  J9  JVMとJITコンパイラ―によっ て直接使⽤用されている機能です。 いずれもパフォーマンス等の利利⽤用者へのメリットを提供するものであり、既存のJavaアプリケーション および開発者への影響をあたえるものではありません。 ⼤大幅なパフォーマンスの向上を達成!!!  Java  7  SR4  と⽐比較し、  SPECjbb2013  ʻ‘max-‐‑‒jOPSʼ’  で10%以上のパフォーマンス改善するという⽬目標を達成 しました。さらに以下の改善を達成しています。 ●   13%  のスループット、26%  応答時間改善:  Watson ●   30%のスループット向上:  ILOG ●   3-‐‑‒5%  のスループット向上:  DayTrader3 ●   RMI-‐‑‒IIOPのマーシャル/アンマーシャル処理理のパフォーマンスはWeblogic   t3に⽐比較し3.8倍、Day-‐‑‒traderでは8.5%向上 Impact2014より この結果。。。
  • 26. © 2014 IBM Corporation26 新たな機能のご紹介〜~
  • 27. © 2014 IBM Corporation27 JSoR(RDMAサポート) マルチテナンシー Data  Access   Accelerators(DAA) パック・オブジェクト Impact2014より
  • 28. © 2014 IBM Corporation JSoR:  Remote  Direct  Memory  Access  (RDMA)  通信 28 ●  低遅延、⾼高スループットネットワーク  を活⽤用(10/40/56  Gbps) ●  リモートホスト間でのアプリケーションからアプリケーションへの直メモリー・アクセス ●  ネットワーク処理理を  RDMA  NIC/HCAにオフロードし、  OS/カーネルをバイパス  (Z-‐‑‒Copy) ●  java.net.Socket  APIでそのまま利利⽤用可能な実装   (JSoR=Java  Socket  over   RDMA) Java Application Server Buffer Off Heap Buffer Java Application Client Buffer Off Heap Buffer Ether/IB SwitchRDMA NIC/HCA RDMA NIC/HCA OS OS DMA DMA (Z-Copy) (Z-Copy) (B-Copy)(B-Copy) Acronyms: Z-Copy – Zero Copy B-Copy – Buffer Copy IB – InfiniBand Ether - Ethernet NIC – Network Interface Card HCA – Host Control Adapter Impact2014より
  • 29. © 2014 IBM Corporation JSoR/RDMA通信のパフォーマンス  29 JSoRはTCP/IPや、IPoIB、SDPよりも優れたデータ転送能⼒力力が⽰示されています 参考:NetPIPE  for  Java  Benchmark  -‐‑‒  http://bitspjoule.org/netpipe/ Impact2014より
  • 30. © 2014 IBM Corporation マルチテナンシー概要  30 アプリケーション密度度:    単⼀一のハードウェア上でどれだけのアプリケーションを集約できるかの指標 課題:多くのJavaアプリケーションの密度度向上を妨げる要因 ⇒ メモリー 巨⼤大にもかかわらずJVM間で共有できていないメモリー領領域  » Javaヒープ » JITコンパイル・コードとメタデータ   多くのJVMはフットプリントよりパフォーマンス・チューニングに重点 同⼀一OS上で複数のJVM間でGC、JITサービスは連携していない 解決策:マルチテナンシー マルチテナンシー機能により、JVMがʼ’仮想化ʼ’され、アプリケーションの変更更なしに複数のアプリケーションが 単⼀一のランタイムを共有できる。H/W上のハイパーバイザーと同様のコンセプトで、これによりアプリケー ションのリソースを積極的に共有。 Technology Preview Impact2014より
  • 31. © 2014 IBM Corporation マルチテナンシー:IBMのJVM仮想化へのアプローチ 31  〇通常のjava環境  3つの個別(共有されていない)のJVMが起動されます。 
 
  〇IBMマルチテナンシーJVM環境 各javaコマンドは軽量量なマルチテナント・プロキシ―  JVMを⽣生成します。マルチテナント・プロキシ―は javadと呼ばれる共有JVMデーモンとの通信を⾏行行います。 ●  javadは⾃自動的に起動・ 停⽌止します ●  javadはランタイム機能の 共有を積極的に⾏行行います 例例:3つのJavaアプリケーションを1つのコンピュータ上で実⾏行行 JVM ヒープ + クラス java JVM ヒープ + クラス java JVM ヒープ + クラス java JVM ヒープ + クラス javad java マルチテナント プロキシー java マルチテナント プロキシー java マルチテナント プロキシー Technology Preview Impact2014より
  • 32. © 2014 IBM Corporation マルチテナンシー:リソース管理理 32 テナントのリソース消費の上限はポリシーで制限されます。 制御対象はCPU使⽤用率率率、スレッド数、ヒープ・メモリー、Disk、ネットワークI/O。 使⽤用率率率はテナント毎に以下のJava引数で制御されます。 -‐‑‒Xlimit:<resource_̲name>=<min_̲limit>-‐‑‒<max_̲limit> <min_̲limit>:  起動時に割り当てられる最⼩小のリソースの合計 <max_̲limit>:  利利⽤用可能な最⼤大のリソースの合計 テナント テナント 要求 割合 制御 テナント 割り当て テナント テナント テナント テナント テナント テナント 例例: CPUに負荷を与えるアプリケーションとして、それ ぞれ全く同じフィボナッチ計算を実⾏行行させる。ただ し、CPUをそれぞれ60%と30%と異異なった割り 当てにする。 java  -‐‑‒Xmt  -‐‑‒Xlimit:cpu=60  -‐‑‒jar  fibbonacci
 java  -‐‑‒Xmt  -‐‑‒Xlimit:cpu=30  -‐‑‒jar  fibbonacci Technology Preview Impact2014より
  • 33. © 2014 IBM Corporation マルチテナンシー関連:管理理ツールの強化 33 課題: クラウドやマルチテナンシーといった環境で、Javaプログラムがホスト環境のリソースなどの変更更に合わせた ⾃自⼰己変化・適応を⾏行行うためには、基準となる情報が不不⾜足している。 ⇒ネイティブ・コードの追加をせずにリソースの状況(空きなど)を検出・特定する必要性 新たな管理理ツールの提供: ●  より詳細な環境情報を提供する新しいJMX  Bean メリット: リソース消費情報を得るためのネイティブ・コードを記述する必要が無い JVMおよびミドルウェアは環境に合わせて正しいサイズに調整できる。 例例:コア・ファイルのサイズ、個数およびメモリー・サイズ等 仮想化環境の詳細(ハイパーバイザー)はRAS機能にも提供される。 種類 内容 インターフェース OperatingSystemMXBean メモリー、CPU使⽤用率率率 com.ibm.lang.management.OperatingSystemMXBean HypervisorMXBean ハイパーバイザーの特定 com.ibm.virtualization.management.HypervisorMXBean GuestOSMXBean VM/LPAR構成の詳細とゲストOSの統 計モニター(メモリー、CPU) com.ibm.virtualization.management.GuestOSMXBean Impact2014より
  • 34. © 2014 IBM Corporation DAA 34 Javaはパック10進数の表現を備えていない 2つのパック10進数の加算は次のような操作が必要です –  byte[]  から  BigDecimalへの変換 –  BigDecimalの加算 –  BigDecimal演算結果を再びbyte[]に変換 IBM  Javaはこの操作をするためにヘルパーメソッドを提供します 従来のアプローチ: byte[] addPacked(byte[] a, byte[] b) { BigDecimal a_bd = convertPackedToBd(a[]); BigDecimal b_bd = convertPackedToBd(b[]); a_bd.add(b_bd); return (convertBDtoPacked(a_bd)); } BigDecimal convertPackedToBd(byte[] myBytes) { ... } 新しいアプローチ: (イメージ) byte[] addPacked(byte[] a, byte[] b) { DAA.addPackedDecimal(a[], b[]); return (a[]); } 例例:パック10進数に加算処理理を⾏行行う 詳しくは、com.ibm.dataaccessパッケージの  API  資料料を参照してください。 •  パック  10  進数演算: 算術演算 ⽐比較演算 他の  10  進数型  (外部  10  進数型、Unicode  10  進 数型など)  とプリミティブ型との間の型変換 妥当性検査 演算の桁移動と桁送り •  外部  10  進数型と  Unicode  10  進数型との間の   BigDecimal  および  BigInteger  型変換 •  マーシャル・オペレーション:  プリミティブ型  (short、int、long、 float、および  double)  とバイト配列列との間のマーシャルとアンマ ーシャル メソッドで提供する機能 Impact2014より
  • 35. © 2014 IBM Corporation Data  Access  Accelerator  (DAA)  概要 35 課題:ビッグデータやアナリティクス、⾔言語間の通信といったデータセントリックなタスクでは、Javaからネイ ティブ・フォーマットのデータレコードや型に最良良のパフォーマンスでアクセスや操作することが求められま す。オブジェクトの作成、データのコピー、抽象化、ボクシング等の防⽌止が必要となってきます。 必要最⼩小限のデータ変換と演算等のためのDAA Javaライブラリーの提供。 »  バイト配列列での直接演算 »  プラットフォームに合わせた強⼒力力な最適化のためにJITと連携 »  IBM  JITと連動し、中間Javaオブジェクトは作成しない »  提供機能による操作により⾼高コストなJavaオブジェクトインスタンス化の回避 メリット: ハードウェア・アクセラレータをプラットフォームに依存せず使⽤用 (2  –  100倍のスピードアップ) レコードのパース処理理を⾏行行うフレームワークで⼤大幅なスピードアップを実現 データのマーシャリングや⾔言語間の通信に⼤大幅なスピードアップを実現 Impact2014より
  • 36. © 2014 IBM Corporation パック・オブジェクト概要 36 パック・オブジェクトは、IBM  Javaランタイムの拡張機能で標準化されていない⾔言語です。現在テクノロジー・ プリビューの位置づけです。   フィードバックを得るために提供をしているため、正式サポート(保証)は提供しておらず、Java⾔言語への正 式追加を将来約束するものではありません。 パック・オブジェクトは、Javaオブジェクトのメモリー・レイアウトについて、より綿密なコントロール⼿手段を開発者 に提供します。 なぜ必要? ✔  JavaオブジェクトのシリアライズとI/Oの改善 ✔  ネイティブ・データ(オフヒープ)への直接アクセスを可能にする ✔  コンパクトなデータ構造に関する表現がソース上で明確に メリット: フットプリント、シリアライズ処理理のパフォーマンス向上、より細かいデータ管理理、⾔言語間の通信の向上のため、 Javaの構造化データをサポート Technology Preview ネイティブ・メモリー上のデータ構造 20byte Javaヒープ上のデータ構造 72byte I/O Impact2014より
  • 37. © 2014 IBM Corporation パック・オブジェクト:ヒープ参照データ 37 int y int x aPoint Object header Object field / data int y int x aPointPoint b Point a aLine Point c int y int x aPoint 例例:Javaで効率率率よくpointオブジェクトを連続的に表現したい Technology Preview Impact2014より
  • 38. © 2014 IBM Corporation パック・オブジェクト:ヒープ参照データ 38 int y int x aPoint Object header Object field / data int y int x aPointPoint b Point a aLine int y int x int y int x aPackedLine offset target Point c int y int x aPoint int y int x @Packed final class PackedPoint extends PackedObject { int x; int y; } @Packed final class PackedLine extends PackedObject { PackedPoint a; PackedPoint b; PackedPoint c; } aLine.a aLine.b aLine.c Technology Preview Impact2014より
  • 39. © 2014 IBM Corporation パック・オブジェクト  ネイティブ・メモリーのサポート 39 §  Javaでは直接アクセスするためにはJavaオブジ ェクトである必要がある §  外部データはJavaヒープ・フォーマットに読み込 む必要がある-‐‑‒変換コストは⾼高い §  データのコピーとヘッダーのためデータの肥⼤大化が 発⽣生 §  通常のオブジェクトではデータの局所性が維持さ れない §  パック・オブジェクトは任意のフォーマットのデータに 不不要なコピーや変換を⾏行行わず直アクセスが可能 §  パック・オブジェクトはネイティブ・メモリーまたはJav aヒープ上のどちらでも良良い data data copy header array  [      ] オブジェクト header data copy header data copy header data copy header data data data Javaヒープ上 のオブジェクト ネイティブ・ メモリー パック array  [      ] ネイティブ・ メモリー または Javaヒープ 例例:ネイティブ上のデータ・レコードをJavaから操作する Technology Preview Impact2014より
  • 40. © 2014 IBM Corporation パック・オブジェクト:  ネイティブへのアクセス例例 40 int y int x Object header Struct field / data offset target aPackedLine Java Native Ø @Packed final class PackedPoint extends PackedObject { int x; int y; } int y int x int y int x Technology Preview Impact2014より
  • 41. © 2014 IBM Corporation パック・オブジェクト:  考慮点  41 Technology Preview •  パック・オブジェクトを使⽤用するにはJVM起動時に次の引数を指定 する必要があります。 -‐‑‒XX:+PackedObject •  以下のGC⽅方式のみが利利⽤用可能です •  gencon •  optthruput •  optavgpause •  圧縮参照は使⽤用できません
  • 42. © 2014 IBM Corporation 追加情報 42 § Diagnostics  Collector  は除去されました – IBM  Support  Assistant  Data  collectorを利利⽤用してくださ い § IBM  Java7  Relase1からppcLinux(LE)*に対応しました *LE=Little  Endian § Java  communications  API  は利利⽤用できません § 以下の旧OSのサポートは終了了しました – Windows  XP,  Server  2003 – Linux  RHEL  5,  SLES  10,  Ubuntu  8.04  &  10.04,   Asianux  Server  3 Impact2014より更新
  • 43. © 2014 IBM Corporation IBM  Java関連情報  43 dW:  IBM  developer  kits(Linux/AIX版  JDKダウンロード先) http://www.ibm.com/developerworks/java/jdk/ IBM  Java  Knowledge  Center(オンラインマニュアル) www.ibm.com/support/knowledgecenter/SSYKE2/welcome_̲javasdk_̲family.html User  Guides  and  Reference  information  for  viewing  offline.   (オフライン⽂文書) http://www.ibm.com/developerworks/java/jdk/docs/offline.html WAS  V8.0  によるWebシステム基盤設計ワークショップ資料料 http://www.ibm.com/developerworks/jp/websphere/library/was/was8_̲guide/ WebSphere  Application  Server  (WAS)  ⼩小ワザ集 http://www.ibm.com/developerworks/jp/websphere/library/was/was_̲tips/ dW:  Javaの診断をIBMスタイルで http://bit.ly/SdtevS
  • 44. © 2014 IBM Corporation コードネーム BlueMixとは? 
  • 45. © 2014 IBM Corporation BlueMixはIBMのPaaS 45 ●  CloudFoundryベース ●  SoftLayer(IBMのIaaS)上で動作 ●  IBM独⾃自サービスもcommunityサービスを簡単に追加可能 +IBM独⾃自のランタイム     およびサービス IBMJavaやWebSphere  Liberty  Profileも利利⽤用可能
  • 46. © 2014 IBM Corporation BlueMixでJavaアプリケーションを動かす 46 ●  BlueMixトップページ http://www.bluemix.net 2014年5月現在はβ版を無償で利用可能です IBM ID(無償)でログインします。
  • 47. © 2014 IBM Corporation BlueMixでLiberty  for  Javaのランタイムを作成する 47 ●  ブラウザ上の数クリックで環境の構成と起動が完成 30秒で!
  • 48. © 2014 IBM Corporation BlueMix:⼿手元のWebアプリをデプロイ(CFツール) 48 ●  ログイン C:optCloudFoundry>cf  login API  endpoint>  http://api.stage1.ng.bluemix.net Warning:  Insecure  http  API  endpoint  detected:  secure  https  API  endpoints  are  recommended Email>  amoriba@jp.ibm.com Password> Authenticating... OK Targeted  org  amoriba@jp.ibm.com Targeted  space  dev API  endpoint:  http://api.stage1.ng.bluemix.net  (API  version:  2.2.0) User:                  amoriba@jp.ibm.com Org:                    amoriba@jp.ibm.com Space:                dev C:optCloudFoundry> 既に⼿手元に開発したアプリケーションをCFツールでBlueMixにデプロイできます。 CFツールはコマンドラインインターフェースのツールです。
  • 49. © 2014 IBM Corporation BlueMixにデプロイ 49 ●  デプロイ (CFツールでPUSH) C:DLBlueMixtestEnv>c:optCloudFoundrycf.exe  push  amoribaTEST  -‐‑‒m  512m Creating  app  amoribaTEST  in  org  amoriba@jp.ibm.com  /  space  dev  as  amoriba@jp.ibm.com... OK Creating  route  amoribatest.stage1.ng.bluemix.net... OK Binding  amoribatest.stage1.ng.bluemix.net  to  amoribaTEST... OK Uploading  amoribaTEST... Uploading  app  files  from:  C:DLBlueMixtestEnv Uploading  1.2K,  3  files OK Starting  app  amoribaTEST  in  org  amoriba@jp.ibm.com  /  space  dev  as  amoriba@jp.ibm.com... -‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒>  Downloaded  app  package  (4.0K) OK Buildpack  Version:  20140511-‐‑‒1311 -‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒>  Downloading  IBM  1.7.0  JRE  from  http://file.icap.cdl.ibm.com/icapShared/jre/ibm-‐‑‒java-‐‑‒jre-‐‑‒7.0-‐‑‒6.0-‐‑‒ linux-‐‑‒x86_̲64-‐‑‒small-‐‑‒footprint-‐‑‒uncompressed-‐‑‒jar-‐‑‒20140116.tar.gz  (0.0s)              Expanding  JRE  to  .java  (1.1s) Downloading  from  output/wlp/com.ibm.ws.liberty-‐‑‒2014.4.0.0-‐‑‒201405111311.tar.gz  ...  (0.0s). Installing  archive  ...  (0.6s). -‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒>  Uploading  droplet  (93M) 0  of  1  instances  running,  1  starting 0  of  1  instances  running,  1  starting 0  of  1  instances  running,  1  starting 1  of  1  instances  running
  • 50. © 2014 IBM Corporation BlueMixにデプロイ(続) 50 ●  デプロイ(CFツールでPUSH)の続き ●  起動完了了&利利⽤用可能 App  started Showing  health  and  status  for  app  amoribaTEST  in  org  amoriba@jp.ibm.com  /  space  dev  as   amoriba@jp.ibm.com... OK requested  state:  started instances:  1/1 usage:  512M  x  1  instances urls:  amoribatest.stage1.ng.bluemix.net          state          since                                        cpu        memory                      disk #0      running      2014-‐‑‒05-‐‑‒15  01:27:14  PM      0.0%      295.1M  of  512M      178.5M  of  1G
  • 51. © 2014 IBM Corporation BlueMixにデプロイ(続) 51 ●  アプリにアクセス 数クリックでサーバ構成と起動完了了 数コマンドラインでアプリのデプロイ起動完了了
  • 52. © 2014 IBM Corporation BlueMix DevOpsサービスによるアプリのデプロイ  52 ●  JazzHub*やGitHub上で管理理するコードを直接BlueMixにデプロイ可能 ●  今すぐにコーディング ●  チームの協業 ●  簡単なアクセス ●  ビルドとデプロイ JazzHub上(ブラウザ)でコードを編集してすぐにBlueMixにデプロイ可能 *JazzHubはIBMのSaaSです
  • 53. © 2014 IBM Corporation BlueMix Eclipseからデプロイ  53 ●  Eclipseのプラグインから直接BlueMixにデプロイ可能 いつものEclipseからすぐにBlueMixにデプロイ可能 eclipse marketplace: http://marketplace.eclipse.org/content/ibm-codename-bluemix-eclipse-kepler#.U3gu2_l_tuk
  • 54. © 2014 IBM Corporation BlueMix ボイラー・プレート 54 ランタイムといくつかのサービスを組み合わせた環境を わずか数クリックで完成できるテンプレート
  • 55. © 2014 IBM Corporation BlueMixで利利⽤用可能なサービス 55 Service Category IBM Created Services Community Services Mobile Services Mobile Application Security Mobile Data Mobile Quality Assurance Push Internet of Things Web App Services Application Security Service Rabbit MQ Configuration Service Redis CastIronLive Wearable Fitness Cloud Integration DataCache Elastic MQ IBM Bluemix Text Analytics Log Analysis RapidApps Rules SessionCache Single Sign-On (SSO) Smart Cloud Object Storage SMTP Data Management Cloudant MongoDB JSON Database (JSONDB) My SQL SQL Database (SQLDB) PostgreSQL Time Series Database Big Data BLU Acceleration MapReduce DevOps IBM DevOps Services Monitoring and Analytics Git Hosting Web IDE Add-ons Auto-Scaling Auto-Scaling Cfg 2014/05/18現在: 今後も追加更更新される可能性があります •  モバイル、Webアプリケーション、データ 管理理、ビッグデータ、DevOps、アドオン の6つのカテゴリ •  IBMが作成したもの、コミュニティが作成 したもの、パートナー様が作成したもの が利利⽤用可能 •  開発者はアイディアをプログラムし、実⾏行行 し結果を出すために全て簡単に構成・ 利利⽤用可能 •  Webアプリはローカルディスクにデータを 書き出すとPUSHの都度度データが消え るため、DBにデータ保管をすることが基 本
  • 56. © 2014 IBM Corporation BlueMix関連情報  56 IBM  BlueMix  (IBM  ID(無料料)でログインが必要) http://ace.ng.bluemix.net/ Tutorials https://www.ng.bluemix.net/docs/Tutorials.jsp BlueMix  Developers  Community https://www.ibmdw.net/bluemix/ JazzHub  Forum https://www.ibmdw.net/answers?community=jazzhub IBM  jStart  by  ibmjstart(サンプルアプリケーション) http://ibmjstart.github.io/ developerWorks(⽇日本語コンテンツあり) http://www.ibm.com/developerworks/jp/
  • 57. © 2014 IBM Corporation まとめ 57 §  IBM  Javaとは §  IBM  Java8 §  IBM  Javatm  Technology  Edition  Version  7  Release  1 –  最新のIBMシステムハードウェアサポート –  ネイティブ・データの操作(DAA) –  評価テクノロジーの提供 •  アプリケーション密度度 (マルチテナンシー) •  ネイティブ⾔言語との連携(パック) •  パフォーマンスやフットプリント改善のためのオブジェクトレイアウト改良良   (パック) –  Java  Sockets  over  RDMA  (JsoR)サポート –  保守性の向上   §  BlueMix(PaaS)
  • 58. © 2014 IBM Corporation おつかれさまでした! 58
  • 59. © 2014 IBM Corporation59 ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の見解を反映したものです。 それらは情報提供の目的のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助言を意図したものではなく、ま たそのような結果を生むものでもありません。本講演資料に含まれている情報については、完全性と正確性を期するよう努力しましたが、 「現状のまま」提供され、明示または暗示にかかわらずいかなる保証も伴わないものとします。本講演資料またはその他の資料の使用によ って、あるいはその他の関連によって、いかなる損害が生じた場合も、IBMは責任を負わないものとします。 本講演資料に含まれている内 容は、IBMまたはそのサプライヤーやライセンス交付者からいかなる保証または表明を引きだすことを意図したものでも、IBMソフトウェア の使用を規定する適用ライセンス契約の条項を変更することを意図したものでもなく、またそのような結果を生むものでもありません。 本講演資料でIBM製品、プログラム、またはサービスに言及していても、IBMが営業活動を行っているすべての国でそれらが使用可能である ことを暗示するものではありません。本講演資料で言及している製品リリース日付や製品機能は、市場機会またはその他の要因に基づいて IBM独自の決定権をもっていつでも変更できるものとし、いかなる方法においても将来の製品または機能が使用可能になると確約すること を意図したものではありません。本講演資料に含まれている内容は、参加者が開始する活動によって特定の販売、売上高の向上、またはそ の他の結果が生じると述べる、または暗示することを意図したものでも、またそのような結果を生むものでもありません。 パフォーマン スは、管理された環境において標準的なIBMベンチマークを使用した測定と予測に基づいています。ユーザーが経験する実際のスループッ トやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラミングの量、入出力構成、ストレージ構成、および処理さ れるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがって、個々のユーザーがここで述べられているものと 同様の結果を得られると確約するものではありません。 記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使用したか、またそれらのお客様が達成した結果の実例と して示されたものです。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。 IBM、IBM ロゴ、ibm.com、WebSphereは、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。 他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。 現時点での IBM の商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧ください。 Adobe, Adobeロゴ, PostScript, PostScriptロゴは、Adobe Systems Incorporatedの米国およびその他の国における登録商標または商標です。 IT Infrastructure Libraryは英国Office of Government Commerceの一部であるthe Central Computer and Telecommunications Agencyの登録商標で す。 インテル, Intel, Intelロゴ, Intel Inside, Intel Insideロゴ, Intel Centrino, Intel Centrinoロゴ, Celeron, Intel Xeon, Intel SpeedStep, Itanium, およびPentium は Intel Corporationまたは子会社の米国およびその他の国における商標または登録商標です。 Linuxは、Linus Torvaldsの米国およびその他の国における登録商標です。 Microsoft, Windows, Windows NT および Windowsロゴは Microsoft Corporationの米国およびその他の国における商標です。 ITILは英国The Minister for the Cabinet Officeの登録商標および共同体登録商標であって、米国特許商標庁にて登録されています。 UNIXはThe Open Groupの米国およびその他の国における登録商標です。 Cell Broadband Engineは、Sony Computer Entertainment, Inc.の米国およびその他の国における商標であり、同社の許諾を受けて使用しています。 JavaおよびすべてのJava関連の商標およびロゴは Oracleやその関連会社の米国およびその他の国における商標または登録商標です。 Linear Tape-Open, LTO, LTOロゴ, UltriumおよびUltriumロゴは、HP, IBM Corp.およびQuantumの米国およびその他の国における商標です。