Home > Grade of the Steel > One Million IOPS on a 2 socket server

One Million IOPS on a 2 socket server

September 27, 2012 Leave a comment Go to comments

Today, using Fusion ioMemory technology, I worked with our team of experts to hit 1M 4K random read IOPS on Windows. We did this on a 2-socket Sandy Bridge Server.

Below is the screenshot to prove it:

image

Think for a moment about what it will take to actually make use of all those IOPS. If this is the type of speed you have at your disposal, maybe it is time to rethink what is possible. Check out our SDK at http://developer.fusionio.com for the leading edge work Fusion-io is doing in this space.

As I am sure my regular readers  can guess, I am loving my new job!

  1. you're behind
    September 28, 2012 at 00:47
    • Thomas Kejser
      September 28, 2012 at 07:25

      This is a single machine. No cluster, no cables, just the PCI bus.

      You want 1M IOPS in a cluster of servers? We did a billion of those already:

      http://www.channelregister.co.uk/2012/01/06/fusion_billion_iops/

      • October 5, 2012 at 11:09

        Thomas, this has been done, more than 4 years ago, so as the other guy said, you’re late to the party.
        The examples of that are quite numerous, ranging from home-made raid0’s to Violin Memory and TMS.
        I’d say they even beat you by using a single CPU 😉

        In 2012, MY entreprise flashNAS does 1.5 MIOPS single-socket, network shared, and it’s moving to dual socket 3MIOPS then 5MIOPS later this year (I was a bit short on cash recently …).

      • Thomas Kejser
        October 5, 2012 at 15:09

        Provide me details of your config and we can discuss if we are comparing apples and apples Ludo.

        1M 4K IOPS on a networked target is dead easy. Lets talk inside the server and rack density

    • Thomas Kejser
      September 28, 2012 at 07:31

      Could be interesting to try nodes like the one described here in an SVC cluster. With each node in the cluster delivering 1M – the aggregate IOPS would be a sight to behold.

  2. Ayyappan
    September 28, 2012 at 04:20

    Your experiment shows that you are a true lover of speed.

    • Thomas Kejser
      September 28, 2012 at 07:58

      You are right Ayyappan. I am excited by performance tuning and what it means for what it is possible to build.

  3. Finn Simonsen
    September 28, 2012 at 05:32

    Look forward to talk to people when they have rethought to possibilities 😉

    • Thomas Kejser
      September 28, 2012 at 07:53

      Why wait for it when you can drive it forward Finn? There is a point where the next step of performance gain is so large that it makes economic sense to change even existing apps. Exciting future ahead

  4. Alistair Stewart
    September 28, 2012 at 10:09

    My initial thoughts on this are that 4k random i/o is going to be reading structured data, i.e. database records. If you really want to get the best performance out of your database, you should be looking to maximise the performance of your server and storage hardware, so why run it on a Windows platform?

    • Thomas Kejser
      September 28, 2012 at 11:51

      Hi Alistair

      That is an odd comment. Perhaps you could elaborate on what your concern about Windows is here? The Windows Driver stack and I/O subsystem is very efficient exactly because database workloads are part of the tuning work that the Windows team does.

      My take on this is that if you can get 1M 4K IOPS out of the HW, your concern is going to be the thread synchronisation of the app consuming that data (and the data model) – not the OS it runs on.

      • Alistair Stewart
        September 28, 2012 at 12:30

        My view of Windows is that it is still not as enterprise ready as a good Unix OS such as Solaris or even Linux. If I were to pay a fortune for an Oracle license, for example, I would want to maximise the performance of the platform I was running it on and Windows would not be my platform of choice.

  5. Thomas Kejser
    September 28, 2012 at 13:16

    I dont think that statement is supported by data Alistair – what is “enterprise ready” is a highly subjective view.

    Based on my 15 year experience in the database industry, the largest waste of license money and CPU cycles comes from poor data models and bad application code, not the platform you run on. Painting with large brush strokes: I do think that Windows as a platform, because it has an easier learning curve, attracts a larger share of poor programmers than Linux. On the flip side (and with the same brush stroke) spending a lot of money for a license can often lead to the belief that the “enterprise” platform will magically save you from bad code, blinding programmers to inefficiencies that would be easily picked up by a Window developer. I have seen both things happen – at the end of the day, it is the data points that count.

    • October 5, 2012 at 11:12

      You want data ? every single serious system is NOT ON WINDOWS, some are linux, some are unix, some are military/proprietary.

      It’s not only a matter of performance, but security, and reliability. The security and reliability of windows are both extremely pitiful compared to the *nix world, where hacking a server takes hours instead of minutes, and servers NEVER need to be rebooted. EVER.

      The idea of windows as a serious server OS is a joke – you have every right to believe it, but it’s still wrong.

      People who can accept no UTF8 support, running on Windows and 32 max trigger chains are not qualified to pick a database, and much less an operating system.

      Lastly, convert to linux/postgres and you might still go to heaven. Good Luck 😉

      • Thomas Kejser
        October 5, 2012 at 15:00

        I don’t even know where to start contradicting your rant Ludo

        Windows is still one of the most widespread operating systems out there – not just on the client but on the server too. There are fundamental systems that underpin basic services in society that run on it. It’s LDAP compatible AD runs governments, large companies and banks. You are insulting a huge amount of people who do great work on that platform with this religious outburst. I am not saying Xnix is not up to the task too – but the world is diverse, get used to it

        And anyone who need more than 32 trigger levels should not be in the business of designing a database or running on one.

  6. October 5, 2012 at 15:29

    Thomas Kejser :
    Provide me details of your config and we can discuss if we are comparing apples and apples Ludo.
    1M 4K IOPS on a networked target is dead easy. Lets talk inside the server and rack density

    Actually my entreprise array does 3M IOPS in 3units on a two socket system. PLUS it’s shared through network (128Gbits) PLUS it has HA/dedupe/compress.

    Not on market yet though, I plan on visiting SV for funding this winter and the news will most likely start after that.

    • Thomas Kejser
      October 5, 2012 at 15:32

      Sounds like an interesting tech. I would be interested in meeting with you then Ludo. Shoot me an email.

  7. October 5, 2012 at 15:34

    Thomas Kejser :
    I don’t even know where to start contradicting your rant Ludo
    Windows is still one of the most widespread operating systems out there – not just on the client but on the server too. There are fundamental systems that underpin basic services in society that run on it. It’s LDAP compatible AD runs governments, large companies and banks. You are insulting a huge amount of people who do great work on that platform with this religious outburst. I am not saying Xnix is not up to the task too – but the world is diverse, get used to it
    And anyone who need more than 32 trigger levels should not be in the business of designing a database or running on one.

    It’s LDAP compatible AD is best run on Linux servers in case you didn’t notice, all DNS run on non-windows servers, etc.

    Lastly, I am *not* insulting a huge amount of people, merely pointing out that they’re using the wrong tools, often for the wrong reasons.
    I’m in no way trying to ignore the fact that people had a lot of incentive to convince them either.
    Like you should not ignore that the main reason windows was ever used is because it was easier for some people to get started with, not because it was in any way technically adequate.

    I agree, I don’t quite SEE why one would need 32 triggers BUT it is NOT the DBMS role to LIMIT that in any way. The reason SQLS has a trigger limit is to help BAD users get away with looping triggers, not because someone might have done weird stuff requiring 37 triggers.

    And that does not change the fact that not supporting UTF8 and running on windows are both unacceptable.

    • Thomas Kejser
      October 5, 2012 at 15:51

      I don’t think we can discuss this Ludo. There is too wide a gap between what you believe to be true about the world and ACTUAL reality of the Windows/SQL code base and deployments out there.

      We might have different opinions on VIM and emacs too (I like Emacs and vanilla ice cream) – but I don’t engage in religious debates about those either.

      Your device still sounds interesting. Even if I don’t hear from you about it – I wish you luck.

  8. October 10, 2012 at 09:23

    Indeed we cannot discuss this.

    Thanks for your comments on the device, best of luck to you too.

  9. October 18, 2012 at 22:49

    Hi Thomas-

    Do you have numbers for 64K IOPs? Or guidance on how 4K IOPs translate to SQL Server 64K IOs?

    • Thomas Kejser
      October 22, 2012 at 09:08

      Hi Rob

      We haven’t run a 64K test yet. But a 512K random gave us 11.5GB/sec – which is close to bus saturation on this PCI config.

  1. No trackbacks yet.

Leave a reply to Ayyappan Cancel reply