[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: High xen_hypercall_sched_op usage


  • To: Klaus Darilion <klaus.darilion@xxxxxx>, "xen-users@xxxxxxxxxxxxx" <xen-users@xxxxxxxxxxxxx>
  • From: Juergen Gross <jgross@xxxxxxxx>
  • Date: Tue, 14 Nov 2023 17:14:26 +0100
  • Authentication-results: smtp-out1.suse.de; none
  • Autocrypt: addr=jgross@xxxxxxxx; keydata= xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
  • Delivery-date: Tue, 14 Nov 2023 16:15:10 +0000
  • List-id: Xen user discussion <xen-users.lists.xenproject.org>

On 14.11.23 15:54, Klaus Darilion wrote:
Hi!

Server: AMD Rome 64C/128T, 2xNVME SSDs->Linux Softraid->LVM (some LVs use DRBD)

dom0: Ubuntu 2204, 16vCPUs, dom0_vcpus_pin

domU 1: PV, Ubuntu 2204, 80vCPUs, no pinning, load 30, Postgresql-DB Server

domU 2: PV, Ubuntu 2204, 16vCPUs, no pinning, load 1-2, webserver

For whatever reason, today the DB-server was getting slow. We saw:

-increased load

-increased CPU (only "system" increased)

-reduced disk IOps

-increased disk IO Latency

-no increase in userspace workload

Still we do not know if the reduced IO performance was the cause of the issue, or the consequence of the issue. We reduced load from the DB, dis-/reconnected DRBD, fstrim in domU. After some time things were fine again.

To better understand what was happening maybe someone can answer my questions:

a) I used the "perf top" utility in the domU and it reports something like:

   76.23%  [kernel]                                   [k] xen_hypercall_sched_op

    4.14%  [kernel]                                   [k] 
xen_hypercall_xen_version

    0.97%  [kernel]                                   [k] 
pvclock_clocksource_read

    0.84%  perf                                       [.] queue_event

    0.81%  [kernel]                                   [k] pte_mfn_to_pfn.part.0

   0.57%  postgres                                   [.] hash_search_with_hash_value

So most of CPU time is consumed by xen_hypercall_sched_op. IS it normal that xen_hypercall_sched_op

basically eats up all CPU? Is this an indication of some underlying problem? Or is that normal?

In a PV guest the sched_op hypercall is used e.g. for going to idle. I guess
you are adding up all idle time to the sched_op hypercall.


b) I know that we only have CPU pinning for the dom0, but not for the domU (reason: some legacy thing that was not implemented correctly probably)

# xl vcpu-list

Name                                ID  VCPU   CPU State   Time(s) Affinity (Hard / Soft)

Domain-0                             0     0    0   -b-   66581.0  0 / all

Domain-0                             0     1    1   -b-   60248.8  1 / all

…

Domain-0                             0    14   14   -b-   65531.2  14 / all

Domain-0                             0    15   15   -b-   68970.9  15 / all

domU1                                 3     0   74   -b-  113149.8  all / 0-127

…

b1) So, as the VMs are not pinned, it may happen that the same CPU is used for the dom0 and the domU. But why? There are 128vCPUs available, and only 112vCPUs used. Is XEN not smart enough to use all vCPUs?

You are mixing up vcpus and physical cpus.

A vcpu is a virtualized cpu presented to the guest. It can run on any physical
cpu if no pinning etc. is involved.


b2) Sometimes I see that 2 vCPUs use the same CPU? How can that be that a CPUs is used concurrently for 2 vCPUs? And why, as there are plenty of vCPUs left?

root@cc6-vie:/home/darilion# xl vcpu-list|grep 102

Name                                ID  VCPU   CPU State   Time(s) Affinity (Hard / Soft)

domU1                                  3    67  102   r--  119730.3  all / 0-127

domU1                                  3    77  102   -b-  119224.1  all / 0-127

This shows that vcpu 77 is blocked (AKA idle), so it is not waiting for a
physical cpu to become free. The Xen credit2 scheduler will prefer to try
running only a single vcpu on a core, as long as enough cores are available
to achieve that goal. This maximizes performance, but it can result in a
situation like the one you are seeing: in case the idle vcpu currently hooked
to the same cpu as an already running one wants to run again, it needs to
switch cpus.


Juergen

Attachment: OpenPGP_0xB0DE9DD628BF132F.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.