[nova] Slow nvme performance for local storage instances
Damian Pietras
damian.pietras at hardit.pl
Thu Aug 10 12:05:04 UTC 2023
HI,
You wrote "/sys/devices/system/cpu/*/cpuidle/state*/disable output is 0 for all cpus". It means all C-states (power saving states) are _enabled_.
This may cause lower and inconsistent results. I would repeat the test with deeper C-states disabled. I think simplest way to do that is to boot
system (nova compute node) with "|intel_idle.max_cstate=1" added to kernel command line parameters. I had
similar issues with I/O performance inside VMs (but with lower disk
queue depth) and power saving / frequency scaling had greatest influence
on the results and also caused variations in the results between test
runs. If you are out of ideas you could also rule out disk / filesystem
/ RAID configuration influence by temporary mounting tmpfs in
/var/lib/nova/instances so the instances will have RAM-backed volumes.
You need enough RAM for that of course. |
On 10/08/2023 13:35, Jan Wasilewski wrote:
> Hi,
>
> I wanted to express my sincere gratitude for all the help and advice
> you've given me. I followed your suggestions and carried out a bunch
> of tests, but unfortunately, the performance boost I was hoping for
> hasn't materialized.
>
> Let me break down the configurations I've tried and the results I've
> got. Just to give you some context, all my tests were done using two
> INTEL SSDPE2MD400G4 NVMe disks and Ubuntu 20.04LTS as the OS on the
> compute node. You can find all the nitty-gritty details in [1] and
> [2]. Additionally, I've shared the results of the fio tests directly
> executed on the RAID directory within the compute node in [3].
>
> Then, I expanded my testing to instances, and here's what I found:
>
> 1. I tested things out with the default settings and Ubuntu 22.04 LTS
> image. The iOPS results were hovering around 18-18.5k. Check out
> [4] and [5] for the specifics.
> 2. I tweaked the nova.conf file with two changes: force_raw_images =
> true and images_type = flat. Unfortunately, this only brought the
> iOPS down a bit, to just under 18k. You can see more in [6] and [7].
> 3. I made an extra change in nova.conf by switching the cpu_model
> from SandyBridge to IvyBridge. This change dropped the iOPS
> further, to around 17k. Details are in [8] and [9].
> 4. Lastly, I played around with image properties, setting
> hw_scsi_model=virtio-scsi and hw_disk_bus=scsi. However, this also
> resulted in around 17k iOPS. You can find out more in [10] and [11].
>
> It's a bit disheartening that none of these changes seemed to have the
> impact I was aiming for. So, I'm starting to think there might be a
> crucial piece of the puzzle that I'm missing here. If you have any
> ideas or insights, I'd be incredibly grateful for your input.
>
> Thanks once more for all your help and support.
>
> /Jan Wasilewski
>
>
> /References:
> /
> /[1] Disk details and raid details:
> https://paste.openstack.org/show/bRyLPZ6TDHpIEKadLC7z//
> /[2] Compute node and nova details:
> https://paste.openstack.org/show/bcGw3Glm6U0r1kUsg8nU//
> /[3] fio results executed in raid directory inside compute node:
> https://paste.openstack.org/show/bN0EkBjoAP2Ig5PSSfy3//
> /[4] dumpxml of instance from test 1:
> https://paste.openstack.org/show/bVSq8tz1bSMdiYXcF3IP//
> /[5] fio results from test 1:
> https://paste.openstack.org/show/bKlxom8Yl7NtHO8kO53a//
> /[6] dumpxml of instance from test 2:
> https://paste.openstack.org/show/bN2JN9DXT4DGKNZnzkJ8//
> /[7] fio results from test 2:
> https://paste.openstack.org/show/b7GXIVI2Cv0qkVLQaAF3//
> /[8] dumpxml of instance from test 3:
> https://paste.openstack.org/show/b0821V4IUq8N7YPb73sg//
> /[9] fio results from test 3:
> https://paste.openstack.org/show/bT1Erfxq4XTj0ubTTgdj//
> /[10] dumpxml of instance from test 4:
> https://paste.openstack.org/show/bjTXM0do1xgzmVZO02Q7//
> /[11] fio results from test 4:
> https://paste.openstack.org/show/bpbVJntkR5aNke3trtRd//
>
>
> śr., 9 sie 2023 o 19:56 Damian Pietras <damian.pietras at hardit.pl>
> napisał(a):
>
> I would suggest to:
>
> - make sure that "none" I/O scheduler is used inside VM (e.g.
> /sys/block/sda/queue/scheduler). I assume quite recent kernel,
> otherwise "noop".
>
> - make sure that host has CPU C-States above C1 disabled (check
> values of all /sys/devices/system/cpu/*/cpuidle/state*/disable for
> while [..]/name is different than "POLL", C1, C1E) or use some
> tool that disables that.
>
> - Use raw images instead of qcow2: in [libvirt] section of
> nova.conf set force_raw_images=True and images_type=flat and
> recreate the instance
>
> Is the difference so big also when you lower I/O depth (for
> example to 1) or increase block size (for example to 64k) ?
>
>
> On 09/08/2023 10:02, Jan Wasilewski wrote:
>> Hi,
>>
>> I am reaching out to inquire about the performance of our local
>> storage setup. Currently, I am conducting tests using NVMe disks;
>> however, the results appear to be underwhelming.
>>
>> In terms of my setup, I have recently incorporated two NVMe disks
>> into my compute node. These disks have been configured as RAID1
>> under md127 and subsequently mounted at /var/lib/nova/instances
>> [1]. During benchmarking using the fio tool within this
>> directory, I am achieving approximately 160,000 IOPS [2]. This
>> figure serves as a satisfactory baseline and reference point for
>> upcoming VM tests.
>>
>> As the next phase, I have established a flavor that employs a
>> root disk for my virtual machine [3]. Regrettably, the resulting
>> performance yields around 18,000 IOPS, which is nearly ten times
>> poorer than the compute node results [4]. While I expected some
>> degradation, a tenfold decrease seems excessive. Realistically, I
>> anticipated no more than a twofold reduction compared to the
>> compute node's performance. Hence, I am led to ask: what should
>> be configured to enhance performance?
>>
>> I have already experimented with the settings recommended on the
>> Ceph page for image properties [5]; however, these changes did
>> not yield the desired improvements. In addition, I attempted to
>> modify the CPU architecture within the nova.conf file, switching
>> to Cascade Lake architecture, yet this endeavor also proved
>> ineffective. For your convenience, I have included a link to my
>> current dumpxml results [6].
>>
>> Your insights and guidance would be greatly appreciated. I am
>> confident that there is a solution to this performance disparity
>> that I may have overlooked. Thank you in advance for your help.
>>
>> /Jan Wasilewski
>>
>> /References:/
>> /[1] nvme allocation and raid configuration:
>> https://paste.openstack.org/show/bMMgGqu5I6LWuoQWV7TV//
>> /[2] fio performance inside compute node:
>> https://paste.openstack.org/show/bcMi4zG7QZwuJZX8nyct//
>> /[3] Flavor configuration:
>> https://paste.openstack.org/show/b7o9hCKilmJI3qyXsP5u//
>> /[4] fio performance inside VM:
>> https://paste.openstack.org/show/bUjqxfU4nEtSFqTlU8oH//
>> /[5] image properties:
>> https://docs.ceph.com/en/pacific/rbd/rbd-openstack/#image-properties/
>> /[6] dumpxml of vm:
>> https://paste.openstack.org/show/bRECcaSMqa8TlrPp0xrT//
>
> --
> Damian Pietras
>
--
Damian Pietras
More information about the openstack-discuss
mailing list