SlideShare a Scribd company logo
NoSQL Now!
Aug 21, 2013
Ben Wen, Joyent
Renat Khasanshyn, Altoros
About Joyent
 The high-performance public cloud
infrastructure provider
 Cloud IaaS Virtual Machines:
 Linux, Windows, BSD, SmartOS
(fka Solaris) with Zones
 Core founding sponsors of Node.js
 Four global datacenters
 Key markets:
 Big data, mobile, e-commerce,
finsvc, SaaS
 Open Source contributions:
 Node.js, KVM, DTrace, ZFS,
SmartOS
4
 Running bare-metal only practical for some organizations
 Performance varies significantly across various job types
 In fact, for many jobs, less = more
 Utilization of most clusters in production is low
 Optimizing Hadoop/MapReduce performance is hard
5
 Get upset when truth comes out!
 Biased (to the shiny side of the coin)
 Often add controversy and confusion
6
- For Hadoop, what is the impact of Container-based virtualization vs Hardware
emulation (KVM)*
- What are the Hadoop optimization strategies? Is there a “rule of thumb” when it
comes to determining the optimization approach?
- What are the optimal Hadoop cluster settings for 1TB TeraSort benchmark on
100 and 400 node clusters running Linux and SmartOS on the Joyent Public
Cloud?
7
Physical (disks, cpu, network)
OS/Hypervisor (especially for virtualized environments)
Hadoop/MapReduce (tons of settings)
Algorithmic (data structures, join strategies, big-O…)
Implementation (code efficiency, architecture decisions that fit all other factors)
8
Open source Unix operating system based on the active
fork of Open Solaris technology (illumos) for the cloud.
Uses containerized OS virtualization, called Zones (think a
mature LXC with secure RBAC and auditing)
operating system based on the Debian
Linux distribution and distributed as free
and open source software.
Apache Hadoop is an open-source software framework that
supports data-intensive distributed applications, licensed
under the Apache v2 license. Derived from Google's
MapReduce and Google File System (GFS) papers, Hadoop
enables applications to work with thousands of computation-
independent computers and petabytes of data.
9
Written by Opscode and released as open source under the
Apache License 2.0., Chef is a DevOps tool used for configuring
cloud services or to streamline the task of configuring a
company's internal servers. Chef automatically sets up and
tweaks the operating systems and programs that run in massive
data centers.
Developed by creators of the Starfish project from Duke
University, Unravel brings run-time profiling of Hadoop jobs
followed by a cost-based database query optimization. Unravel
connects to streams of Hadoop and system instrumentation
data, and applies statistical machine learning to optimize cost of
Hadoop jobs and increase cluster utilization.
1
0
Comparing I/O Path on
Bare Metal Unix Vs Zones Vs KVM
• Code path is essentially
the same as bare metal
• Zones partition at the OS
level
• Performance is higher
• KVM is encapsulated
by hypervisor
• Code path is much
more circuitous in a
KVM process.
• Performance is
impacted
Bare-metal OS Virtualization Kernel Virtualization
1
1
No over
head for
Zones:
Stack traces
show how a
network
packet is
transmitted
from:
Bare Metal
vs
Joyent Zone
vs
Fedora VM
on KVM
Bare Metal Joyent Zone (aka SmartMachine) Fedora VM on KVM VM
Start Start Start
1 kernel`start_xmit
2 kernel`dtrace_int3_handler+0xd2
3 kernel`kmem_cache_free+0x2f
4 kernel`dtrace_int3+0x3a
5 kernel`eth_header
6 kernel`__kfree_skb+0x47
7 kernel`start_xmit+0x1
8 kernel`dev_hard_start_xmit+0x322
9 kernel`sch_direct_xmit+0xef
10 kernel`dev_queue_xmit+0x184
11 kernel`eth_header+0x3a
12 kernel`neigh_resolve_output+0x11e
13 kernel`nf_hook_slow+0x75
14 kernel`ip_finish_output
15 kernel`ip_finish_output+0x17e
16 kernel`ip_output+0x98
17 kernel`__ip_local_out+0xa4
18 kernel`ip_local_out+0x29
19 kernel`ip_queue_xmit+0x14f
20 kernel`tcp_transmit_skb+0x3e4
21 kernel`__kmalloc_node_track_caller+0x185
22 kernel`sk_stream_alloc_skb+0x41
23 kernel`tcp_write_xmit+0xf7
24 kernel`__alloc_skb+0x8c
25 kernel`__tcp_push_pending_frames+0x26
26 kernel`tcp_sendmsg+0x895
27 kernel`inet_sendmsg+0x64
28 kernel`sock_aio_write+0x13a
29 kernel`do_sync_write+0xd2
30 kernel`security_file_permission+0x2c
31 kernel`rw_verify_area+0x61
32 kernel`vfs_write+0x16d
33 kernel`sys_write+0x4a
34 kernel`sys_rt_sigprocmask+0x84
35 kernel`system_call_fastpath+0x16
36 igb`igb_tx_ring_send+0x33
37 mac`mac_hwring_tx+0x1d
38 mac`mac_tx_send+0x5dc
39 mac`mac_tx_single_ring_mode+0x6e
mac`mac_tx+0xda mac`mac_tx+0xda mac`mac_tx+0xda
dld`str_mdata_fastpath_put+0x53 dld`str_mdata_fastpath_put+0x53 dld`str_mdata_fastpath_put+0x53
ip`ip_xmit+0x82d ip`ip_xmit+0x82d ip`ip_xmit+0x82d
ip`ire_send_wire_v4+0x3e9 ip`ire_send_wire_v4+0x3e9 ip`ire_send_wire_v4+0x3e9
ip`conn_ip_output+0x190 ip`conn_ip_output+0x190 ip`conn_ip_output+0x190
ip`tcp_send_data+0x59 ip`tcp_send_data+0x59 ip`tcp_send_data+0x59
ip`tcp_output+0x58c ip`tcp_output+0x58c ip`tcp_output+0x58c
ip`squeue_enter+0x426 ip`squeue_enter+0x426 ip`squeue_enter+0x426
ip`tcp_sendmsg+0x14f ip`tcp_sendmsg+0x14f ip`tcp_sendmsg+0x14f
sockfs`so_sendmsg+0x26b sockfs`so_sendmsg+0x26b sockfs`so_sendmsg+0x26b
sockfs`socket_sendmsg+0x48 sockfs`socket_sendmsg+0x48 sockfs`socket_sendmsg+0x48
sockfs`socket_vop_write+0x6c sockfs`socket_vop_write+0x6c sockfs`socket_vop_write+0x6c
genunix`fop_write+0x8b genunix`fop_write+0x8b genunix`fop_write+0x8b
genunix`write+0x250 genunix`write+0x250 genunix`write+0x250
genunix`write32+0x1e genunix`write32+0x1e genunix`write32+0x1e
unix`_sys_sysenter_post_swapgs+0x14 unix`_sys_sysenter_post_swapgs+0x14 unix`_sys_sysenter_post_swapgs+0x149
Skips stepping
through
39 functions
required
when Fedora
is running on
KVM/qemu
Note that
a Joyent Zone
is exactly the
same as “Bare
Metal”
Three identical Apache Hadoop 1.0.4 clusters were provisioned on Joyent
infrastructure using Joyent REST API and Opscode Chef
Each cluster was tweaked for optimal performance following best practices for
TeraSort benchmark.
13
A custom script launches virtual machines using Joyent API and stores information
about them in a json file.
14
Each machine in cluster is being configured according to its role in cluster using
Chef cookbooks.
15
As part of TeraSort benchmark a dataset is generated using TeraGen utility
included in Apache Hadoop.
16
On one of the nodes a Hadoop TeraSort job using previously generated dataset is
submitted.
17
See: Hadoop job_201210261134_0010 on hadoop-smartos-r-1.html
The key difference between the two clusters was unveiled when monitoring I/O and
CPU utilization. Ubuntu cluster was spending too much time in OS kernel while
performing I/O operations as demonstrated on Figure 1.
SmartOS cluster was using CPU much more efficiently and was able to utilize larger
number of Hadoop mappers and reducers, key configuration parameters for Hadoop:
How to Increase Performance of Your Hadoop Cluster
20
21
22
The key difference
between the clusters was
unveiled when monitoring
I/O and CPU utilization.
Ubuntu cluster was
spending too much time in
OS kernel while performing
I/O (for copies of config
files and job reports –
email
renat.k@altoros.com)
24
1) Basic cluster configuration is key (one time effort for typical workloads)
DATA DISK SCALING
COMPRESSION
JVM REUSE POLICY
HDFS BLOCK SIZE
MAP-SIDE SPILLS
COPY/SHUFFLE PHASE TUNING
REDUCE-SIDE SPILLS
2) Tune the number of map and reduce tasks appropriately
3) Consider GPU for some workloads
25
• Forthcoming in October
• Includes cloud performance
• Co-author DTrace book
• More here on his techniques:
• http://dtrace.org/blogs/brendan/
26
Thank you!
Ben Wen: benwen@joyent.com
Renat Khasanshyn: renat.k@altoros.com
@renatco (650) 395-7002

More Related Content

PPT
Advanced Hadoop Tuning and Optimization - Hadoop Consulting
PPTX
Optimizing your Infrastrucure and Operating System for Hadoop
PDF
Improving Hadoop Cluster Performance via Linux Configuration
PPTX
Hadoop World 2011: Hadoop and Performance - Todd Lipcon & Yanpei Chen, Cloudera
PDF
Improving Hadoop Performance via Linux
PDF
Hadoop Summit 2010 Tuning Hadoop To Deliver Performance To Your Application
PPTX
Improving Hadoop Cluster Performance via Linux Configuration
PPTX
Hadoop configuration & performance tuning
Advanced Hadoop Tuning and Optimization - Hadoop Consulting
Optimizing your Infrastrucure and Operating System for Hadoop
Improving Hadoop Cluster Performance via Linux Configuration
Hadoop World 2011: Hadoop and Performance - Todd Lipcon & Yanpei Chen, Cloudera
Improving Hadoop Performance via Linux
Hadoop Summit 2010 Tuning Hadoop To Deliver Performance To Your Application
Improving Hadoop Cluster Performance via Linux Configuration
Hadoop configuration & performance tuning

What's hot (20)

PDF
Hadoop Operations for Production Systems (Strata NYC)
PDF
Optimizing Dell PowerEdge Configurations for Hadoop
PPTX
Hadoop Summit 2012 | Optimizing MapReduce Job Performance
PPT
Hw09 Monitoring Best Practices
PDF
Hadoop - Disk Fail In Place (DFIP)
PDF
Optimizing MapReduce Job performance
PPTX
Hadoop Backup and Disaster Recovery
PPT
ha_module5
PDF
White paper hadoop performancetuning
PDF
Hadoop 2.0 handout 5.0
PDF
Introduction to hadoop administration jk
PDF
Hadoop Cluster With High Availability
PDF
Hadoop Internals
PDF
Treasure Data on The YARN - Hadoop Conference Japan 2014
PPT
Hadoop Performance at LinkedIn
PPT
Deployment and Management of Hadoop Clusters
PPTX
10c introduction
PDF
Hadoop Operations at LinkedIn
PPTX
In-memory Caching in HDFS: Lower Latency, Same Great Taste
PPTX
Nn ha hadoop world.final
Hadoop Operations for Production Systems (Strata NYC)
Optimizing Dell PowerEdge Configurations for Hadoop
Hadoop Summit 2012 | Optimizing MapReduce Job Performance
Hw09 Monitoring Best Practices
Hadoop - Disk Fail In Place (DFIP)
Optimizing MapReduce Job performance
Hadoop Backup and Disaster Recovery
ha_module5
White paper hadoop performancetuning
Hadoop 2.0 handout 5.0
Introduction to hadoop administration jk
Hadoop Cluster With High Availability
Hadoop Internals
Treasure Data on The YARN - Hadoop Conference Japan 2014
Hadoop Performance at LinkedIn
Deployment and Management of Hadoop Clusters
10c introduction
Hadoop Operations at LinkedIn
In-memory Caching in HDFS: Lower Latency, Same Great Taste
Nn ha hadoop world.final
Ad

Viewers also liked (7)

PDF
Cloud Computing Assignment 3
PDF
Ceph Day SF 2015 - SysAdmin's Toolbox: Tools for Running Ceph in Production
PPTX
Apache Hadoop YARN: Present and Future
DOCX
Assignment on Cloud Computing
PDF
Optimizing Hive Queries
PDF
Alluxio Keynote at Strata+Hadoop World Beijing 2016
PPTX
Hadoop introduction , Why and What is Hadoop ?
Cloud Computing Assignment 3
Ceph Day SF 2015 - SysAdmin's Toolbox: Tools for Running Ceph in Production
Apache Hadoop YARN: Present and Future
Assignment on Cloud Computing
Optimizing Hive Queries
Alluxio Keynote at Strata+Hadoop World Beijing 2016
Hadoop introduction , Why and What is Hadoop ?
Ad

Similar to How to Increase Performance of Your Hadoop Cluster (20)

PDF
Inside Triton, July 2015
PDF
Microservices Cloud Club 2015-02-26
PDF
The Peril and Promise of Early Adoption: Arriving 10 Years Early to Containers
PPT
Best Practices for Deploying Hadoop (BigInsights) in the Cloud
PDF
Datacenter Computing with Apache Mesos - BigData DC
PDF
Performance of joyent cloud
PPTX
Bare Metal Provisioning for Big Data - OpenStack最新情報セミナー(2016年12月)
PDF
Docker San Diego 2015-03-25
PPTX
Manta Unleashed BigDataSG talk 2 July 2013
PDF
The Internet-of-things: Architecting for the deluge of data
PPTX
Performance Tuning a Cloud Application: A Real World Case Study
PPTX
CloudStack Day Japan 2015 - Hypervisor Selection in CloudStack 4.5
PDF
Manta: a new internet-facing object storage facility that features compute by...
PDF
Bringing the Unix Philosophy to Big Data
PDF
Evolution of unix environments and the road to faster deployments
PDF
Benchmarking Hadoop and Big Data
PDF
Chef on SmartOS
PDF
Systems Performance: Enterprise and the Cloud
PPTX
Selecting the correct hypervisor for CloudStack 4.5
PPTX
Software defined storage real or bs-2014
Inside Triton, July 2015
Microservices Cloud Club 2015-02-26
The Peril and Promise of Early Adoption: Arriving 10 Years Early to Containers
Best Practices for Deploying Hadoop (BigInsights) in the Cloud
Datacenter Computing with Apache Mesos - BigData DC
Performance of joyent cloud
Bare Metal Provisioning for Big Data - OpenStack最新情報セミナー(2016年12月)
Docker San Diego 2015-03-25
Manta Unleashed BigDataSG talk 2 July 2013
The Internet-of-things: Architecting for the deluge of data
Performance Tuning a Cloud Application: A Real World Case Study
CloudStack Day Japan 2015 - Hypervisor Selection in CloudStack 4.5
Manta: a new internet-facing object storage facility that features compute by...
Bringing the Unix Philosophy to Big Data
Evolution of unix environments and the road to faster deployments
Benchmarking Hadoop and Big Data
Chef on SmartOS
Systems Performance: Enterprise and the Cloud
Selecting the correct hypervisor for CloudStack 4.5
Software defined storage real or bs-2014

More from Altoros (20)

PDF
Maturing with Kubernetes
PDF
Kubernetes Platform Readiness and Maturity Assessment
PDF
Journey Through Four Stages of Kubernetes Deployment Maturity
PPTX
SGX: Improving Privacy, Security, and Trust Across Blockchain Networks
PPTX
Using the Cloud Foundry and Kubernetes Stack as a Part of a Blockchain CI/CD ...
PPTX
A Zero-Knowledge Proof: Improving Privacy on a Blockchain
PPTX
Crap. Your Big Data Kitchen Is Broken.
PDF
Containers and Kubernetes
PPTX
Distributed Ledger Technology for Over-the-Counter Trading
PPTX
5-Step Deployment of Hyperledger Fabric on Multiple Nodes
PPTX
Deploying Kubernetes on GCP with Kubespray
PPTX
UAA for Kubernetes
PPTX
Troubleshooting .NET Applications on Cloud Foundry
PPTX
Continuous Integration and Deployment with Jenkins for PCF
PPTX
How to Never Leave Your Deployment Unattended
PPTX
Cloud Foundry Monitoring How-To: Collecting Metrics and Logs
PDF
Smart Baggage Tracking: End-to-End Sensor-Based Solution
PPTX
Navigating the Ecosystem of Pivotal Cloud Foundry Tiles
PPTX
AI as a Catalyst for IoT
PPTX
Over-Engineering: Causes, Symptoms, and Treatment
Maturing with Kubernetes
Kubernetes Platform Readiness and Maturity Assessment
Journey Through Four Stages of Kubernetes Deployment Maturity
SGX: Improving Privacy, Security, and Trust Across Blockchain Networks
Using the Cloud Foundry and Kubernetes Stack as a Part of a Blockchain CI/CD ...
A Zero-Knowledge Proof: Improving Privacy on a Blockchain
Crap. Your Big Data Kitchen Is Broken.
Containers and Kubernetes
Distributed Ledger Technology for Over-the-Counter Trading
5-Step Deployment of Hyperledger Fabric on Multiple Nodes
Deploying Kubernetes on GCP with Kubespray
UAA for Kubernetes
Troubleshooting .NET Applications on Cloud Foundry
Continuous Integration and Deployment with Jenkins for PCF
How to Never Leave Your Deployment Unattended
Cloud Foundry Monitoring How-To: Collecting Metrics and Logs
Smart Baggage Tracking: End-to-End Sensor-Based Solution
Navigating the Ecosystem of Pivotal Cloud Foundry Tiles
AI as a Catalyst for IoT
Over-Engineering: Causes, Symptoms, and Treatment

Recently uploaded (20)

PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
MYSQL Presentation for SQL database connectivity
PDF
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Modernizing your data center with Dell and AMD
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Big Data Technologies - Introduction.pptx
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Advanced Soft Computing BINUS July 2025.pdf
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Network Security Unit 5.pdf for BCA BBA.
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
MYSQL Presentation for SQL database connectivity
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Modernizing your data center with Dell and AMD
The Rise and Fall of 3GPP – Time for a Sabbatical?
Big Data Technologies - Introduction.pptx
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Mobile App Security Testing_ A Comprehensive Guide.pdf
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Per capita expenditure prediction using model stacking based on satellite ima...
Advanced Soft Computing BINUS July 2025.pdf
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
20250228 LYD VKU AI Blended-Learning.pptx
The AUB Centre for AI in Media Proposal.docx
Diabetes mellitus diagnosis method based random forest with bat algorithm

How to Increase Performance of Your Hadoop Cluster

  • 1. NoSQL Now! Aug 21, 2013 Ben Wen, Joyent Renat Khasanshyn, Altoros
  • 2. About Joyent  The high-performance public cloud infrastructure provider  Cloud IaaS Virtual Machines:  Linux, Windows, BSD, SmartOS (fka Solaris) with Zones  Core founding sponsors of Node.js  Four global datacenters  Key markets:  Big data, mobile, e-commerce, finsvc, SaaS  Open Source contributions:  Node.js, KVM, DTrace, ZFS, SmartOS
  • 3. 4  Running bare-metal only practical for some organizations  Performance varies significantly across various job types  In fact, for many jobs, less = more  Utilization of most clusters in production is low  Optimizing Hadoop/MapReduce performance is hard
  • 4. 5  Get upset when truth comes out!  Biased (to the shiny side of the coin)  Often add controversy and confusion
  • 5. 6 - For Hadoop, what is the impact of Container-based virtualization vs Hardware emulation (KVM)* - What are the Hadoop optimization strategies? Is there a “rule of thumb” when it comes to determining the optimization approach? - What are the optimal Hadoop cluster settings for 1TB TeraSort benchmark on 100 and 400 node clusters running Linux and SmartOS on the Joyent Public Cloud?
  • 6. 7 Physical (disks, cpu, network) OS/Hypervisor (especially for virtualized environments) Hadoop/MapReduce (tons of settings) Algorithmic (data structures, join strategies, big-O…) Implementation (code efficiency, architecture decisions that fit all other factors)
  • 7. 8 Open source Unix operating system based on the active fork of Open Solaris technology (illumos) for the cloud. Uses containerized OS virtualization, called Zones (think a mature LXC with secure RBAC and auditing) operating system based on the Debian Linux distribution and distributed as free and open source software. Apache Hadoop is an open-source software framework that supports data-intensive distributed applications, licensed under the Apache v2 license. Derived from Google's MapReduce and Google File System (GFS) papers, Hadoop enables applications to work with thousands of computation- independent computers and petabytes of data.
  • 8. 9 Written by Opscode and released as open source under the Apache License 2.0., Chef is a DevOps tool used for configuring cloud services or to streamline the task of configuring a company's internal servers. Chef automatically sets up and tweaks the operating systems and programs that run in massive data centers. Developed by creators of the Starfish project from Duke University, Unravel brings run-time profiling of Hadoop jobs followed by a cost-based database query optimization. Unravel connects to streams of Hadoop and system instrumentation data, and applies statistical machine learning to optimize cost of Hadoop jobs and increase cluster utilization.
  • 9. 1 0 Comparing I/O Path on Bare Metal Unix Vs Zones Vs KVM • Code path is essentially the same as bare metal • Zones partition at the OS level • Performance is higher • KVM is encapsulated by hypervisor • Code path is much more circuitous in a KVM process. • Performance is impacted Bare-metal OS Virtualization Kernel Virtualization
  • 10. 1 1 No over head for Zones: Stack traces show how a network packet is transmitted from: Bare Metal vs Joyent Zone vs Fedora VM on KVM Bare Metal Joyent Zone (aka SmartMachine) Fedora VM on KVM VM Start Start Start 1 kernel`start_xmit 2 kernel`dtrace_int3_handler+0xd2 3 kernel`kmem_cache_free+0x2f 4 kernel`dtrace_int3+0x3a 5 kernel`eth_header 6 kernel`__kfree_skb+0x47 7 kernel`start_xmit+0x1 8 kernel`dev_hard_start_xmit+0x322 9 kernel`sch_direct_xmit+0xef 10 kernel`dev_queue_xmit+0x184 11 kernel`eth_header+0x3a 12 kernel`neigh_resolve_output+0x11e 13 kernel`nf_hook_slow+0x75 14 kernel`ip_finish_output 15 kernel`ip_finish_output+0x17e 16 kernel`ip_output+0x98 17 kernel`__ip_local_out+0xa4 18 kernel`ip_local_out+0x29 19 kernel`ip_queue_xmit+0x14f 20 kernel`tcp_transmit_skb+0x3e4 21 kernel`__kmalloc_node_track_caller+0x185 22 kernel`sk_stream_alloc_skb+0x41 23 kernel`tcp_write_xmit+0xf7 24 kernel`__alloc_skb+0x8c 25 kernel`__tcp_push_pending_frames+0x26 26 kernel`tcp_sendmsg+0x895 27 kernel`inet_sendmsg+0x64 28 kernel`sock_aio_write+0x13a 29 kernel`do_sync_write+0xd2 30 kernel`security_file_permission+0x2c 31 kernel`rw_verify_area+0x61 32 kernel`vfs_write+0x16d 33 kernel`sys_write+0x4a 34 kernel`sys_rt_sigprocmask+0x84 35 kernel`system_call_fastpath+0x16 36 igb`igb_tx_ring_send+0x33 37 mac`mac_hwring_tx+0x1d 38 mac`mac_tx_send+0x5dc 39 mac`mac_tx_single_ring_mode+0x6e mac`mac_tx+0xda mac`mac_tx+0xda mac`mac_tx+0xda dld`str_mdata_fastpath_put+0x53 dld`str_mdata_fastpath_put+0x53 dld`str_mdata_fastpath_put+0x53 ip`ip_xmit+0x82d ip`ip_xmit+0x82d ip`ip_xmit+0x82d ip`ire_send_wire_v4+0x3e9 ip`ire_send_wire_v4+0x3e9 ip`ire_send_wire_v4+0x3e9 ip`conn_ip_output+0x190 ip`conn_ip_output+0x190 ip`conn_ip_output+0x190 ip`tcp_send_data+0x59 ip`tcp_send_data+0x59 ip`tcp_send_data+0x59 ip`tcp_output+0x58c ip`tcp_output+0x58c ip`tcp_output+0x58c ip`squeue_enter+0x426 ip`squeue_enter+0x426 ip`squeue_enter+0x426 ip`tcp_sendmsg+0x14f ip`tcp_sendmsg+0x14f ip`tcp_sendmsg+0x14f sockfs`so_sendmsg+0x26b sockfs`so_sendmsg+0x26b sockfs`so_sendmsg+0x26b sockfs`socket_sendmsg+0x48 sockfs`socket_sendmsg+0x48 sockfs`socket_sendmsg+0x48 sockfs`socket_vop_write+0x6c sockfs`socket_vop_write+0x6c sockfs`socket_vop_write+0x6c genunix`fop_write+0x8b genunix`fop_write+0x8b genunix`fop_write+0x8b genunix`write+0x250 genunix`write+0x250 genunix`write+0x250 genunix`write32+0x1e genunix`write32+0x1e genunix`write32+0x1e unix`_sys_sysenter_post_swapgs+0x14 unix`_sys_sysenter_post_swapgs+0x14 unix`_sys_sysenter_post_swapgs+0x149 Skips stepping through 39 functions required when Fedora is running on KVM/qemu Note that a Joyent Zone is exactly the same as “Bare Metal”
  • 11. Three identical Apache Hadoop 1.0.4 clusters were provisioned on Joyent infrastructure using Joyent REST API and Opscode Chef Each cluster was tweaked for optimal performance following best practices for TeraSort benchmark.
  • 12. 13 A custom script launches virtual machines using Joyent API and stores information about them in a json file.
  • 13. 14 Each machine in cluster is being configured according to its role in cluster using Chef cookbooks.
  • 14. 15 As part of TeraSort benchmark a dataset is generated using TeraGen utility included in Apache Hadoop.
  • 15. 16 On one of the nodes a Hadoop TeraSort job using previously generated dataset is submitted.
  • 16. 17 See: Hadoop job_201210261134_0010 on hadoop-smartos-r-1.html The key difference between the two clusters was unveiled when monitoring I/O and CPU utilization. Ubuntu cluster was spending too much time in OS kernel while performing I/O operations as demonstrated on Figure 1.
  • 17. SmartOS cluster was using CPU much more efficiently and was able to utilize larger number of Hadoop mappers and reducers, key configuration parameters for Hadoop:
  • 19. 20
  • 20. 21
  • 21. 22
  • 22. The key difference between the clusters was unveiled when monitoring I/O and CPU utilization. Ubuntu cluster was spending too much time in OS kernel while performing I/O (for copies of config files and job reports – email renat.k@altoros.com)
  • 23. 24 1) Basic cluster configuration is key (one time effort for typical workloads) DATA DISK SCALING COMPRESSION JVM REUSE POLICY HDFS BLOCK SIZE MAP-SIDE SPILLS COPY/SHUFFLE PHASE TUNING REDUCE-SIDE SPILLS 2) Tune the number of map and reduce tasks appropriately 3) Consider GPU for some workloads
  • 24. 25 • Forthcoming in October • Includes cloud performance • Co-author DTrace book • More here on his techniques: • http://dtrace.org/blogs/brendan/
  • 25. 26 Thank you! Ben Wen: benwen@joyent.com Renat Khasanshyn: renat.k@altoros.com @renatco (650) 395-7002