SlideShare una empresa de Scribd logo
1 de 57
Descargar para leer sin conexión
Filesystem Performance
From a Database Perspective


      Mark Wong
 markwkm@postgresql.org

    LinuxFest Northwest 2009


    April 25 - 26, 2009
How we are here today




   Generous equipment donations from HP and hosting from
   Command Prompt, Inc.
Setting Expectations


                                     This is not:
 This is:
                                           A comprehensive Linux
                                       ◮
       A guide for how to
   ◮
                                           filesystem evaluation.
       understand the i/o behavior
                                           A filesystem tuning guide
                                       ◮
       of your own system.
                                           (mkfs and mount options).
       A model of simple i/o
   ◮
                                           Representative of your
                                       ◮
       behavior based on
                                           system (unless you have the
       PostgreSQL
                                           exact same hardware.)
       Suggestion for testing your
   ◮
                                           A test of reliability or
                                       ◮
       own system.
                                           durability (mostly).
__      __
         / ~~~/  . o O ( Know your system! )
   ,----(      oo    )
  /      __      __/
 /|          ( |(
^    /___ / |
   |__|   |__|-quot;
Contents




        Testing Criteria
    ◮
               What do we want to test.
           ◮

               How we test it with fio.
           ◮


        Test Results
    ◮
Hardware Details

        HP DL380 G5
    ◮

        2 x Quad Core Intel(R) Xeon(R) E5405
    ◮

        HP 32GB Fully Buffered DIMM PC2-5300 8x4GB DR LP
    ◮
        Memory
        HP Smart Array P800 Controller w/ 512MB Cache
    ◮

        HP 72GB Hot Plug 2.5 Dual Port SAS 15,000 rpm Hard
    ◮
        Drives

              __     __
             / ~~~/  . o O ( Thank you HP! )
       ,----(     oo    )
     /       __     __/
    /|          ( |(
   ^     /___ / |
       |__|   |__|-quot;
Test Criteria

   PostgreSQL dictates the following (even though some of them are
   actually configurable:
         8KB block size
     ◮

         No use of posix fadvise
     ◮

         No use of direct i/o
     ◮

         No use of async i/o
     ◮

         Uses processes, not threads.
     ◮

   Based on the hardware:
         56GB data set - To minimize any caching in the 32GB of
     ◮
         system memory. (Want to use 64GB but these 72GB disks are
         in millions of bytes, i.e. not big enough for the 1 disk tests.)
         8 processes performing i/o - One fio process per core, except
     ◮
         for sequential i/o tests, otherwise the i/o won’t be sequential.
Linux v2.6.28-gentoo Filesystems Tested
          ext2
      ◮

          ext3
      ◮

          ext4
      ◮

          jfs
      ◮

          reiserfs
      ◮

          xfs
      ◮

              a8888b. . o O ( What is your favorite filesystem? )
             d888888b.
             8Pquot;YPquot;Y88
             8|o||o|88
             8’     .88
             8‘._.’ Y8.
           d/        ‘8b.
         .dP      .     Y8b.
       d8:’       quot;  ‘::88b.
      d8quot;               ‘Y88b
     :8P        ’        :888
      8a.       :       _a88P
   ._/quot;Yaa_ :        .| 88P|
         YPquot;        ‘| 8P ‘.
   /       ._____.d|        .’
   ‘--..__)888888P‘._.’
Hardware RAID Configurations

  These are the RAID configurations supported by the HP Smart
  Array p8001 disk controller:
         RAID 0
    ◮

         RAID 1+0
    ◮

         RAID 5
    ◮

         RAID 6
    ◮


             __     __
            / ~~~/  . o O ( Which RAID would you use? )
      ,----(     oo    )
    /       __     __/
   /|          ( |(
  ^     /___ / |
      |__|   |__|-quot;


    1
        Firmare v5.22
Test Program




  Use fio2 (Flexible I/O) v1.23 by Jens Axboe to test:
         Sequential Read
    ◮

         Sequential Write
    ◮

         Random Read
    ◮

         Random Write
    ◮

         Random Read/Write
    ◮




    2
        http://brick.kernel.dk/snaps/
__      __
         / ~~~/  . o O ( fio profiles )
   ,----(      oo    )
  /      __      __/
 /|          ( |(
^    /___ / |
   |__|   |__|-quot;
Sequential Read


   [seq-read]
   rw=read
   size=56g
   directory=/test
   fadvise_hint=0
   blocksize=8k
   direct=0
   numjobs=1
   nrfiles=1
   runtime=1h
   time_based
   exec_prerun=echo 3 > /proc/sys/vm/drop_caches
Sequential Write


   [seq-write]
   rw=write
   size=56g
   directory=/test
   fadvise_hint=0
   blocksize=8k
   direct=0
   numjobs=1
   nrfiles=1
   runtime=1h
   time_based
   exec_prerun=echo 3 > /proc/sys/vm/drop_caches
Random Read


  [random-read]
  rw=randread
  size=7g
  directory=/test
  fadvise_hint=0
  blocksize=8k
  direct=0
  numjobs=8
  nrfiles=1
  runtime=1h
  time_based
  exec_prerun=echo 3 > /proc/sys/vm/drop_caches
Random Write


  [random-write]
  rw=randwrite
  size=7g
  directory=/test
  fadvise_hint=0
  blocksize=8k
  direct=0
  numjobs=8
  nrfiles=1
  runtime=1h
  exec_prerun=echo 3 > /proc/sys/vm/drop_caches
Random Read/Write


  [read-write]
  rw=rw
  rwmixread=50
  size=7g
  directory=/test
  fadvise_hint=0
  blocksize=8k
  direct=0
  numjobs=8
  nrfiles=1
  runtime=1h
  time_based
  exec_prerun=echo 3 > /proc/sys/vm/drop_caches
__      __
         / ~~~/  . o O ( Results! )
   ,----(      oo    )
  /      __      __/
 /|          ( |(
^    /___ / |
   |__|   |__|-quot;


There is more information than what is in this presentation, raw
data is at:
http://207.173.203.223/~ markwkm/community10/fio/linux-2.6.28-gentoo/

      Raw mpstat, vmstat, iostat, and sar data.
  ◮
A few words about statistics...




   Not enough time or data to calculate good statistics. My excuses:
         1 hour per test
     ◮

         5 tests per filesystem
     ◮

         6 filesystems per RAID configuration (1 filesystem consistently
     ◮
         halts testing, requiring manual intervention...)
         7 RAID configurations for this presentation
     ◮

         210+ hours of continuous testing for this presentation.
     ◮
Examine the following charts for a feel of how reliable the results
may be.
Random Read with Linux 2.6.28-gentoo ext2 on 1 Disk
Random Write with Linux 2.6.28-gentoo ext2 on 1 Disk
Read/Write Mix (Reads) with Linux 2.6.28-gentoo ext2 on
1 Disk
Read/Write Mix (Writes) with Linux 2.6.28-gentoo ext2
on 1 Disk
Sequential Read with Linux 2.6.28-gentoo ext2 on 1 Disk
Sequential Write with Linux 2.6.28-gentoo ext2 on 1 Disk
A couple notes about the following charts




        If you see missing data, it means the test didn’t complete
    ◮
        successfully.
        Charts are not all scaled the same, focus is on trends within a
    ◮
        chart. (But maybe that is not a good choice?)
Results for all the filesystems when using only a single disk...
Results for all the filesystems when striping across four disks...
Let’s look at that step by step for RAID 0.
Trends might not be the same when adding disks to other RAID
configurations. (We didn’t test it because we moved on to
database systems testings.)
What is the best use of disks with respect to capacity?
Filesystem Readahead



   Values are in number of 512-byte segments, set per device.
   To get the current readahead size:

   $ blockdev --getra /dev/sda
   256


   To set the readahead size to 8 MB:

   $ blockdev --setra 16384 /dev/sda
What does this all mean for my database system?




   It depends... Let’s look at one sample of just using difference
   filesystems.
Raw data for comparing filesystems




   Initial inspection of results suggests we are close to being bound by
   processor and storage performance, meaning we don’t really know
   who performs the best:
     ◮   http://207.173.203.223/~ markwkm/community6/dbt2/m-fs/ext2.1500.2/
     ◮   http://207.173.203.223/~ markwkm/community6/dbt2/m-fs/ext3.1500.2/
     ◮   http://207.173.203.223/~ markwkm/community6/dbt2/m-fs/ext4.1500.2/
     ◮   http://207.173.203.223/~ markwkm/community6/dbt2/m-fs/jfs.1500.2/
     ◮   http://207.173.203.223/~ markwkm/community6/dbt2/m-fs/reiserfs.1500.2/
     ◮   http://207.173.203.223/~ markwkm/community6/dbt2/m-fs/xfs.1500.2/
Linux I/O Elevator Algorithm



   To get current algorithm in []’s:

   $ cat /sys/block/sda/queue/scheduler
   noop anticipatory [deadline] cfq


   To set a different algorithm:

   $ echo cfg > /sys/block/sda/queue/scheduler
   noop anticipatory [deadline] cfq
Why use deadline?3



          Attention! Database servers, especially those using ”TCQ”
    ◮
          disks should investigate performance with the ’deadline’ IO
          scheduler. Any system with high disk performance
          requirements should do so, in fact.
          Also, users with hardware RAID controllers, doing striping,
    ◮
          may find highly variable performance results with using the
          as-iosched. The as-iosched anticipatory implementation is
          based on the notion that a disk device has only one physical
          seeking head. A striped RAID controller actually has a head
          for each physical device in the logical RAID device.




     3
         Linux source code: Documentation/block/as-iosched.txt
Final Notes




   You have to test your own system to see what it can do, don’t take
   someone else’s word for it.
http://www.slideshare.net/markwkm
__      __
         / ~~~/  . o O ( Thank you! )
   ,----(      oo    )
  /      __      __/
 /|          ( |(
^    /___ / |
   |__|   |__|-quot;
Acknowledgements



  Haley Jane Wakenshaw

            __      __
           / ~~~/ 
     ,----(      oo    )
    /      __      __/
   /|          ( |(
  ^    /___ / |
     |__|   |__|-quot;
License




   This work is licensed under a Creative Commons Attribution 3.0
   Unported License. To view a copy of this license, (a) visit
   http://creativecommons.org/licenses/by/3.0/us/; or, (b)
   send a letter to Creative Commons, 171 2nd Street, Suite 300, San
   Francisco, California, 94105, USA.

Más contenido relacionado

La actualidad más candente

Yocto Project Open Source Build System and Collaboration Initiative
Yocto Project Open Source Build System and Collaboration InitiativeYocto Project Open Source Build System and Collaboration Initiative
Yocto Project Open Source Build System and Collaboration InitiativeMarcelo Sanz
 
USENIX LISA11 Tutorial: ZFS a
USENIX LISA11 Tutorial: ZFS a USENIX LISA11 Tutorial: ZFS a
USENIX LISA11 Tutorial: ZFS a Richard Elling
 
Docker storage drivers by Jérôme Petazzoni
Docker storage drivers by Jérôme PetazzoniDocker storage drivers by Jérôme Petazzoni
Docker storage drivers by Jérôme PetazzoniDocker, Inc.
 
Boosting I/O Performance with KVM io_uring
Boosting I/O Performance with KVM io_uringBoosting I/O Performance with KVM io_uring
Boosting I/O Performance with KVM io_uringShapeBlue
 
Slab Allocator in Linux Kernel
Slab Allocator in Linux KernelSlab Allocator in Linux Kernel
Slab Allocator in Linux KernelAdrian Huang
 
Cloudstack vs Openstack
Cloudstack vs OpenstackCloudstack vs Openstack
Cloudstack vs OpenstackHuzefa Husain
 
Dell Storage Management
Dell Storage ManagementDell Storage Management
Dell Storage ManagementDell World
 
Understanding das-nas-san
Understanding das-nas-sanUnderstanding das-nas-san
Understanding das-nas-sanAshwin Pawar
 
Build, Deploy, and Serve Machine-Learning Models on Streaming Data Using Amaz...
Build, Deploy, and Serve Machine-Learning Models on Streaming Data Using Amaz...Build, Deploy, and Serve Machine-Learning Models on Streaming Data Using Amaz...
Build, Deploy, and Serve Machine-Learning Models on Streaming Data Using Amaz...Amazon Web Services
 
RocksDB compaction
RocksDB compactionRocksDB compaction
RocksDB compactionMIJIN AN
 
Linux Kernel Booting Process (2) - For NLKB
Linux Kernel Booting Process (2) - For NLKBLinux Kernel Booting Process (2) - For NLKB
Linux Kernel Booting Process (2) - For NLKBshimosawa
 
Operating systems linux
Operating systems linuxOperating systems linux
Operating systems linuxwilliam_morg
 
Gpfs introandsetup
Gpfs introandsetupGpfs introandsetup
Gpfs introandsetupasihan
 
Performance Analysis Tools for Linux Kernel
Performance Analysis Tools for Linux KernelPerformance Analysis Tools for Linux Kernel
Performance Analysis Tools for Linux Kernellcplcp1
 

La actualidad más candente (20)

Yocto Project Open Source Build System and Collaboration Initiative
Yocto Project Open Source Build System and Collaboration InitiativeYocto Project Open Source Build System and Collaboration Initiative
Yocto Project Open Source Build System and Collaboration Initiative
 
Process management
Process managementProcess management
Process management
 
USENIX LISA11 Tutorial: ZFS a
USENIX LISA11 Tutorial: ZFS a USENIX LISA11 Tutorial: ZFS a
USENIX LISA11 Tutorial: ZFS a
 
Docker storage drivers by Jérôme Petazzoni
Docker storage drivers by Jérôme PetazzoniDocker storage drivers by Jérôme Petazzoni
Docker storage drivers by Jérôme Petazzoni
 
Boosting I/O Performance with KVM io_uring
Boosting I/O Performance with KVM io_uringBoosting I/O Performance with KVM io_uring
Boosting I/O Performance with KVM io_uring
 
Slab Allocator in Linux Kernel
Slab Allocator in Linux KernelSlab Allocator in Linux Kernel
Slab Allocator in Linux Kernel
 
Storage Basics
Storage BasicsStorage Basics
Storage Basics
 
Cloudstack vs Openstack
Cloudstack vs OpenstackCloudstack vs Openstack
Cloudstack vs Openstack
 
Dell Storage Management
Dell Storage ManagementDell Storage Management
Dell Storage Management
 
Understanding das-nas-san
Understanding das-nas-sanUnderstanding das-nas-san
Understanding das-nas-san
 
Build, Deploy, and Serve Machine-Learning Models on Streaming Data Using Amaz...
Build, Deploy, and Serve Machine-Learning Models on Streaming Data Using Amaz...Build, Deploy, and Serve Machine-Learning Models on Streaming Data Using Amaz...
Build, Deploy, and Serve Machine-Learning Models on Streaming Data Using Amaz...
 
Chapter 7
Chapter 7Chapter 7
Chapter 7
 
Linux File System
Linux File SystemLinux File System
Linux File System
 
RocksDB compaction
RocksDB compactionRocksDB compaction
RocksDB compaction
 
Linux Kernel Booting Process (2) - For NLKB
Linux Kernel Booting Process (2) - For NLKBLinux Kernel Booting Process (2) - For NLKB
Linux Kernel Booting Process (2) - For NLKB
 
Operating systems linux
Operating systems linuxOperating systems linux
Operating systems linux
 
ZFS in 30 minutes
ZFS in 30 minutesZFS in 30 minutes
ZFS in 30 minutes
 
Gpfs introandsetup
Gpfs introandsetupGpfs introandsetup
Gpfs introandsetup
 
Presentation on linux
Presentation on linuxPresentation on linux
Presentation on linux
 
Performance Analysis Tools for Linux Kernel
Performance Analysis Tools for Linux KernelPerformance Analysis Tools for Linux Kernel
Performance Analysis Tools for Linux Kernel
 

Similar a Filesystem Performance from a Database Perspective

PostgreSQL Portland Performance Practice Project - Database Test 2 Filesystem...
PostgreSQL Portland Performance Practice Project - Database Test 2 Filesystem...PostgreSQL Portland Performance Practice Project - Database Test 2 Filesystem...
PostgreSQL Portland Performance Practice Project - Database Test 2 Filesystem...Mark Wong
 
PostgreSQL Portland Performance Practice Project - Database Test 2 Series Ove...
PostgreSQL Portland Performance Practice Project - Database Test 2 Series Ove...PostgreSQL Portland Performance Practice Project - Database Test 2 Series Ove...
PostgreSQL Portland Performance Practice Project - Database Test 2 Series Ove...Mark Wong
 
Performance Whack-a-Mole Tutorial (pgCon 2009)
Performance Whack-a-Mole Tutorial (pgCon 2009) Performance Whack-a-Mole Tutorial (pgCon 2009)
Performance Whack-a-Mole Tutorial (pgCon 2009) PostgreSQL Experts, Inc.
 
Inspection and maintenance tools (Linux / OpenStack)
Inspection and maintenance tools (Linux / OpenStack)Inspection and maintenance tools (Linux / OpenStack)
Inspection and maintenance tools (Linux / OpenStack)Gerard Braad
 
PostgreSQL Portland Performance Practice Project - Database Test 2 Howto
PostgreSQL Portland Performance Practice Project - Database Test 2 HowtoPostgreSQL Portland Performance Practice Project - Database Test 2 Howto
PostgreSQL Portland Performance Practice Project - Database Test 2 HowtoMark Wong
 
Performance Whack A Mole
Performance Whack A MolePerformance Whack A Mole
Performance Whack A Moleoscon2007
 
Ceph Day Melbourne - Troubleshooting Ceph
Ceph Day Melbourne - Troubleshooting Ceph Ceph Day Melbourne - Troubleshooting Ceph
Ceph Day Melbourne - Troubleshooting Ceph Ceph Community
 
Systems Automation with Puppet
Systems Automation with PuppetSystems Automation with Puppet
Systems Automation with Puppetelliando dias
 
Evergreen Sysadmin Survival Skills
Evergreen Sysadmin Survival SkillsEvergreen Sysadmin Survival Skills
Evergreen Sysadmin Survival SkillsEvergreen ILS
 
Open Source Data Deduplication
Open Source Data DeduplicationOpen Source Data Deduplication
Open Source Data DeduplicationRedWireServices
 
Hands-on Lab: How to Unleash Your Storage Performance by Using NVM Express™ B...
Hands-on Lab: How to Unleash Your Storage Performance by Using NVM Express™ B...Hands-on Lab: How to Unleash Your Storage Performance by Using NVM Express™ B...
Hands-on Lab: How to Unleash Your Storage Performance by Using NVM Express™ B...Odinot Stanislas
 
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
 
Resume_CQ_Edward
Resume_CQ_EdwardResume_CQ_Edward
Resume_CQ_Edwardcaiqi wang
 
pg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQLpg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQLMark Wong
 
SiteGround Tech TeamBuilding
SiteGround Tech TeamBuildingSiteGround Tech TeamBuilding
SiteGround Tech TeamBuildingMarian Marinov
 

Similar a Filesystem Performance from a Database Perspective (20)

PostgreSQL Portland Performance Practice Project - Database Test 2 Filesystem...
PostgreSQL Portland Performance Practice Project - Database Test 2 Filesystem...PostgreSQL Portland Performance Practice Project - Database Test 2 Filesystem...
PostgreSQL Portland Performance Practice Project - Database Test 2 Filesystem...
 
PostgreSQL Portland Performance Practice Project - Database Test 2 Series Ove...
PostgreSQL Portland Performance Practice Project - Database Test 2 Series Ove...PostgreSQL Portland Performance Practice Project - Database Test 2 Series Ove...
PostgreSQL Portland Performance Practice Project - Database Test 2 Series Ove...
 
Performance Whack-a-Mole Tutorial (pgCon 2009)
Performance Whack-a-Mole Tutorial (pgCon 2009) Performance Whack-a-Mole Tutorial (pgCon 2009)
Performance Whack-a-Mole Tutorial (pgCon 2009)
 
Inspection and maintenance tools (Linux / OpenStack)
Inspection and maintenance tools (Linux / OpenStack)Inspection and maintenance tools (Linux / OpenStack)
Inspection and maintenance tools (Linux / OpenStack)
 
PostgreSQL Portland Performance Practice Project - Database Test 2 Howto
PostgreSQL Portland Performance Practice Project - Database Test 2 HowtoPostgreSQL Portland Performance Practice Project - Database Test 2 Howto
PostgreSQL Portland Performance Practice Project - Database Test 2 Howto
 
Performance Whack A Mole
Performance Whack A MolePerformance Whack A Mole
Performance Whack A Mole
 
Introduction to clarity
Introduction to clarityIntroduction to clarity
Introduction to clarity
 
Ceph Day Melbourne - Troubleshooting Ceph
Ceph Day Melbourne - Troubleshooting Ceph Ceph Day Melbourne - Troubleshooting Ceph
Ceph Day Melbourne - Troubleshooting Ceph
 
Systems Automation with Puppet
Systems Automation with PuppetSystems Automation with Puppet
Systems Automation with Puppet
 
Database Hardware Benchmarking
Database Hardware BenchmarkingDatabase Hardware Benchmarking
Database Hardware Benchmarking
 
Performance Whackamole (short version)
Performance Whackamole (short version)Performance Whackamole (short version)
Performance Whackamole (short version)
 
Evergreen Sysadmin Survival Skills
Evergreen Sysadmin Survival SkillsEvergreen Sysadmin Survival Skills
Evergreen Sysadmin Survival Skills
 
Open Source Data Deduplication
Open Source Data DeduplicationOpen Source Data Deduplication
Open Source Data Deduplication
 
MySQL Tuning
MySQL TuningMySQL Tuning
MySQL Tuning
 
Hands-on Lab: How to Unleash Your Storage Performance by Using NVM Express™ B...
Hands-on Lab: How to Unleash Your Storage Performance by Using NVM Express™ B...Hands-on Lab: How to Unleash Your Storage Performance by Using NVM Express™ B...
Hands-on Lab: How to Unleash Your Storage Performance by Using NVM Express™ B...
 
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 ...
 
Resume_CQ_Edward
Resume_CQ_EdwardResume_CQ_Edward
Resume_CQ_Edward
 
pg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQLpg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQL
 
Measuring Firebird Disk I/O
Measuring Firebird Disk I/OMeasuring Firebird Disk I/O
Measuring Firebird Disk I/O
 
SiteGround Tech TeamBuilding
SiteGround Tech TeamBuildingSiteGround Tech TeamBuilding
SiteGround Tech TeamBuilding
 

Más de Mark Wong

OHAI, my name is Chelnik! PGCon 2014 Mockumentary
OHAI, my name is Chelnik! PGCon 2014 MockumentaryOHAI, my name is Chelnik! PGCon 2014 Mockumentary
OHAI, my name is Chelnik! PGCon 2014 MockumentaryMark Wong
 
OHAI, my name is Chelnik! Postgres Open 2013 Report
OHAI, my name is Chelnik! Postgres Open 2013 ReportOHAI, my name is Chelnik! Postgres Open 2013 Report
OHAI, my name is Chelnik! Postgres Open 2013 ReportMark Wong
 
collectd & PostgreSQL
collectd & PostgreSQLcollectd & PostgreSQL
collectd & PostgreSQLMark Wong
 
Android & PostgreSQL
Android & PostgreSQLAndroid & PostgreSQL
Android & PostgreSQLMark Wong
 
PGTop for Android: Things I learned making this app
PGTop for Android: Things I learned making this appPGTop for Android: Things I learned making this app
PGTop for Android: Things I learned making this appMark Wong
 
Introduction to PostgreSQL
Introduction to PostgreSQLIntroduction to PostgreSQL
Introduction to PostgreSQLMark Wong
 
Developing PGTop for Android
Developing PGTop for AndroidDeveloping PGTop for Android
Developing PGTop for AndroidMark Wong
 
Pg in-the-brazilian-armed-forces-presentation
Pg in-the-brazilian-armed-forces-presentationPg in-the-brazilian-armed-forces-presentation
Pg in-the-brazilian-armed-forces-presentationMark Wong
 
pg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQLpg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQLMark Wong
 
pg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQLpg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQLMark Wong
 
PostgreSQL Portland Performance Practice Project - Database Test 2 Tuning
PostgreSQL Portland Performance Practice Project - Database Test 2 TuningPostgreSQL Portland Performance Practice Project - Database Test 2 Tuning
PostgreSQL Portland Performance Practice Project - Database Test 2 TuningMark Wong
 
PostgreSQL Portland Performance Practice Project - Database Test 2 Workload D...
PostgreSQL Portland Performance Practice Project - Database Test 2 Workload D...PostgreSQL Portland Performance Practice Project - Database Test 2 Workload D...
PostgreSQL Portland Performance Practice Project - Database Test 2 Workload D...Mark Wong
 
PostgreSQL Portland Performance Practice Project - Database Test 2 Background
PostgreSQL Portland Performance Practice Project - Database Test 2 BackgroundPostgreSQL Portland Performance Practice Project - Database Test 2 Background
PostgreSQL Portland Performance Practice Project - Database Test 2 BackgroundMark Wong
 
pg_top is 'top' for PostgreSQL: pg_top + pg_proctab
pg_top is 'top' for PostgreSQL: pg_top + pg_proctabpg_top is 'top' for PostgreSQL: pg_top + pg_proctab
pg_top is 'top' for PostgreSQL: pg_top + pg_proctabMark Wong
 
Linux Filesystems, RAID, and more
Linux Filesystems, RAID, and moreLinux Filesystems, RAID, and more
Linux Filesystems, RAID, and moreMark Wong
 
pg_top is 'top' for PostgreSQL
pg_top is 'top' for PostgreSQLpg_top is 'top' for PostgreSQL
pg_top is 'top' for PostgreSQLMark Wong
 
What Is Going On?
What Is Going On?What Is Going On?
What Is Going On?Mark Wong
 

Más de Mark Wong (17)

OHAI, my name is Chelnik! PGCon 2014 Mockumentary
OHAI, my name is Chelnik! PGCon 2014 MockumentaryOHAI, my name is Chelnik! PGCon 2014 Mockumentary
OHAI, my name is Chelnik! PGCon 2014 Mockumentary
 
OHAI, my name is Chelnik! Postgres Open 2013 Report
OHAI, my name is Chelnik! Postgres Open 2013 ReportOHAI, my name is Chelnik! Postgres Open 2013 Report
OHAI, my name is Chelnik! Postgres Open 2013 Report
 
collectd & PostgreSQL
collectd & PostgreSQLcollectd & PostgreSQL
collectd & PostgreSQL
 
Android & PostgreSQL
Android & PostgreSQLAndroid & PostgreSQL
Android & PostgreSQL
 
PGTop for Android: Things I learned making this app
PGTop for Android: Things I learned making this appPGTop for Android: Things I learned making this app
PGTop for Android: Things I learned making this app
 
Introduction to PostgreSQL
Introduction to PostgreSQLIntroduction to PostgreSQL
Introduction to PostgreSQL
 
Developing PGTop for Android
Developing PGTop for AndroidDeveloping PGTop for Android
Developing PGTop for Android
 
Pg in-the-brazilian-armed-forces-presentation
Pg in-the-brazilian-armed-forces-presentationPg in-the-brazilian-armed-forces-presentation
Pg in-the-brazilian-armed-forces-presentation
 
pg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQLpg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQL
 
pg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQLpg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQL
 
PostgreSQL Portland Performance Practice Project - Database Test 2 Tuning
PostgreSQL Portland Performance Practice Project - Database Test 2 TuningPostgreSQL Portland Performance Practice Project - Database Test 2 Tuning
PostgreSQL Portland Performance Practice Project - Database Test 2 Tuning
 
PostgreSQL Portland Performance Practice Project - Database Test 2 Workload D...
PostgreSQL Portland Performance Practice Project - Database Test 2 Workload D...PostgreSQL Portland Performance Practice Project - Database Test 2 Workload D...
PostgreSQL Portland Performance Practice Project - Database Test 2 Workload D...
 
PostgreSQL Portland Performance Practice Project - Database Test 2 Background
PostgreSQL Portland Performance Practice Project - Database Test 2 BackgroundPostgreSQL Portland Performance Practice Project - Database Test 2 Background
PostgreSQL Portland Performance Practice Project - Database Test 2 Background
 
pg_top is 'top' for PostgreSQL: pg_top + pg_proctab
pg_top is 'top' for PostgreSQL: pg_top + pg_proctabpg_top is 'top' for PostgreSQL: pg_top + pg_proctab
pg_top is 'top' for PostgreSQL: pg_top + pg_proctab
 
Linux Filesystems, RAID, and more
Linux Filesystems, RAID, and moreLinux Filesystems, RAID, and more
Linux Filesystems, RAID, and more
 
pg_top is 'top' for PostgreSQL
pg_top is 'top' for PostgreSQLpg_top is 'top' for PostgreSQL
pg_top is 'top' for PostgreSQL
 
What Is Going On?
What Is Going On?What Is Going On?
What Is Going On?
 

Último

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
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
 

Último (20)

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
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
 

Filesystem Performance from a Database Perspective

  • 1. Filesystem Performance From a Database Perspective Mark Wong markwkm@postgresql.org LinuxFest Northwest 2009 April 25 - 26, 2009
  • 2. How we are here today Generous equipment donations from HP and hosting from Command Prompt, Inc.
  • 3. Setting Expectations This is not: This is: A comprehensive Linux ◮ A guide for how to ◮ filesystem evaluation. understand the i/o behavior A filesystem tuning guide ◮ of your own system. (mkfs and mount options). A model of simple i/o ◮ Representative of your ◮ behavior based on system (unless you have the PostgreSQL exact same hardware.) Suggestion for testing your ◮ A test of reliability or ◮ own system. durability (mostly).
  • 4. __ __ / ~~~/ . o O ( Know your system! ) ,----( oo ) / __ __/ /| ( |( ^ /___ / | |__| |__|-quot;
  • 5. Contents Testing Criteria ◮ What do we want to test. ◮ How we test it with fio. ◮ Test Results ◮
  • 6. Hardware Details HP DL380 G5 ◮ 2 x Quad Core Intel(R) Xeon(R) E5405 ◮ HP 32GB Fully Buffered DIMM PC2-5300 8x4GB DR LP ◮ Memory HP Smart Array P800 Controller w/ 512MB Cache ◮ HP 72GB Hot Plug 2.5 Dual Port SAS 15,000 rpm Hard ◮ Drives __ __ / ~~~/ . o O ( Thank you HP! ) ,----( oo ) / __ __/ /| ( |( ^ /___ / | |__| |__|-quot;
  • 7. Test Criteria PostgreSQL dictates the following (even though some of them are actually configurable: 8KB block size ◮ No use of posix fadvise ◮ No use of direct i/o ◮ No use of async i/o ◮ Uses processes, not threads. ◮ Based on the hardware: 56GB data set - To minimize any caching in the 32GB of ◮ system memory. (Want to use 64GB but these 72GB disks are in millions of bytes, i.e. not big enough for the 1 disk tests.) 8 processes performing i/o - One fio process per core, except ◮ for sequential i/o tests, otherwise the i/o won’t be sequential.
  • 8. Linux v2.6.28-gentoo Filesystems Tested ext2 ◮ ext3 ◮ ext4 ◮ jfs ◮ reiserfs ◮ xfs ◮ a8888b. . o O ( What is your favorite filesystem? ) d888888b. 8Pquot;YPquot;Y88 8|o||o|88 8’ .88 8‘._.’ Y8. d/ ‘8b. .dP . Y8b. d8:’ quot; ‘::88b. d8quot; ‘Y88b :8P ’ :888 8a. : _a88P ._/quot;Yaa_ : .| 88P| YPquot; ‘| 8P ‘. / ._____.d| .’ ‘--..__)888888P‘._.’
  • 9. Hardware RAID Configurations These are the RAID configurations supported by the HP Smart Array p8001 disk controller: RAID 0 ◮ RAID 1+0 ◮ RAID 5 ◮ RAID 6 ◮ __ __ / ~~~/ . o O ( Which RAID would you use? ) ,----( oo ) / __ __/ /| ( |( ^ /___ / | |__| |__|-quot; 1 Firmare v5.22
  • 10. Test Program Use fio2 (Flexible I/O) v1.23 by Jens Axboe to test: Sequential Read ◮ Sequential Write ◮ Random Read ◮ Random Write ◮ Random Read/Write ◮ 2 http://brick.kernel.dk/snaps/
  • 11. __ __ / ~~~/ . o O ( fio profiles ) ,----( oo ) / __ __/ /| ( |( ^ /___ / | |__| |__|-quot;
  • 12. Sequential Read [seq-read] rw=read size=56g directory=/test fadvise_hint=0 blocksize=8k direct=0 numjobs=1 nrfiles=1 runtime=1h time_based exec_prerun=echo 3 > /proc/sys/vm/drop_caches
  • 13. Sequential Write [seq-write] rw=write size=56g directory=/test fadvise_hint=0 blocksize=8k direct=0 numjobs=1 nrfiles=1 runtime=1h time_based exec_prerun=echo 3 > /proc/sys/vm/drop_caches
  • 14. Random Read [random-read] rw=randread size=7g directory=/test fadvise_hint=0 blocksize=8k direct=0 numjobs=8 nrfiles=1 runtime=1h time_based exec_prerun=echo 3 > /proc/sys/vm/drop_caches
  • 15. Random Write [random-write] rw=randwrite size=7g directory=/test fadvise_hint=0 blocksize=8k direct=0 numjobs=8 nrfiles=1 runtime=1h exec_prerun=echo 3 > /proc/sys/vm/drop_caches
  • 16. Random Read/Write [read-write] rw=rw rwmixread=50 size=7g directory=/test fadvise_hint=0 blocksize=8k direct=0 numjobs=8 nrfiles=1 runtime=1h time_based exec_prerun=echo 3 > /proc/sys/vm/drop_caches
  • 17. __ __ / ~~~/ . o O ( Results! ) ,----( oo ) / __ __/ /| ( |( ^ /___ / | |__| |__|-quot; There is more information than what is in this presentation, raw data is at: http://207.173.203.223/~ markwkm/community10/fio/linux-2.6.28-gentoo/ Raw mpstat, vmstat, iostat, and sar data. ◮
  • 18. A few words about statistics... Not enough time or data to calculate good statistics. My excuses: 1 hour per test ◮ 5 tests per filesystem ◮ 6 filesystems per RAID configuration (1 filesystem consistently ◮ halts testing, requiring manual intervention...) 7 RAID configurations for this presentation ◮ 210+ hours of continuous testing for this presentation. ◮
  • 19. Examine the following charts for a feel of how reliable the results may be.
  • 20. Random Read with Linux 2.6.28-gentoo ext2 on 1 Disk
  • 21. Random Write with Linux 2.6.28-gentoo ext2 on 1 Disk
  • 22. Read/Write Mix (Reads) with Linux 2.6.28-gentoo ext2 on 1 Disk
  • 23. Read/Write Mix (Writes) with Linux 2.6.28-gentoo ext2 on 1 Disk
  • 24. Sequential Read with Linux 2.6.28-gentoo ext2 on 1 Disk
  • 25. Sequential Write with Linux 2.6.28-gentoo ext2 on 1 Disk
  • 26. A couple notes about the following charts If you see missing data, it means the test didn’t complete ◮ successfully. Charts are not all scaled the same, focus is on trends within a ◮ chart. (But maybe that is not a good choice?)
  • 27. Results for all the filesystems when using only a single disk...
  • 28.
  • 29. Results for all the filesystems when striping across four disks...
  • 30.
  • 31. Let’s look at that step by step for RAID 0.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38. Trends might not be the same when adding disks to other RAID configurations. (We didn’t test it because we moved on to database systems testings.)
  • 39. What is the best use of disks with respect to capacity?
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46. Filesystem Readahead Values are in number of 512-byte segments, set per device. To get the current readahead size: $ blockdev --getra /dev/sda 256 To set the readahead size to 8 MB: $ blockdev --setra 16384 /dev/sda
  • 47.
  • 48. What does this all mean for my database system? It depends... Let’s look at one sample of just using difference filesystems.
  • 49.
  • 50. Raw data for comparing filesystems Initial inspection of results suggests we are close to being bound by processor and storage performance, meaning we don’t really know who performs the best: ◮ http://207.173.203.223/~ markwkm/community6/dbt2/m-fs/ext2.1500.2/ ◮ http://207.173.203.223/~ markwkm/community6/dbt2/m-fs/ext3.1500.2/ ◮ http://207.173.203.223/~ markwkm/community6/dbt2/m-fs/ext4.1500.2/ ◮ http://207.173.203.223/~ markwkm/community6/dbt2/m-fs/jfs.1500.2/ ◮ http://207.173.203.223/~ markwkm/community6/dbt2/m-fs/reiserfs.1500.2/ ◮ http://207.173.203.223/~ markwkm/community6/dbt2/m-fs/xfs.1500.2/
  • 51. Linux I/O Elevator Algorithm To get current algorithm in []’s: $ cat /sys/block/sda/queue/scheduler noop anticipatory [deadline] cfq To set a different algorithm: $ echo cfg > /sys/block/sda/queue/scheduler noop anticipatory [deadline] cfq
  • 52. Why use deadline?3 Attention! Database servers, especially those using ”TCQ” ◮ disks should investigate performance with the ’deadline’ IO scheduler. Any system with high disk performance requirements should do so, in fact. Also, users with hardware RAID controllers, doing striping, ◮ may find highly variable performance results with using the as-iosched. The as-iosched anticipatory implementation is based on the notion that a disk device has only one physical seeking head. A striped RAID controller actually has a head for each physical device in the logical RAID device. 3 Linux source code: Documentation/block/as-iosched.txt
  • 53. Final Notes You have to test your own system to see what it can do, don’t take someone else’s word for it.
  • 55. __ __ / ~~~/ . o O ( Thank you! ) ,----( oo ) / __ __/ /| ( |( ^ /___ / | |__| |__|-quot;
  • 56. Acknowledgements Haley Jane Wakenshaw __ __ / ~~~/ ,----( oo ) / __ __/ /| ( |( ^ /___ / | |__| |__|-quot;
  • 57. License This work is licensed under a Creative Commons Attribution 3.0 Unported License. To view a copy of this license, (a) visit http://creativecommons.org/licenses/by/3.0/us/; or, (b) send a letter to Creative Commons, 171 2nd Street, Suite 300, San Francisco, California, 94105, USA.