I don't know what I changed, but this morning instances running on local
storage are returning essentially bare-metal performance. The only
difference I see versus my test scenario is that they are actually using
qcow images instead of RAW. So, hurray! Assuming is stays performant, the
local storage problem is fixed. Now I just need to get ceph-backed
instances working right.

Would this be the appropriate venue for that discussion, or would a ceph
list be a better venue? I believe the problem lies with qemu's interaction
with librbd since my direct tests of the ceph cluster indicate good
performance.


On Thu, May 29, 2014 at 10:14 AM, Quentin Hartman <qhart...@gmail.com>wrote:

> I found this page: http://www.linux-kvm.org/page/Tuning_Kernel and all of
> the recommended kernel options are enabled or built as modules which are
> loaded.
>
>
> On Thu, May 29, 2014 at 10:07 AM, Quentin Hartman <qhart...@gmail.com>wrote:
>
>> It looks like that particular feature is already enabled:
>>
>> root@node13:~# dmesg | grep -e DMAR -e IOMMU
>> [    0.000000] ACPI: DMAR 00000000bf77e0c0 000100 (v01    AMI  OEMDMAR
>> 00000001 MSFT 00000097)
>> [    0.105190] dmar: IOMMU 0: reg_base_addr fbffe000 ver 1:0 cap
>> c90780106f0462 ecap f020f6
>>
>>
>>
>> On Thu, May 29, 2014 at 10:04 AM, Quentin Hartman <qhart...@gmail.com>wrote:
>>
>>> I do not. I did not know those were a thing. My next steps were to
>>> experiment with different BIOS settings and kernel parameters, so this is a
>>> very timely suggestion. Thanks for the reply. I would love to hear other
>>> suggestions for kernel parameters that may be relevant.
>>>
>>> QH
>>>
>>>
>>> On Thu, May 29, 2014 at 9:58 AM, laurence.schuler <
>>> laurence.schu...@nasa.gov> wrote:
>>>
>>>>  On 05/28/2014 07:56 PM, Quentin Hartman wrote:
>>>>
>>>> Big picture, I'm working on getting an openstack deployment going using
>>>> ceph-backed volumes, but I'm running into really poor disk performance, so
>>>> I'm in the process of simplifying things to isolate exactly where the
>>>> problem lies.
>>>>
>>>>  The machines I'm using are HP Proliant DL160 G6 machines with 72GB of
>>>> RAM. All the hardware virtualization features are turned on. Host OS is
>>>> Ubuntu 14.04, using deadline IO scheduler. I've run a variety of benchmarks
>>>> to make sure the disks are working right, and they seem to be. Everything
>>>> indicates bare metal write speeds to a single disk in the ~100MB/s
>>>> ballpark. Some tests report as high as 120MB/s.
>>>>
>>>>  To try to isolate the problem I've done some testing with a very
>>>> simple [1] qemu invocation on one of the host machines. Inside that VM, I
>>>> get about 50MB/s write throughput. I've tested with both qemu 2.0 and 1.7
>>>> and gotten similar results. For quick testing I'm using a simple dd command
>>>> [2] to get a sense of where things lie. This has consistently produced
>>>> results near what more intensive synthetic benchmarks (iozone and dbench)
>>>> produced. I understand that I should be expecting closer to 80% of bare
>>>> metal performance. It seems that this would be the first place to focus, to
>>>> understand why things aren't going well.
>>>>
>>>>  When running on a ceph-backed volume, I get closer to 15MB/s using
>>>> the same tests, and have as much as 50% iowait. Typical operations that
>>>> take seconds on bare metal take tens of seconds, or minutes in a VM. This
>>>> problem actually drove me to look at things with strace, and I'm finding
>>>> streams of FSYNC and PSELECT6 timeouts while the processes are running.
>>>> More direct tests of ceph performance are able to saturate the nic, pushing
>>>> about 90MB/s. I have ganglia installed on the host machines, and when I am
>>>> running tests from within a vm ,the network throughput seems to be getting
>>>> artificially capped. Rather than the more "spiky" graph produced by the
>>>> direct ceph tests, I get a perfectly flat horizontal line at 10 or 20MB/s.
>>>>
>>>>  Any and all suggestions would be appreciated, especially if someone
>>>> has a similar deployment that I could compare notes with.
>>>>
>>>>  QH
>>>>
>>>>  1 - My testing qemu invocation: qemu-system-x86_64 -cpu host -m 2G
>>>> -display vnc=0.0.0.0:1 -enable-kvm -vga std -rtc base=utc -drive
>>>> if=none,id=blk0,cache=none,aio=native,file=/root/cirros.raw -device
>>>> virtio-blk-pci,drive=blk0,id=blk0
>>>>
>>>>  2 - simple dd performance test: time dd if=/dev/zero of=deleteme.bin
>>>> bs=20M count=256
>>>>
>>>> Hi Quentin,
>>>>  Do you have the passthrough options on the host kernel command line? I
>>>> think it's intel_iommu=on
>>>>
>>>> --larry
>>>>
>>>>
>>>
>>
>

Reply via email to