SlideShare une entreprise Scribd logo
1  sur  43
Télécharger pour lire hors ligne
Disk IO Benchmarking in
shared multi-tenant
environments
Rodrigo Campos
camposr@gmail.com - @xinu
Agenda
• Considerations about IO performance
benchmarks
• Some available tools
• Problems
• Proposed solution & results
• Conclusions
Considerations
How most people think it is...
Process
Disk
Considerations
Private / single-tenant system
Process
Disk
Kernel IO Interface
Disk Controller Disk Controller Disk Controller
DiskDisk
Considerations
Private / single-tenant system
Process
Disk
Kernel IO Interface
Disk Controller Disk Controller Disk Controller
DiskDisk
Cache
Cache
Cache
Considerations
Shared multi-
tenant system
(simplified view)
Caches... Caches
Everywhere
Process Kernel
Virtualization
Layer
KernelNetwork Interface
Process
Kernel
IO Interface
Disk Controller
Process
Kernel
IO Interface
Disk Controller
Process
Kernel
IO Interface
Disk Controller
Process Kernel
Process Kernel
Disk Disk Disk
Disk Controller
SSD
Disk
Controller
Disk
Disk
Controller
Disk
• Linux Buffers & Caches
• Buffers: Filesystem Metadata + Active in-flight pages
• Caches: File contents
• Kernel Tunables (pdflush)
• /proc/sys/vm/...
Some available tools
• Too many to name but some are popular:
• iozone, fio, dd, hdparm, bonnie++
• http://bitly.com/bundles/o_4p62vc3lid/4
Problems
Most published benchmarks measured the environment
only once, at a single point in time!
Problems
Some tools have become so complex that is now almost
impossible to reproduce results consistently
Proposed solution
• Create a simple yet effective tool to
measure performance
• Define a reproducible methodology for
long-term testing
Language
• Need for access to low-
level system calls
• Low abstraction level
• Choice: C
Requisites
•Keep it simple!
• One process
• One thread
• One workload file
What it does?
• Serial Write
• Serial Read
• Random Rewrite
• Random Read
• Mixed Random Read & Write
Mitigating buffers
• It is impossible to avoid buffering at all
levels in a non-proprietary system
• But we can use posix_fadvise & Direct IO
to mitigate local kernel buffers
posix_fadvise
int posix_fadvise(int fd, off_t offset, off_t len, int
advice);
“Programs can use posix_fadvise() to
announce an intention to access file data in a
specific pattern in the future, thus allowing the
kernel to perform appropriate optimizations.”
posix_fadvise
POSIX_FADV_DONTNEED attempts to free
cached pages associated with the specified
region.
posix_fadvise
/* *TRY* to minimize buffer cache effect */
/* There's no guarantee that the file will be
removed from buffer cache though */
/* Keep in mind that buffering will happen at
some level */
if (fadvise == true)
{
rc = posix_fadvise(fd, 0, 0,
POSIX_FADV_DONTNEED);
...
posix_fadvise
Test DONTNEED NORMAL Difference
Write
Read
Rewrite
Reread
Random
5,82 6,05 0,96
0,163 0,017 9,59
3,037 2,993 1,01
1,244 0,019 65,47
2,403 1,559 1,54
100Mbytes file - 4k BS -XFS - 20 run average
posix_fadvise
Test DONTNEED NORMAL Difference
Write
Read
Rewrite
Reread
Random
5,82 6,05 0,96
0,163 0,017 9,59
3,037 2,993 1,01
1,244 0,019 65,47
2,403 1,559 1,54
100Mbytes file - 4k BS -XFS - 20 run average
6,0 GB/s
5,2 GB/s
Transfer Rates
• SSD transfer rates typically range from
100MB/s to 600MB/s
• Something is wrong...
Synchronous IO
int open(const char *pathname, int flags,
mode_t mode);
O_SYNC
The file is opened for synchronous I/O. Any
write(2)s on the resulting file descriptor will
block the calling process until the data has been
physically written to the underlying hardware.
But see NOTES below.
Direct IO
int open(const char *pathname, int flags,
mode_t mode);
O_DIRECT
Try to minimize cache effects of the I/O to and
from this file. In general this will degrade
performance, but it is useful in special
situations, such as when applications do their
own caching. File I/O is done directly to/from
user space buffers.
Direct IO
flags = O_RDWR | O_CREAT | O_TRUNC | O_SYNC;
if (directIO == true)
{
myWarn(3,__FUNCTION__, "Will try to enable
Direct IO");
flags = flags| O_DIRECT;
}
Notes below
Most Linux file systems don't actually
implement the POSIX O_SYNC semantics,
which require all metadata updates of a write to
be on disk on returning to userspace, but only
the O_DSYNC semantics, which require only
actual file data and meta-data necessary to
retrieve it to be on disk by the time the system
call returns.
Results
Test -Direct IO (s) +Direct IO (s) Difference
Write
Read
Rewrite
Reread
Random
5,82 6,640 0,88
0,163 2,197 0,07
3,037 2,905 1,05
1,244 2,845 0,44
2,403 2,941 0,82
100Mbytes file - 4k BS -XFS - 20 run average
Results
Test +Direct IO (s) MB/s
Write
Read
Rewrite
Reread
Random
6,640 15,79
2,197 47,72
2,905 36,09
2,845 36,85
2,941 35,64
100Mbytes file - 4k BS -XFS - 20 run average
iomelt
IOMELT Version 0.71
Usage:
-b BYTES Block size used for IO functions (must be a power of two)
-d Dump data in a format that can be digested by pattern processing
commands
-D Print time in seconds since epoch
-h Prints usage parameters
-H Omit header row when dumping data
-n Do NOT convert bytes to human readable format
-o Do NOT display results (does not override -d)
-O Reopen worload file before every test
-p PATH Directory where the test file should be created
-r Randomize workload file name
-R Try to enable Direct IO
-s BYTES Workload file size (default: 10Mb)
-v Controls the level of verbosity
-V Displays version number
-b and -s values can be specified in bytes (default), Kilobytes (with 'K'
suffix), Megabytes (with 'M'suffix), or Gigabytes (with 'G' suffix)
Unless specified, block size value is the optimal block transfer size for
the file system as returned by statvfs
iomelt
• Available at http://iomelt.com
• Fork it on GitHub:
• https://github.com/camposr/iomelt
• Artistic License 2.0
• http://opensource.org/licenses/artistic-license-2.0
Methodology
How to measure the performance of
several instance types on different
regions for long periods of time?
Methodology
1. Create a single AMI
1.1.Update Kernel, compiler and libraries
2. Replicate it in several regions and different
instance types:
2.1.m1.small
2.2.m1.medium
2.3.m1.large
Methodology
Source: http://amzn.to/12zSyZV
Methodology
Schedule a cron job to run every five minutes
*/5 * * 8 * /root/iomelt/iomelt -dor >> /root/iomelt.out 2>&1
Results
Results
Results
Results
Results
Results
Results
For a complete list of results:
http://bit.ly/19L9xm2
Conclusions
• Shared multi-tenant environments create
new challenges for performance analysis
• Traditional benchmark methodologies are
not suitable for these environments
• Excessive versatility in most available tools
make it hard to get reproducible
measurements
Conclusions
• Performance (in)consistency must be
considered when designing systems that
will run in the cloud
• “What you don’t know might hurt you”

Contenu connexe

Tendances

LizardFS-WhitePaper-Eng-v3.9.2-web
LizardFS-WhitePaper-Eng-v3.9.2-webLizardFS-WhitePaper-Eng-v3.9.2-web
LizardFS-WhitePaper-Eng-v3.9.2-webSzymon Haly
 
Linux network stack
Linux network stackLinux network stack
Linux network stackTakuya ASADA
 
Linux rt in financial markets
Linux rt in financial marketsLinux rt in financial markets
Linux rt in financial marketsAdrien Mahieux
 
BPF / XDP 8월 세미나 KossLab
BPF / XDP 8월 세미나 KossLabBPF / XDP 8월 세미나 KossLab
BPF / XDP 8월 세미나 KossLabTaeung Song
 
Kernel Recipes 2016 - entry_*.S: A carefree stroll through kernel entry code
Kernel Recipes 2016 - entry_*.S: A carefree stroll through kernel entry codeKernel Recipes 2016 - entry_*.S: A carefree stroll through kernel entry code
Kernel Recipes 2016 - entry_*.S: A carefree stroll through kernel entry codeAnne Nicolas
 
Reconnaissance of Virtio: What’s new and how it’s all connected?
Reconnaissance of Virtio: What’s new and how it’s all connected?Reconnaissance of Virtio: What’s new and how it’s all connected?
Reconnaissance of Virtio: What’s new and how it’s all connected?Samsung Open Source Group
 
Kernel Recipes 2016 - Understanding a Real-Time System (more than just a kernel)
Kernel Recipes 2016 - Understanding a Real-Time System (more than just a kernel)Kernel Recipes 2016 - Understanding a Real-Time System (more than just a kernel)
Kernel Recipes 2016 - Understanding a Real-Time System (more than just a kernel)Anne Nicolas
 
Understanding Apache Kafka P99 Latency at Scale
Understanding Apache Kafka P99 Latency at ScaleUnderstanding Apache Kafka P99 Latency at Scale
Understanding Apache Kafka P99 Latency at ScaleScyllaDB
 
QEMU - Binary Translation
QEMU - Binary Translation QEMU - Binary Translation
QEMU - Binary Translation Jiann-Fuh Liaw
 
Velocity 2017 Performance analysis superpowers with Linux eBPF
Velocity 2017 Performance analysis superpowers with Linux eBPFVelocity 2017 Performance analysis superpowers with Linux eBPF
Velocity 2017 Performance analysis superpowers with Linux eBPFBrendan Gregg
 
eBPF Trace from Kernel to Userspace
eBPF Trace from Kernel to UserspaceeBPF Trace from Kernel to Userspace
eBPF Trace from Kernel to UserspaceSUSE Labs Taipei
 
Where Did All These Cycles Go?
Where Did All These Cycles Go?Where Did All These Cycles Go?
Where Did All These Cycles Go?ScyllaDB
 
Berkeley Packet Filters
Berkeley Packet FiltersBerkeley Packet Filters
Berkeley Packet FiltersKernel TLV
 
Overclocking Raspberry Pi 3 Ulimate Guide
Overclocking Raspberry Pi 3 Ulimate GuideOverclocking Raspberry Pi 3 Ulimate Guide
Overclocking Raspberry Pi 3 Ulimate GuideDmitry Rogov
 
Data Structures for High Resolution, Real-time Telemetry at Scale
Data Structures for High Resolution, Real-time Telemetry at ScaleData Structures for High Resolution, Real-time Telemetry at Scale
Data Structures for High Resolution, Real-time Telemetry at ScaleScyllaDB
 
nftables - the evolution of Linux Firewall
nftables - the evolution of Linux Firewallnftables - the evolution of Linux Firewall
nftables - the evolution of Linux FirewallMarian Marinov
 
Let’s Fix Logging Once and for All
Let’s Fix Logging Once and for AllLet’s Fix Logging Once and for All
Let’s Fix Logging Once and for AllScyllaDB
 
Linux 4.x Tracing: Performance Analysis with bcc/BPF
Linux 4.x Tracing: Performance Analysis with bcc/BPFLinux 4.x Tracing: Performance Analysis with bcc/BPF
Linux 4.x Tracing: Performance Analysis with bcc/BPFBrendan Gregg
 

Tendances (20)

LizardFS-WhitePaper-Eng-v3.9.2-web
LizardFS-WhitePaper-Eng-v3.9.2-webLizardFS-WhitePaper-Eng-v3.9.2-web
LizardFS-WhitePaper-Eng-v3.9.2-web
 
Linux network stack
Linux network stackLinux network stack
Linux network stack
 
Linux rt in financial markets
Linux rt in financial marketsLinux rt in financial markets
Linux rt in financial markets
 
BPF / XDP 8월 세미나 KossLab
BPF / XDP 8월 세미나 KossLabBPF / XDP 8월 세미나 KossLab
BPF / XDP 8월 세미나 KossLab
 
Kernel Recipes 2016 - entry_*.S: A carefree stroll through kernel entry code
Kernel Recipes 2016 - entry_*.S: A carefree stroll through kernel entry codeKernel Recipes 2016 - entry_*.S: A carefree stroll through kernel entry code
Kernel Recipes 2016 - entry_*.S: A carefree stroll through kernel entry code
 
Reconnaissance of Virtio: What’s new and how it’s all connected?
Reconnaissance of Virtio: What’s new and how it’s all connected?Reconnaissance of Virtio: What’s new and how it’s all connected?
Reconnaissance of Virtio: What’s new and how it’s all connected?
 
Kernel Recipes 2016 - Understanding a Real-Time System (more than just a kernel)
Kernel Recipes 2016 - Understanding a Real-Time System (more than just a kernel)Kernel Recipes 2016 - Understanding a Real-Time System (more than just a kernel)
Kernel Recipes 2016 - Understanding a Real-Time System (more than just a kernel)
 
Understanding Apache Kafka P99 Latency at Scale
Understanding Apache Kafka P99 Latency at ScaleUnderstanding Apache Kafka P99 Latency at Scale
Understanding Apache Kafka P99 Latency at Scale
 
QEMU - Binary Translation
QEMU - Binary Translation QEMU - Binary Translation
QEMU - Binary Translation
 
Velocity 2017 Performance analysis superpowers with Linux eBPF
Velocity 2017 Performance analysis superpowers with Linux eBPFVelocity 2017 Performance analysis superpowers with Linux eBPF
Velocity 2017 Performance analysis superpowers with Linux eBPF
 
eBPF Trace from Kernel to Userspace
eBPF Trace from Kernel to UserspaceeBPF Trace from Kernel to Userspace
eBPF Trace from Kernel to Userspace
 
eBPF/XDP
eBPF/XDP eBPF/XDP
eBPF/XDP
 
Where Did All These Cycles Go?
Where Did All These Cycles Go?Where Did All These Cycles Go?
Where Did All These Cycles Go?
 
Berkeley Packet Filters
Berkeley Packet FiltersBerkeley Packet Filters
Berkeley Packet Filters
 
Overclocking Raspberry Pi 3 Ulimate Guide
Overclocking Raspberry Pi 3 Ulimate GuideOverclocking Raspberry Pi 3 Ulimate Guide
Overclocking Raspberry Pi 3 Ulimate Guide
 
Data Structures for High Resolution, Real-time Telemetry at Scale
Data Structures for High Resolution, Real-time Telemetry at ScaleData Structures for High Resolution, Real-time Telemetry at Scale
Data Structures for High Resolution, Real-time Telemetry at Scale
 
nftables - the evolution of Linux Firewall
nftables - the evolution of Linux Firewallnftables - the evolution of Linux Firewall
nftables - the evolution of Linux Firewall
 
Let’s Fix Logging Once and for All
Let’s Fix Logging Once and for AllLet’s Fix Logging Once and for All
Let’s Fix Logging Once and for All
 
eBPF Basics
eBPF BasicseBPF Basics
eBPF Basics
 
Linux 4.x Tracing: Performance Analysis with bcc/BPF
Linux 4.x Tracing: Performance Analysis with bcc/BPFLinux 4.x Tracing: Performance Analysis with bcc/BPF
Linux 4.x Tracing: Performance Analysis with bcc/BPF
 

En vedette

Getting Started with Performance Co-Pilot
Getting Started with Performance Co-PilotGetting Started with Performance Co-Pilot
Getting Started with Performance Co-PilotPaul V. Novarese
 
Java Application Performance and Analytics
Java Application Performance and AnalyticsJava Application Performance and Analytics
Java Application Performance and AnalyticseG Innovations
 
How to Obtain Peak Performance from Your Virtual Environment
How to Obtain Peak Performance from Your Virtual EnvironmentHow to Obtain Peak Performance from Your Virtual Environment
How to Obtain Peak Performance from Your Virtual EnvironmenteG Innovations
 
Taking VMware Performance Monitoring Beyond VCOPS
Taking VMware Performance Monitoring Beyond VCOPSTaking VMware Performance Monitoring Beyond VCOPS
Taking VMware Performance Monitoring Beyond VCOPSeG Innovations
 
Unix Performance Monitoring Made Easy
Unix Performance Monitoring Made EasyUnix Performance Monitoring Made Easy
Unix Performance Monitoring Made EasyeG Innovations
 
Velocity Conference NYC 2014 - Real World DevOps
Velocity Conference NYC 2014 - Real World DevOpsVelocity Conference NYC 2014 - Real World DevOps
Velocity Conference NYC 2014 - Real World DevOpsRodrigo Campos
 
Cloud Computing - Continuidade do Negócio através da tolerância a desastres
Cloud Computing - Continuidade do Negócio através da tolerância a desastresCloud Computing - Continuidade do Negócio através da tolerância a desastres
Cloud Computing - Continuidade do Negócio através da tolerância a desastresJoao Galdino Mello de Souza
 
Internet das Coisas (IoT) – Um estudo de caso para economia de energia elétri...
Internet das Coisas (IoT) – Um estudo de caso para economia de energia elétri...Internet das Coisas (IoT) – Um estudo de caso para economia de energia elétri...
Internet das Coisas (IoT) – Um estudo de caso para economia de energia elétri...Joao Galdino Mello de Souza
 
Software Optimization and Tuning Techniques for z13 (As mentiras do ontem, um...
Software Optimization and Tuning Techniques for z13 (As mentiras do ontem, um...Software Optimization and Tuning Techniques for z13 (As mentiras do ontem, um...
Software Optimization and Tuning Techniques for z13 (As mentiras do ontem, um...Joao Galdino Mello de Souza
 
Modelagem Analítica – Queueing Theory (Part I)
Modelagem Analítica – Queueing Theory (Part I)Modelagem Analítica – Queueing Theory (Part I)
Modelagem Analítica – Queueing Theory (Part I)Joao Galdino Mello de Souza
 
Estudo comparativo entre treinamento supervisionado e não supervisionado em a...
Estudo comparativo entre treinamento supervisionado e não supervisionado em a...Estudo comparativo entre treinamento supervisionado e não supervisionado em a...
Estudo comparativo entre treinamento supervisionado e não supervisionado em a...Joao Galdino Mello de Souza
 
Como configurar seu zSystem para workloads rebeldes
Como configurar seu zSystem para workloads rebeldesComo configurar seu zSystem para workloads rebeldes
Como configurar seu zSystem para workloads rebeldesJoao Galdino Mello de Souza
 
Open Source Monitoring Tools
Open Source Monitoring ToolsOpen Source Monitoring Tools
Open Source Monitoring Toolsm_richardson
 
Top 5 Nagios Replacement Must Haves
Top 5 Nagios Replacement Must HavesTop 5 Nagios Replacement Must Haves
Top 5 Nagios Replacement Must HavesCopperEgg
 
Monitoring solutions comparison
Monitoring solutions comparisonMonitoring solutions comparison
Monitoring solutions comparisonWouter Hermans
 

En vedette (20)

Getting Started with Performance Co-Pilot
Getting Started with Performance Co-PilotGetting Started with Performance Co-Pilot
Getting Started with Performance Co-Pilot
 
Java Application Performance and Analytics
Java Application Performance and AnalyticsJava Application Performance and Analytics
Java Application Performance and Analytics
 
How to Obtain Peak Performance from Your Virtual Environment
How to Obtain Peak Performance from Your Virtual EnvironmentHow to Obtain Peak Performance from Your Virtual Environment
How to Obtain Peak Performance from Your Virtual Environment
 
Taking VMware Performance Monitoring Beyond VCOPS
Taking VMware Performance Monitoring Beyond VCOPSTaking VMware Performance Monitoring Beyond VCOPS
Taking VMware Performance Monitoring Beyond VCOPS
 
Unix Performance Monitoring Made Easy
Unix Performance Monitoring Made EasyUnix Performance Monitoring Made Easy
Unix Performance Monitoring Made Easy
 
Qualidade no desenvolvimento de sistemas
Qualidade no desenvolvimento de sistemasQualidade no desenvolvimento de sistemas
Qualidade no desenvolvimento de sistemas
 
Velocity Conference NYC 2014 - Real World DevOps
Velocity Conference NYC 2014 - Real World DevOpsVelocity Conference NYC 2014 - Real World DevOps
Velocity Conference NYC 2014 - Real World DevOps
 
Cloud Computing - Continuidade do Negócio através da tolerância a desastres
Cloud Computing - Continuidade do Negócio através da tolerância a desastresCloud Computing - Continuidade do Negócio através da tolerância a desastres
Cloud Computing - Continuidade do Negócio através da tolerância a desastres
 
Automação do Workload e a TI Bimodal
Automação do Workload e a TI BimodalAutomação do Workload e a TI Bimodal
Automação do Workload e a TI Bimodal
 
Internet das Coisas (IoT) – Um estudo de caso para economia de energia elétri...
Internet das Coisas (IoT) – Um estudo de caso para economia de energia elétri...Internet das Coisas (IoT) – Um estudo de caso para economia de energia elétri...
Internet das Coisas (IoT) – Um estudo de caso para economia de energia elétri...
 
Software Optimization and Tuning Techniques for z13 (As mentiras do ontem, um...
Software Optimization and Tuning Techniques for z13 (As mentiras do ontem, um...Software Optimization and Tuning Techniques for z13 (As mentiras do ontem, um...
Software Optimization and Tuning Techniques for z13 (As mentiras do ontem, um...
 
Modelagem Analítica – Queueing Theory (Part I)
Modelagem Analítica – Queueing Theory (Part I)Modelagem Analítica – Queueing Theory (Part I)
Modelagem Analítica – Queueing Theory (Part I)
 
Estudo comparativo entre treinamento supervisionado e não supervisionado em a...
Estudo comparativo entre treinamento supervisionado e não supervisionado em a...Estudo comparativo entre treinamento supervisionado e não supervisionado em a...
Estudo comparativo entre treinamento supervisionado e não supervisionado em a...
 
Como configurar seu zSystem para workloads rebeldes
Como configurar seu zSystem para workloads rebeldesComo configurar seu zSystem para workloads rebeldes
Como configurar seu zSystem para workloads rebeldes
 
Quantas Instruções por Ciclo?
Quantas Instruções por Ciclo?Quantas Instruções por Ciclo?
Quantas Instruções por Ciclo?
 
PCP
PCPPCP
PCP
 
Quantas Instruções por Ciclo?
Quantas Instruções por Ciclo?Quantas Instruções por Ciclo?
Quantas Instruções por Ciclo?
 
Open Source Monitoring Tools
Open Source Monitoring ToolsOpen Source Monitoring Tools
Open Source Monitoring Tools
 
Top 5 Nagios Replacement Must Haves
Top 5 Nagios Replacement Must HavesTop 5 Nagios Replacement Must Haves
Top 5 Nagios Replacement Must Haves
 
Monitoring solutions comparison
Monitoring solutions comparisonMonitoring solutions comparison
Monitoring solutions comparison
 

Similaire à Disk IO Benchmarking in shared multi-tenant environments

Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)MongoDB
 
Database performance tuning for SSD based storage
Database  performance tuning for SSD based storageDatabase  performance tuning for SSD based storage
Database performance tuning for SSD based storageAngelo Rajadurai
 
SSD based storage tuning for databases
SSD based storage tuning for databasesSSD based storage tuning for databases
SSD based storage tuning for databasesAngelo Rajadurai
 
Exploiting Your File System to Build Robust & Efficient Workflows
Exploiting Your File System to Build Robust & Efficient WorkflowsExploiting Your File System to Build Robust & Efficient Workflows
Exploiting Your File System to Build Robust & Efficient Workflowsjasonajohnson
 
Oracle Performance On Linux X86 systems
Oracle  Performance On Linux  X86 systems Oracle  Performance On Linux  X86 systems
Oracle Performance On Linux X86 systems Baruch Osoveskiy
 
Deployment Strategy
Deployment StrategyDeployment Strategy
Deployment StrategyMongoDB
 
Deployment Strategies
Deployment StrategiesDeployment Strategies
Deployment StrategiesMongoDB
 
Oracle Open World 2014: Lies, Damned Lies, and I/O Statistics [ CON3671]
Oracle Open World 2014: Lies, Damned Lies, and I/O Statistics [ CON3671]Oracle Open World 2014: Lies, Damned Lies, and I/O Statistics [ CON3671]
Oracle Open World 2014: Lies, Damned Lies, and I/O Statistics [ CON3671]Kyle Hailey
 
IMCSummit 2015 - Day 1 Developer Track - Evolution of non-volatile memory exp...
IMCSummit 2015 - Day 1 Developer Track - Evolution of non-volatile memory exp...IMCSummit 2015 - Day 1 Developer Track - Evolution of non-volatile memory exp...
IMCSummit 2015 - Day 1 Developer Track - Evolution of non-volatile memory exp...In-Memory Computing Summit
 
Build an High-Performance and High-Durable Block Storage Service Based on Ceph
Build an High-Performance and High-Durable Block Storage Service Based on CephBuild an High-Performance and High-Durable Block Storage Service Based on Ceph
Build an High-Performance and High-Durable Block Storage Service Based on CephRongze Zhu
 
Shak larry-jeder-perf-and-tuning-summit14-part2-final
Shak larry-jeder-perf-and-tuning-summit14-part2-finalShak larry-jeder-perf-and-tuning-summit14-part2-final
Shak larry-jeder-perf-and-tuning-summit14-part2-finalTommy Lee
 
Nagios Conference 2012 - Dan Wittenberg - Case Study: Scaling Nagios Core at ...
Nagios Conference 2012 - Dan Wittenberg - Case Study: Scaling Nagios Core at ...Nagios Conference 2012 - Dan Wittenberg - Case Study: Scaling Nagios Core at ...
Nagios Conference 2012 - Dan Wittenberg - Case Study: Scaling Nagios Core at ...Nagios
 
Open Source Data Deduplication
Open Source Data DeduplicationOpen Source Data Deduplication
Open Source Data DeduplicationRedWireServices
 
Ceph: Open Source Storage Software Optimizations on Intel® Architecture for C...
Ceph: Open Source Storage Software Optimizations on Intel® Architecture for C...Ceph: Open Source Storage Software Optimizations on Intel® Architecture for C...
Ceph: Open Source Storage Software Optimizations on Intel® Architecture for C...Odinot Stanislas
 
Current and Future of Non-Volatile Memory on Linux
Current and Future of Non-Volatile Memory on LinuxCurrent and Future of Non-Volatile Memory on Linux
Current and Future of Non-Volatile Memory on Linuxmountpoint.io
 
Revisiting CephFS MDS and mClock QoS Scheduler
Revisiting CephFS MDS and mClock QoS SchedulerRevisiting CephFS MDS and mClock QoS Scheduler
Revisiting CephFS MDS and mClock QoS SchedulerYongseok Oh
 
Accelerating HBase with NVMe and Bucket Cache
Accelerating HBase with NVMe and Bucket CacheAccelerating HBase with NVMe and Bucket Cache
Accelerating HBase with NVMe and Bucket CacheNicolas Poggi
 

Similaire à Disk IO Benchmarking in shared multi-tenant environments (20)

Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)
 
Database performance tuning for SSD based storage
Database  performance tuning for SSD based storageDatabase  performance tuning for SSD based storage
Database performance tuning for SSD based storage
 
SSD based storage tuning for databases
SSD based storage tuning for databasesSSD based storage tuning for databases
SSD based storage tuning for databases
 
Exploiting Your File System to Build Robust & Efficient Workflows
Exploiting Your File System to Build Robust & Efficient WorkflowsExploiting Your File System to Build Robust & Efficient Workflows
Exploiting Your File System to Build Robust & Efficient Workflows
 
Oracle Performance On Linux X86 systems
Oracle  Performance On Linux  X86 systems Oracle  Performance On Linux  X86 systems
Oracle Performance On Linux X86 systems
 
Deployment Strategy
Deployment StrategyDeployment Strategy
Deployment Strategy
 
Deployment Strategies
Deployment StrategiesDeployment Strategies
Deployment Strategies
 
Oracle Open World 2014: Lies, Damned Lies, and I/O Statistics [ CON3671]
Oracle Open World 2014: Lies, Damned Lies, and I/O Statistics [ CON3671]Oracle Open World 2014: Lies, Damned Lies, and I/O Statistics [ CON3671]
Oracle Open World 2014: Lies, Damned Lies, and I/O Statistics [ CON3671]
 
IMCSummit 2015 - Day 1 Developer Track - Evolution of non-volatile memory exp...
IMCSummit 2015 - Day 1 Developer Track - Evolution of non-volatile memory exp...IMCSummit 2015 - Day 1 Developer Track - Evolution of non-volatile memory exp...
IMCSummit 2015 - Day 1 Developer Track - Evolution of non-volatile memory exp...
 
Build an High-Performance and High-Durable Block Storage Service Based on Ceph
Build an High-Performance and High-Durable Block Storage Service Based on CephBuild an High-Performance and High-Durable Block Storage Service Based on Ceph
Build an High-Performance and High-Durable Block Storage Service Based on Ceph
 
Shak larry-jeder-perf-and-tuning-summit14-part2-final
Shak larry-jeder-perf-and-tuning-summit14-part2-finalShak larry-jeder-perf-and-tuning-summit14-part2-final
Shak larry-jeder-perf-and-tuning-summit14-part2-final
 
Nagios Conference 2012 - Dan Wittenberg - Case Study: Scaling Nagios Core at ...
Nagios Conference 2012 - Dan Wittenberg - Case Study: Scaling Nagios Core at ...Nagios Conference 2012 - Dan Wittenberg - Case Study: Scaling Nagios Core at ...
Nagios Conference 2012 - Dan Wittenberg - Case Study: Scaling Nagios Core at ...
 
Open Source Data Deduplication
Open Source Data DeduplicationOpen Source Data Deduplication
Open Source Data Deduplication
 
Ceph: Open Source Storage Software Optimizations on Intel® Architecture for C...
Ceph: Open Source Storage Software Optimizations on Intel® Architecture for C...Ceph: Open Source Storage Software Optimizations on Intel® Architecture for C...
Ceph: Open Source Storage Software Optimizations on Intel® Architecture for C...
 
Ceph
CephCeph
Ceph
 
JetStor NAS series 2016
JetStor NAS series 2016JetStor NAS series 2016
JetStor NAS series 2016
 
CLFS 2010
CLFS 2010CLFS 2010
CLFS 2010
 
Current and Future of Non-Volatile Memory on Linux
Current and Future of Non-Volatile Memory on LinuxCurrent and Future of Non-Volatile Memory on Linux
Current and Future of Non-Volatile Memory on Linux
 
Revisiting CephFS MDS and mClock QoS Scheduler
Revisiting CephFS MDS and mClock QoS SchedulerRevisiting CephFS MDS and mClock QoS Scheduler
Revisiting CephFS MDS and mClock QoS Scheduler
 
Accelerating HBase with NVMe and Bucket Cache
Accelerating HBase with NVMe and Bucket CacheAccelerating HBase with NVMe and Bucket Cache
Accelerating HBase with NVMe and Bucket Cache
 

Plus de Rodrigo Campos

DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014Rodrigo Campos
 
7Masters Webops in the Cloud
7Masters Webops in the Cloud7Masters Webops in the Cloud
7Masters Webops in the CloudRodrigo Campos
 
Otimização holistica de ambiente computacional
Otimização holistica de ambiente computacionalOtimização holistica de ambiente computacional
Otimização holistica de ambiente computacionalRodrigo Campos
 
Desempenho e Escalabilidade de Banco de Dados em ambiente x86
Desempenho e Escalabilidade de Banco de Dados em ambiente x86Desempenho e Escalabilidade de Banco de Dados em ambiente x86
Desempenho e Escalabilidade de Banco de Dados em ambiente x86Rodrigo Campos
 
Mistério ou tecnologia? Paralelismo!
Mistério ou tecnologia? Paralelismo!Mistério ou tecnologia? Paralelismo!
Mistério ou tecnologia? Paralelismo!Rodrigo Campos
 
Sistemas de proteção de perímetro
Sistemas de proteção de perímetroSistemas de proteção de perímetro
Sistemas de proteção de perímetroRodrigo Campos
 
Devops at Walmart GeC Brazil
Devops at Walmart GeC BrazilDevops at Walmart GeC Brazil
Devops at Walmart GeC BrazilRodrigo Campos
 
Cloud Computing Oportunidades e Desafios
Cloud Computing Oportunidades e DesafiosCloud Computing Oportunidades e Desafios
Cloud Computing Oportunidades e DesafiosRodrigo Campos
 
The good, the bad and the big... data
The good, the bad and the big... dataThe good, the bad and the big... data
The good, the bad and the big... dataRodrigo Campos
 
CMG 2012 - Tuning where it matters - Gerry Tuddenham
CMG 2012 - Tuning where it matters - Gerry TuddenhamCMG 2012 - Tuning where it matters - Gerry Tuddenham
CMG 2012 - Tuning where it matters - Gerry TuddenhamRodrigo Campos
 
A Consumerização da TI e o Efeito BYOT
A Consumerização da TI e o Efeito BYOTA Consumerização da TI e o Efeito BYOT
A Consumerização da TI e o Efeito BYOTRodrigo Campos
 
CMG Brasil 2012 - Uso de Lines nos z196
CMG Brasil 2012 - Uso de Lines nos z196CMG Brasil 2012 - Uso de Lines nos z196
CMG Brasil 2012 - Uso de Lines nos z196Rodrigo Campos
 
Racionalização e Otimização de Energia em Computação na Nuvem
Racionalização e Otimização de Energia em Computação na NuvemRacionalização e Otimização de Energia em Computação na Nuvem
Racionalização e Otimização de Energia em Computação na NuvemRodrigo Campos
 
SDN - Openflow + OpenVSwitch + Quantum
SDN - Openflow + OpenVSwitch + QuantumSDN - Openflow + OpenVSwitch + Quantum
SDN - Openflow + OpenVSwitch + QuantumRodrigo Campos
 
AWS RDS Benchmark - CMG Brasil 2012
AWS RDS Benchmark - CMG Brasil 2012AWS RDS Benchmark - CMG Brasil 2012
AWS RDS Benchmark - CMG Brasil 2012Rodrigo Campos
 
Isolamento de Recursos na Nuvem
Isolamento de Recursos na NuvemIsolamento de Recursos na Nuvem
Isolamento de Recursos na NuvemRodrigo Campos
 
Cloud Computing at Academia UOL
Cloud Computing at Academia UOLCloud Computing at Academia UOL
Cloud Computing at Academia UOLRodrigo Campos
 

Plus de Rodrigo Campos (20)

DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014
 
7Masters Webops in the Cloud
7Masters Webops in the Cloud7Masters Webops in the Cloud
7Masters Webops in the Cloud
 
14 guendert pres
14 guendert pres14 guendert pres
14 guendert pres
 
Large and Giant Pages
Large and Giant PagesLarge and Giant Pages
Large and Giant Pages
 
Otimização holistica de ambiente computacional
Otimização holistica de ambiente computacionalOtimização holistica de ambiente computacional
Otimização holistica de ambiente computacional
 
Desempenho e Escalabilidade de Banco de Dados em ambiente x86
Desempenho e Escalabilidade de Banco de Dados em ambiente x86Desempenho e Escalabilidade de Banco de Dados em ambiente x86
Desempenho e Escalabilidade de Banco de Dados em ambiente x86
 
13 coelho final-pres
13 coelho final-pres13 coelho final-pres
13 coelho final-pres
 
Mistério ou tecnologia? Paralelismo!
Mistério ou tecnologia? Paralelismo!Mistério ou tecnologia? Paralelismo!
Mistério ou tecnologia? Paralelismo!
 
Sistemas de proteção de perímetro
Sistemas de proteção de perímetroSistemas de proteção de perímetro
Sistemas de proteção de perímetro
 
Devops at Walmart GeC Brazil
Devops at Walmart GeC BrazilDevops at Walmart GeC Brazil
Devops at Walmart GeC Brazil
 
Cloud Computing Oportunidades e Desafios
Cloud Computing Oportunidades e DesafiosCloud Computing Oportunidades e Desafios
Cloud Computing Oportunidades e Desafios
 
The good, the bad and the big... data
The good, the bad and the big... dataThe good, the bad and the big... data
The good, the bad and the big... data
 
CMG 2012 - Tuning where it matters - Gerry Tuddenham
CMG 2012 - Tuning where it matters - Gerry TuddenhamCMG 2012 - Tuning where it matters - Gerry Tuddenham
CMG 2012 - Tuning where it matters - Gerry Tuddenham
 
A Consumerização da TI e o Efeito BYOT
A Consumerização da TI e o Efeito BYOTA Consumerização da TI e o Efeito BYOT
A Consumerização da TI e o Efeito BYOT
 
CMG Brasil 2012 - Uso de Lines nos z196
CMG Brasil 2012 - Uso de Lines nos z196CMG Brasil 2012 - Uso de Lines nos z196
CMG Brasil 2012 - Uso de Lines nos z196
 
Racionalização e Otimização de Energia em Computação na Nuvem
Racionalização e Otimização de Energia em Computação na NuvemRacionalização e Otimização de Energia em Computação na Nuvem
Racionalização e Otimização de Energia em Computação na Nuvem
 
SDN - Openflow + OpenVSwitch + Quantum
SDN - Openflow + OpenVSwitch + QuantumSDN - Openflow + OpenVSwitch + Quantum
SDN - Openflow + OpenVSwitch + Quantum
 
AWS RDS Benchmark - CMG Brasil 2012
AWS RDS Benchmark - CMG Brasil 2012AWS RDS Benchmark - CMG Brasil 2012
AWS RDS Benchmark - CMG Brasil 2012
 
Isolamento de Recursos na Nuvem
Isolamento de Recursos na NuvemIsolamento de Recursos na Nuvem
Isolamento de Recursos na Nuvem
 
Cloud Computing at Academia UOL
Cloud Computing at Academia UOLCloud Computing at Academia UOL
Cloud Computing at Academia UOL
 

Dernier

H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 

Dernier (20)

H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 

Disk IO Benchmarking in shared multi-tenant environments

  • 1. Disk IO Benchmarking in shared multi-tenant environments Rodrigo Campos camposr@gmail.com - @xinu
  • 2. Agenda • Considerations about IO performance benchmarks • Some available tools • Problems • Proposed solution & results • Conclusions
  • 3. Considerations How most people think it is... Process Disk
  • 4. Considerations Private / single-tenant system Process Disk Kernel IO Interface Disk Controller Disk Controller Disk Controller DiskDisk
  • 5. Considerations Private / single-tenant system Process Disk Kernel IO Interface Disk Controller Disk Controller Disk Controller DiskDisk Cache Cache Cache
  • 6. Considerations Shared multi- tenant system (simplified view) Caches... Caches Everywhere Process Kernel Virtualization Layer KernelNetwork Interface Process Kernel IO Interface Disk Controller Process Kernel IO Interface Disk Controller Process Kernel IO Interface Disk Controller Process Kernel Process Kernel Disk Disk Disk Disk Controller SSD Disk Controller Disk Disk Controller Disk
  • 7. • Linux Buffers & Caches • Buffers: Filesystem Metadata + Active in-flight pages • Caches: File contents
  • 8. • Kernel Tunables (pdflush) • /proc/sys/vm/...
  • 9. Some available tools • Too many to name but some are popular: • iozone, fio, dd, hdparm, bonnie++ • http://bitly.com/bundles/o_4p62vc3lid/4
  • 10. Problems Most published benchmarks measured the environment only once, at a single point in time!
  • 11. Problems Some tools have become so complex that is now almost impossible to reproduce results consistently
  • 12. Proposed solution • Create a simple yet effective tool to measure performance • Define a reproducible methodology for long-term testing
  • 13. Language • Need for access to low- level system calls • Low abstraction level • Choice: C
  • 14. Requisites •Keep it simple! • One process • One thread • One workload file
  • 15. What it does? • Serial Write • Serial Read • Random Rewrite • Random Read • Mixed Random Read & Write
  • 16. Mitigating buffers • It is impossible to avoid buffering at all levels in a non-proprietary system • But we can use posix_fadvise & Direct IO to mitigate local kernel buffers
  • 17. posix_fadvise int posix_fadvise(int fd, off_t offset, off_t len, int advice); “Programs can use posix_fadvise() to announce an intention to access file data in a specific pattern in the future, thus allowing the kernel to perform appropriate optimizations.”
  • 18. posix_fadvise POSIX_FADV_DONTNEED attempts to free cached pages associated with the specified region.
  • 19. posix_fadvise /* *TRY* to minimize buffer cache effect */ /* There's no guarantee that the file will be removed from buffer cache though */ /* Keep in mind that buffering will happen at some level */ if (fadvise == true) { rc = posix_fadvise(fd, 0, 0, POSIX_FADV_DONTNEED); ...
  • 20. posix_fadvise Test DONTNEED NORMAL Difference Write Read Rewrite Reread Random 5,82 6,05 0,96 0,163 0,017 9,59 3,037 2,993 1,01 1,244 0,019 65,47 2,403 1,559 1,54 100Mbytes file - 4k BS -XFS - 20 run average
  • 21. posix_fadvise Test DONTNEED NORMAL Difference Write Read Rewrite Reread Random 5,82 6,05 0,96 0,163 0,017 9,59 3,037 2,993 1,01 1,244 0,019 65,47 2,403 1,559 1,54 100Mbytes file - 4k BS -XFS - 20 run average 6,0 GB/s 5,2 GB/s
  • 22. Transfer Rates • SSD transfer rates typically range from 100MB/s to 600MB/s • Something is wrong...
  • 23. Synchronous IO int open(const char *pathname, int flags, mode_t mode); O_SYNC The file is opened for synchronous I/O. Any write(2)s on the resulting file descriptor will block the calling process until the data has been physically written to the underlying hardware. But see NOTES below.
  • 24. Direct IO int open(const char *pathname, int flags, mode_t mode); O_DIRECT Try to minimize cache effects of the I/O to and from this file. In general this will degrade performance, but it is useful in special situations, such as when applications do their own caching. File I/O is done directly to/from user space buffers.
  • 25. Direct IO flags = O_RDWR | O_CREAT | O_TRUNC | O_SYNC; if (directIO == true) { myWarn(3,__FUNCTION__, "Will try to enable Direct IO"); flags = flags| O_DIRECT; }
  • 26. Notes below Most Linux file systems don't actually implement the POSIX O_SYNC semantics, which require all metadata updates of a write to be on disk on returning to userspace, but only the O_DSYNC semantics, which require only actual file data and meta-data necessary to retrieve it to be on disk by the time the system call returns.
  • 27. Results Test -Direct IO (s) +Direct IO (s) Difference Write Read Rewrite Reread Random 5,82 6,640 0,88 0,163 2,197 0,07 3,037 2,905 1,05 1,244 2,845 0,44 2,403 2,941 0,82 100Mbytes file - 4k BS -XFS - 20 run average
  • 28. Results Test +Direct IO (s) MB/s Write Read Rewrite Reread Random 6,640 15,79 2,197 47,72 2,905 36,09 2,845 36,85 2,941 35,64 100Mbytes file - 4k BS -XFS - 20 run average
  • 29. iomelt IOMELT Version 0.71 Usage: -b BYTES Block size used for IO functions (must be a power of two) -d Dump data in a format that can be digested by pattern processing commands -D Print time in seconds since epoch -h Prints usage parameters -H Omit header row when dumping data -n Do NOT convert bytes to human readable format -o Do NOT display results (does not override -d) -O Reopen worload file before every test -p PATH Directory where the test file should be created -r Randomize workload file name -R Try to enable Direct IO -s BYTES Workload file size (default: 10Mb) -v Controls the level of verbosity -V Displays version number -b and -s values can be specified in bytes (default), Kilobytes (with 'K' suffix), Megabytes (with 'M'suffix), or Gigabytes (with 'G' suffix) Unless specified, block size value is the optimal block transfer size for the file system as returned by statvfs
  • 30. iomelt • Available at http://iomelt.com • Fork it on GitHub: • https://github.com/camposr/iomelt • Artistic License 2.0 • http://opensource.org/licenses/artistic-license-2.0
  • 31. Methodology How to measure the performance of several instance types on different regions for long periods of time?
  • 32. Methodology 1. Create a single AMI 1.1.Update Kernel, compiler and libraries 2. Replicate it in several regions and different instance types: 2.1.m1.small 2.2.m1.medium 2.3.m1.large
  • 34. Methodology Schedule a cron job to run every five minutes */5 * * 8 * /root/iomelt/iomelt -dor >> /root/iomelt.out 2>&1
  • 41. Results For a complete list of results: http://bit.ly/19L9xm2
  • 42. Conclusions • Shared multi-tenant environments create new challenges for performance analysis • Traditional benchmark methodologies are not suitable for these environments • Excessive versatility in most available tools make it hard to get reproducible measurements
  • 43. Conclusions • Performance (in)consistency must be considered when designing systems that will run in the cloud • “What you don’t know might hurt you”