Scratch that, there are actually a couple subtle changes, I did a diff to compare:

< server.allow-insecure: on
29c27
< network.remote-dio: enable
---
> network.remote-dio: off

On Sat, Aug 4, 2018 at 10:34 AM, Jayme <jaymef@gmail.com> wrote:
One more interesting thing to note.  As a test I just re-ran DD on engine VM and got around 3-5MB/sec average writes.  I had not previous set this volume to optimize for virt store.  So I went ahead and set that option and now I'm getting 50MB/sec writes. 

However, if I compare my gluster engine volume info now VS what I just posted in above reply before I made the optimize change all the gluster options are identical, not one value is changed as far as I can see.  What is the optimize for virt store option in the admin GUI doing exactly?

On Sat, Aug 4, 2018 at 10:29 AM, Jayme <jaymef@gmail.com> wrote:
One more note on this.  I only set optimize for virt on data volumes.  I did not and wasn't sure if I should set on engine volume.  My DD tests on engine VM are writing at ~8Mb/sec (like my test VM on data volume was before I made the change).  Is it recommended to use the optimize for virt on the engine volume as well?  



On Sat, Aug 4, 2018 at 10:26 AM, Jayme <jaymef@gmail.com> wrote:
Interesting that it should have been set by cockpit but seemingly wasn't (at least it did not appear so in my case, as setting optimize for virt increased performance dramatically).  I did indeed use the cockpit to deploy.  I was using ovirt node on all three host, recent download/burn of 4.2.5.  Here is my current gluster volume info if it's helpful to anyone:

Volume Name: data
Type: Replicate
Volume ID: 1428c3d3-8a51-4e45-a7bb-86b3bde8b6ea
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 3 = 3
Transport-type: tcp
Bricks:
Brick1: MASKED:/gluster_bricks/data/data
Brick2: MASKED:/gluster_bricks/data/data
Brick3: MASKED:/gluster_bricks/data/data
Options Reconfigured:
features.barrier: disable
server.allow-insecure: on
cluster.granular-entry-heal: enable
performance.strict-o-direct: on
network.ping-timeout: 30
storage.owner-gid: 36
storage.owner-uid: 36
user.cifs: off
features.shard: on
cluster.shd-wait-qlength: 10000
cluster.shd-max-threads: 8
cluster.locking-scheme: granular
cluster.data-self-heal-algorithm: full
cluster.server-quorum-type: server
cluster.quorum-type: auto
cluster.eager-lock: enable
network.remote-dio: enable
performance.low-prio-threads: 32
performance.io-cache: off
performance.read-ahead: off
performance.quick-read: off
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: off

Volume Name: data2
Type: Replicate
Volume ID: e97a2e9c-cd47-4f18-b2c2-32d917a8c016
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 3 = 3
Transport-type: tcp
Bricks:
Brick1: MASKED:/gluster_bricks/data2/data2
Brick2: MASKED:/gluster_bricks/data2/data2
Brick3: MASKED:/gluster_bricks/data2/data2
Options Reconfigured:
server.allow-insecure: on
cluster.granular-entry-heal: enable
performance.strict-o-direct: on
network.ping-timeout: 30
storage.owner-gid: 36
storage.owner-uid: 36
user.cifs: off
features.shard: on
cluster.shd-wait-qlength: 10000
cluster.shd-max-threads: 8
cluster.locking-scheme: granular
cluster.data-self-heal-algorithm: full
cluster.server-quorum-type: server
cluster.quorum-type: auto
cluster.eager-lock: enable
network.remote-dio: enable
performance.low-prio-threads: 32
performance.io-cache: off
performance.read-ahead: off
performance.quick-read: off
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: off

Volume Name: engine
Type: Replicate
Volume ID: ae465791-618c-4075-b68c-d4972a36d0b9
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 3 = 3
Transport-type: tcp
Bricks:
Brick1: MASKED:/gluster_bricks/engine/engine
Brick2: MASKED:/gluster_bricks/engine/engine
Brick3: MASKED:/gluster_bricks/engine/engine
Options Reconfigured:
cluster.granular-entry-heal: enable
performance.strict-o-direct: on
network.ping-timeout: 30
storage.owner-gid: 36
storage.owner-uid: 36
user.cifs: off
features.shard: on
cluster.shd-wait-qlength: 10000
cluster.shd-max-threads: 8
cluster.locking-scheme: granular
cluster.data-self-heal-algorithm: full
cluster.server-quorum-type: server
cluster.quorum-type: auto
cluster.eager-lock: enable
network.remote-dio: off
performance.low-prio-threads: 32
performance.io-cache: off
performance.read-ahead: off
performance.quick-read: off
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: off

