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
CephCeph
Ceph
 
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...
 
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

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Dernier (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

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”