SlideShare a Scribd company logo
Silk Weaver: A Scalable Data Processing Platform
JNuma library
 Java/ScalaでNUMA aware アクセスを実現するためのライブラリ
 2012年11月に作成・公開済み
 https://github.com/xerial/jnuma
 JavaからJNI経由でNUMA APIを呼び出す
 機能
 特定のNUMA node (メモリ)でバッファを確保
 GCの管理対象外領域なので、Numa.freeを実行した瞬間に解放される (JVMがメモリを食い尽くすのを防ぐ)
 Threadを特定のCPU(s)に固定する
 Javaにはない機能
1
Silk Weaver: A Scalable Data Processing Platform
Distance and CPU affinity of NUMA nodes
2
Silk Weaver: A Scalable Data Processing Platform
NUMA-Aware Data Output
 実験
 1GBのメモリを各CPUが確保
 各CPUはメモリの先頭から順にランダムなデータを
書き込む
 各Threadに固定CPUを1つ割り当てて実行
 Numa.setAffinity(cpu#)
 jnuma libraryを使用
 比較
 NUMA localにデータを書き出す場合 (numa)
 NUMAを気にせずJVMのheapに書き出す場合 (heap)
 マシン
 ax03 (48CPUs, 256GB memory)
 結果
 numa-localな書き込みは性能が安定するが、
heapに書き込む場合は、遅くなる
 heapへの書き出しではCPU使用率が極端に低くなる
 => memory I/O bound
3
Silk Weaver: A Scalable Data Processing Platform
JVM –XX:+UseNUMA
 JVMの-XX:+UseNUMA オプションを使うとheapの場合に多少速くなるが、それでも
numa-localの方が速い
4

More Related Content

PPTX
Introduction to arm virtualization
PDF
RTXで遊ぶ
PDF
俺のZabbixがこんなに可愛いわけがない
PPTX
ODP
Next-L Enju 開発ワークショップ #10
PDF
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
PDF
JSAI 2020 1J5-GS-2-01 TensorShader 高次元ニューラルネットワーク深層学習フレームワーク
PDF
仮想化環境におけるパケットフォワーディング
Introduction to arm virtualization
RTXで遊ぶ
俺のZabbixがこんなに可愛いわけがない
Next-L Enju 開発ワークショップ #10
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
JSAI 2020 1J5-GS-2-01 TensorShader 高次元ニューラルネットワーク深層学習フレームワーク
仮想化環境におけるパケットフォワーディング

What's hot (19)

KEY
物理マシンをケチる技術
PPTX
Technical session 2 iaa s 始めました~自社内にある windows も linux もそして sql server も azur...
PDF
XenServer Overview
PDF
Fabric + Amazon EC2で快適サポート生活 #PyFes
KEY
MHA, Murakumo & Me
PDF
EthernetやCPUなどの話
PDF
後期第二回ネットワークチーム講座資料
PPT
20091119_sinatraを使ってみた
PDF
Introducing mroonga 20111129
PPTX
PowerShell de Azure
PDF
#ljstudy KVM勉強会
PDF
Wakayama.rbボード Ver UmeJam
PPTX
EC2クラスタインスタンス使ってみました!
PDF
KVM+cgroup
PDF
Jubatus 新機能ハイライト
PDF
運用に効く!JVMオプション三選
PPT
アメーバピグにおける自作サーバ運用
PDF
Bossan dentoo
PDF
ゼロからはじめるKVM超入門
物理マシンをケチる技術
Technical session 2 iaa s 始めました~自社内にある windows も linux もそして sql server も azur...
XenServer Overview
Fabric + Amazon EC2で快適サポート生活 #PyFes
MHA, Murakumo & Me
EthernetやCPUなどの話
後期第二回ネットワークチーム講座資料
20091119_sinatraを使ってみた
Introducing mroonga 20111129
PowerShell de Azure
#ljstudy KVM勉強会
Wakayama.rbボード Ver UmeJam
EC2クラスタインスタンス使ってみました!
KVM+cgroup
Jubatus 新機能ハイライト
運用に効く!JVMオプション三選
アメーバピグにおける自作サーバ運用
Bossan dentoo
ゼロからはじめるKVM超入門
Ad

Viewers also liked (12)

PDF
Relational-Style XML Query @ SIGMOD-J 2008 Dec.
PDF
2011年度 生物データベース論 2日目 木構造データ
PDF
Presto @ Treasure Data - Presto Meetup Boston 2015
PPTX
Streaming Distributed Data Processing with Silk #deim2014
PDF
Silkによる並列分散ワークフロープログラミング
PDF
Workflow Hacks #1 - dots. Tokyo
PDF
Introduction to Presto at Treasure Data
PDF
Presto as a Service - Tips for operation and monitoring
PDF
Weaving Dataflows with Silk - ScalaMatsuri 2014, Tokyo
PDF
Presto As A Service - Treasure DataでのPresto運用事例
PPTX
Spark Internals - Hadoop Source Code Reading #16 in Japan
PDF
Treasure Dataを支える技術 - MessagePack編
Relational-Style XML Query @ SIGMOD-J 2008 Dec.
2011年度 生物データベース論 2日目 木構造データ
Presto @ Treasure Data - Presto Meetup Boston 2015
Streaming Distributed Data Processing with Silk #deim2014
Silkによる並列分散ワークフロープログラミング
Workflow Hacks #1 - dots. Tokyo
Introduction to Presto at Treasure Data
Presto as a Service - Tips for operation and monitoring
Weaving Dataflows with Silk - ScalaMatsuri 2014, Tokyo
Presto As A Service - Treasure DataでのPresto運用事例
Spark Internals - Hadoop Source Code Reading #16 in Japan
Treasure Dataを支える技術 - MessagePack編
Ad

More from Taro L. Saito (15)

PDF
Unifying Frontend and Backend Development with Scala - ScalaCon 2021
PDF
Journey of Migrating 1 Million Presto Queries - Presto Webinar 2020
PDF
Scala for Everything: From Frontend to Backend Applications - Scala Matsuri 2020
PDF
Airframe RPC
PDF
td-spark internals: Extending Spark with Airframe - Spark Meetup Tokyo #3 2020
PDF
Airframe Meetup #3: 2019 Updates & AirSpec
PDF
Presto At Arm Treasure Data - 2019 Updates
PDF
Reading The Source Code of Presto
PDF
How To Use Scala At Work - Airframe In Action at Arm Treasure Data
PDF
Airframe: Lightweight Building Blocks for Scala - Scale By The Bay 2018
PDF
Airframe: Lightweight Building Blocks for Scala @ TD Tech Talk 2018-10-17
PDF
Tips For Maintaining OSS Projects
PDF
Learning Silicon Valley Culture
PDF
Presto At Treasure Data
PDF
Scala at Treasure Data
Unifying Frontend and Backend Development with Scala - ScalaCon 2021
Journey of Migrating 1 Million Presto Queries - Presto Webinar 2020
Scala for Everything: From Frontend to Backend Applications - Scala Matsuri 2020
Airframe RPC
td-spark internals: Extending Spark with Airframe - Spark Meetup Tokyo #3 2020
Airframe Meetup #3: 2019 Updates & AirSpec
Presto At Arm Treasure Data - 2019 Updates
Reading The Source Code of Presto
How To Use Scala At Work - Airframe In Action at Arm Treasure Data
Airframe: Lightweight Building Blocks for Scala - Scale By The Bay 2018
Airframe: Lightweight Building Blocks for Scala @ TD Tech Talk 2018-10-17
Tips For Maintaining OSS Projects
Learning Silicon Valley Culture
Presto At Treasure Data
Scala at Treasure Data

JNuma Library

  • 1. Silk Weaver: A Scalable Data Processing Platform JNuma library  Java/ScalaでNUMA aware アクセスを実現するためのライブラリ  2012年11月に作成・公開済み  https://github.com/xerial/jnuma  JavaからJNI経由でNUMA APIを呼び出す  機能  特定のNUMA node (メモリ)でバッファを確保  GCの管理対象外領域なので、Numa.freeを実行した瞬間に解放される (JVMがメモリを食い尽くすのを防ぐ)  Threadを特定のCPU(s)に固定する  Javaにはない機能 1
  • 2. Silk Weaver: A Scalable Data Processing Platform Distance and CPU affinity of NUMA nodes 2
  • 3. Silk Weaver: A Scalable Data Processing Platform NUMA-Aware Data Output  実験  1GBのメモリを各CPUが確保  各CPUはメモリの先頭から順にランダムなデータを 書き込む  各Threadに固定CPUを1つ割り当てて実行  Numa.setAffinity(cpu#)  jnuma libraryを使用  比較  NUMA localにデータを書き出す場合 (numa)  NUMAを気にせずJVMのheapに書き出す場合 (heap)  マシン  ax03 (48CPUs, 256GB memory)  結果  numa-localな書き込みは性能が安定するが、 heapに書き込む場合は、遅くなる  heapへの書き出しではCPU使用率が極端に低くなる  => memory I/O bound 3
  • 4. Silk Weaver: A Scalable Data Processing Platform JVM –XX:+UseNUMA  JVMの-XX:+UseNUMA オプションを使うとheapの場合に多少速くなるが、それでも numa-localの方が速い 4