Volume Name: vmstore
Type: Replicate
Volume ID: 7065742b-c09d-410b-9e89-174ade4fc3f5
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 3 = 3
Transport-type: tcp
Bricks:
Brick1: MASKED:/gluster_bricks/vmstore/vmstore
Brick2: MASKED:/gluster_bricks/vmstore/vmstore
Brick3: MASKED:/gluster_bricks/vmstore/vmstore
Options Reconfigured:
cluster.granular-entry-heal: enable
performance.strict-o-direct: on
network.ping-timeout: 30
storage.owner-gid: 36
storage.owner-uid: 36
user.cifs: off
features.shard: on
cluster.shd-wait-qlength: 10000
cluster.shd-max-threads: 8
cluster.locking-scheme: granular
cluster.data-self-heal-algorithm: full
cluster.server-quorum-type: server
cluster.quorum-type: auto
cluster.eager-lock: enable
network.remote-dio: off
performance.low-prio-threads: 32
performance.io-cache: off
performance.read-ahead: off
performance.quick-read: off
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: off

Volume Name: vmstore2
Type: Replicate
Volume ID: 6f9a1c51-c0bc-46ad-b94a-fc2989a36e0c
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 3 = 3
Transport-type: tcp
Bricks:
Brick1: MASKED:/gluster_bricks/vmstore2/vmstore2
Brick2: MASKED:/gluster_bricks/vmstore2/vmstore2
Brick3: MASKED:/gluster_bricks/vmstore2/vmstore2
Options Reconfigured:
cluster.granular-entry-heal: enable
performance.strict-o-direct: on
network.ping-timeout: 30
storage.owner-gid: 36
storage.owner-uid: 36
user.cifs: off
features.shard: on
cluster.shd-wait-qlength: 10000
cluster.shd-max-threads: 8
cluster.locking-scheme: granular
cluster.data-self-heal-algorithm: full
cluster.server-quorum-type: server
cluster.quorum-type: auto
cluster.eager-lock: enable
network.remote-dio: off
performance.low-prio-threads: 32
performance.io-cache: off
performance.read-ahead: off
performance.quick-read: off
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: off

On Fri, Aug 3, 2018 at 6:53 AM, Sahina Bose <sabose@redhat.com> wrote:


On Fri, 3 Aug 2018 at 3:07 PM, Jayme <jaymef@gmail.com> wrote:
Hello,

The option to optimize for virt store is tough to find (in my opinion) you have to go to volumes > volume name and then click the two dots to expand further options in the top right to see it.  No one would know to find it (or that it even exists) if they weren't specifically looking. 

I don't know enough about it but my assumption is that there are reasons why it's not set by default (as it might or should not need to apply to ever volume created), however my suggestion would be that it be included in the cockpit as a selectable option next to each volume you create with a hint to suggest that for best performance select it for any volume that is going to be a data volume for VMs

If you have installed via Cockpit, the options are set.
Can you provide the “gluster volume info “ output  after you optimised for virt?




I simply installed using the latest node ISO / default cockpit deployment.

Hope this helps!

- Jayme

On Fri, Aug 3, 2018 at 5:15 AM, Sahina Bose <sabose@redhat.com> wrote:


On Fri, Aug 3, 2018 at 5:25 AM, Jayme <jaymef@gmail.com> wrote:
Bill,

I thought I'd let you (and others know this) as it might save you some headaches.  I found that my performance problem was resolved by clicking "optimize for virt store" option in the volume settings of the hosted engine (for the data volume).  Doing this one change has increased my I/O performance by 10x alone.  I don't know why this would not be set or recommended by default but I'm glad I found it!

Thanks for the feedback, Could you log a bug to make it default by providing the user flow that you used.

Also, I would be interested to know how you prepared the gluster volume for use - if it was using the Cockpit deployment UI, the volume options would have been set by default.


- James

On Thu, Aug 2, 2018 at 2:32 PM, William Dossett <william.dossett@gmail.com> wrote:

Yeah, I am just ramping up here, but this project is mostly on my own time and money, hence no SSDs for Gluster… I’ve already blown close to $500 of my own money on 10Gb ethernet cards and SFPs on ebay as my company frowns on us getting good deals for equipment on ebay and would rather go to their preferred supplier – where $500 wouldn’t even buy half a 10Gb CNA   but I believe in this project and it feels like it is getting ready for showtime – if I can demo this in a few weeks and get some interest I’ll be asking them to reimburse me, that’s for sure!

 

Hopefully going to get some of the other work off my plate and work on this later this afternoon, will let you know any findings.

 

Regards

Bill

 

 

