Default shard size was 64MB. I've tested to create another volume with a 512MB shard size and settings you provided.

I observe a performance improvement with `dd`, which does a sequential write (from 1MBps to 50MBps). However, I find VM still slow : as an example, `apt upgrade` is very slow to unpack packages, more than 1 hour for around 400MB (90 packages).

Le 08/09/2021 à 11:34, Alex K a écrit :


On Wed, Sep 8, 2021 at 12:33 PM Alex K <rightkicktech@gmail.com> wrote:


On Wed, Sep 8, 2021 at 12:15 PM Mathieu Valois <mvalois@teicee.com> wrote:

Sorry for double post but I don't know if this mail has been received.

Hello everyone,

I know this issue was already treated on this mailing list. However none of the proposed solutions is satisfying me.

Here is my situation : I've got 3 hyperconverged gluster ovirt nodes, with 6 network interfaces, bounded in bunches of 2 (management, VMs and gluster). The gluster network is on a dedicated bound where the 2 interfaces are directly connected to the 2 other ovirt nodes. Gluster is apparently using it :

# gluster volume status vmstore
Status of volume: vmstore
Gluster process                             TCP Port  RDMA Port  Online  Pid
------------------------------------------------------------------------------
Brick gluster-ov1:/gluster_bricks
/vmstore/vmstore                            49152     0          Y       3019
Brick gluster-ov2:/gluster_bricks
/vmstore/vmstore                            49152     0          Y       3009
Brick gluster-ov3:/gluster_bricks
/vmstore/vmstore

where 'gluster-ov{1,2,3}' are domain names referencing nodes in the gluster network. This networks has 10Gbps capabilities :

# iperf3 -c gluster-ov3
Connecting to host gluster-ov3, port 5201
[  5] local 10.20.0.50 port 46220 connected to 10.20.0.51 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  1.16 GBytes  9.92 Gbits/sec   17    900 KBytes      
[  5]   1.00-2.00   sec  1.15 GBytes  9.90 Gbits/sec    0    900 KBytes      
[  5]   2.00-3.00   sec  1.15 GBytes  9.90 Gbits/sec    4    996 KBytes      
[  5]   3.00-4.00   sec  1.15 GBytes  9.90 Gbits/sec    1    996 KBytes      
[  5]   4.00-5.00   sec  1.15 GBytes  9.89 Gbits/sec    0    996 KBytes      
[  5]   5.00-6.00   sec  1.15 GBytes  9.90 Gbits/sec    0    996 KBytes      
[  5]   6.00-7.00   sec  1.15 GBytes  9.90 Gbits/sec    0    996 KBytes      
[  5]   7.00-8.00   sec  1.15 GBytes  9.91 Gbits/sec    0    996 KBytes      
[  5]   8.00-9.00   sec  1.15 GBytes  9.90 Gbits/sec    0    996 KBytes      
[  5]   9.00-10.00  sec  1.15 GBytes  9.90 Gbits/sec    0    996 KBytes      
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  11.5 GBytes  9.90 Gbits/sec   22             sender
[  5]   0.00-10.04  sec  11.5 GBytes  9.86 Gbits/sec                  receiver

iperf Done.

However, VMs stored on the vmstore gluster volume has poor write performances, oscillating between 100KBps and 30MBps. I almost always observe a write spike (180Mbps) at the beginning until around 500MB written, then it drastically falls at 10MBps, sometimes even less (100KBps). Hypervisors have 32 threads (2 sockets, 8 cores per socket, 2 threads per core).

Here is the volume settings :

Volume Name: vmstore
Type: Replicate
Volume ID: XXX
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 3 = 3
Transport-type: tcp
Bricks:
Brick1: gluster-ov1:/gluster_bricks/vmstore/vmstore
Brick2: gluster-ov2:/gluster_bricks/vmstore/vmstore
Brick3: gluster-ov3:/gluster_bricks/vmstore/vmstore
Options Reconfigured:
performance.io-thread-count: 32 # was 16 by default.
cluster.granular-entry-heal: enable
storage.owner-gid: 36
storage.owner-uid: 36
cluster.lookup-optimize: off
server.keepalive-count: 5
server.keepalive-interval: 2
server.keepalive-time: 10
server.tcp-user-timeout: 20
network.ping-timeout: 30
server.event-threads: 4
client.event-threads: 8 # was 4 by default
cluster.choose-local: 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
performance.strict-o-direct: on
network.remote-dio: off
performance.low-prio-threads: 32
performance.io-cache: off
performance.read-ahead: off
performance.quick-read: off
auth.allow: *
user.cifs: off
storage.fips-mode-rchecksum: on
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: on

I see you have not enabled sharding for the gluster volume that is hosting VMs. I usually set a shard size of 512MB. Note though that changing shard size in a live system will corrupt your data.
You need to wipe and set again.
I mean you have not changed the default sharde size which is I think 4MB.

I've seen also good perf with the following tweaks:

gluster volume set vms remote-dio enable
gluster volume set vms performance.write-behind-window-size 8MB
gluster volume set vms performance.cache-size 1GB
gluster volume set vms performance.io-thread-count 16
gluster volume set vms performance.readdir-ahead on
gluster volume set vms client.event-threads 8
gluster volume set vms server.event-threads 8
gluster volume set engine features.shard-block-size 512MB

When I naively write directly on the logical volume, which is mounted on a material RAID5 3-disks array, I have interesting performances:

# dd if=/dev/zero of=a bs=4M count=2048
2048+0 records in
2048+0 records out
8589934592 bytes (8.6 GB, 8.0 GiB) copied, 17.2485 s, 498 MB/s #urandom gives around 200MBps

Moreover, hypervisors have SSD which have been configured as lvcache, but I'm unsure how to test it efficiently.

I can't find where is the problem, as every piece of the chain is apparently doing well ...

Thanks anyone for helping me :)

--
téïcée Mathieu Valois

Bureau Caen: Quartier Kœnig - 153, rue Géraldine MOCK - 14760 Bretteville-sur-Odon
Bureau Vitré: Zone de la baratière - 12, route de Domalain - 35500 Vitré
02 72 34 13 20 | www.teicee.com

téïcée sur facebook téïcée sur twitter téïcée sur linkedin téïcée sur viadeo
Datadocké

_______________________________________________
Users mailing list -- users@ovirt.org
To unsubscribe send an email to users-leave@ovirt.org
Privacy Statement: https://www.ovirt.org/privacy-policy.html
oVirt Code of Conduct: https://www.ovirt.org/community/about/community-guidelines/
List Archives: https://lists.ovirt.org/archives/list/users@ovirt.org/message/BTY7TJLMQUJ3QRTFEYMHAA2P437DXW6I/
--
téïcée Mathieu Valois

Bureau Caen: Quartier Kœnig - 153, rue Géraldine MOCK - 14760 Bretteville-sur-Odon
Bureau Vitré: Zone de la baratière - 12, route de Domalain - 35500 Vitré
02 72 34 13 20 | www.teicee.com

téïcée sur
                    facebook téïcée sur
                    twitter téïcée sur
                    linkedin téïcée sur viadeo
Datadocké