From: Jayme <jaymef@gmail.com>
Sent: Thursday, August 2, 2018 11:07 AM
To: William Dossett <william.dossett@gmail.com>
Cc: users <users@ovirt.org>
Subject: Re: [ovirt-users] Tuning and testing GlusterFS performance

 

Bill,

 

Appreciate the feedback and would be interested to hear some of your results.  I'm a bit worried about what i'm seeing so far on a very stock 3 node HCI setup.  8mb/sec on that dd test mentioned in the original post from within a VM (which may be explained by bad testing methods or some other configuration considerations).. but what is more worrisome to me is that I tried another dd test to time creating a 32GB file, it was taking a long time so I exited the process and the VM basically locked up on me, I couldn't access it or the console and eventually had to do a hard shutdown of the VM to recover.  

 

I don't plan to host many VMs, probably around 15.  They aren't super demanding servers but some do read/write big directories such as working with github repos and large node_module folders, rsyncs of fairly large dirs etc.  I'm definitely going to have to do a lot more testing before I can be assured enough to put any important VMs on this cluster.

 

- James

 

On Thu, Aug 2, 2018 at 1:54 PM, William Dossett <william.dossett@gmail.com> wrote:

I usually look at IOPs using IOMeter… you usually want several workers running reads and writes in different threads at the same time.   You can run Dynamo on a Linux instance and then connect it to a window GUI running IOMeter to give you stats.  I was getting around 250 IOPs on JBOD sata 7200rpm drives which isn’t bad for cheap and cheerful sata drives.

 

As I said, I’ve worked with HCI in VMware now for a couple of years, intensely this last year when we had some defective Dell hardware and trying to diagnose the problem.  Since then the hardware has been completely replaced with all flash solution.   So when I got the all flash solution I used IOmeter on it and was only getting around 3000 IOPs on enterprise flash disks… not exactly stellar, but OK for one VM.  The trick there was the scale out.  There is a VMware Fling call HCI Bench.  Its very cool in that you spin up one VM and then it spawns 40 more VMs across the cluster.  I  could then use VSAN observer and it showed my hosts were actually doing 30K IOPs on average which is absolutely stellar performance. 

 

Anyway, moral of the story there was that your one VM may seem like its quick, but not what you would expect from flash…   but as you add more VMs in the cluster and they are all doing workloads, it scales out beautifully and the read/write speed does not slow down as you add more loads.  I’m hoping that’s what we are going to see with Gluster.

 

Also, you are using mb nomenclature below, is that Mb, or MB?  I am sort of assuming MB megabytes per second…  it does not seem very fast.  I’m probably not going to get to work more on my cluster today as I’ve got other projects that I need to get done on time, but I want to try and get some templates up and running and do some more testing either tomorrow or this weekend and see what I get in just basic writing MB/s and let you know.

 

Regards

Bill

 

 

From: Jayme <jaymef@gmail.com>
Sent: Thursday, August 2, 2018 8:12 AM
To: users <users@ovirt.org>
Subject: [ovirt-users] Tuning and testing GlusterFS performance

 

So I've finally completed my first HCI build using the below configuration:

 

3x

Dell PowerEdge R720

2x 2.9 GHz 8 Core E5-2690

256GB RAM

2x250gb SSD Raid 1 (boot/os)

2x2TB SSD jbod passthrough (used for gluster bricks)

1Gbe Nic for management 10Gbe nic for Gluster

 

Using Replica 3 with no arbiter. 

 

Installed the latest version of oVirt available at the time 4.2.5.  Created recommended volumes (with an additional data volume on second SSD). Not using VDO

 

First thing I did was setup glusterFS network on 10Gbe and set it to be used for glusterFS and migration traffic. 

 

I've setup a single test VM using Centos7 minimal on the default "x-large instance" profile. 

 

Within this VM if I do very basic write test using something like:

 

dd bs=1M count=256 if=/dev/zero of=test conv=fdatasync

 

I'm seeing quite slow speeds, only 8mb/sec.  

 

If I do the same from one of the hosts gluster mounts i.e.

 

host1: /rhev/data-center/mnt/glusterSD/HOST:data 

 

I get about 30mb/sec (which still seems fairly low?)

 

Am I testing incorrectly here?  Is there anything I should be tuning on the Gluster volumes to increase performance with SSDs?  Where can I find out where the bottle neck is here, or is this expected performance of Gluster? 

 



_______________________________________________
Users mailing list -- users@ovirt.org
To unsubscribe send an email to users-leave@ovirt.org
Privacy Statement: https://www.ovirt.org/site/privacy-policy/
oVirt Code of Conduct: https://www.ovirt.org/community/about/community-guidelines/
List Archives: https://lists.ovirt.org/archives/list/users@ovirt.org/message/JKUWFXIZOWQ42JFBIJLFJGBKISY7OMPV/