Using KSM on NUMA capable machines can cause KVM guest performance and stability issues
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Trusty |
Fix Released
|
High
|
Chris J Arges |
Bug Description
[Impact]
When using KVM on NUMA machines, both Linux and Windows guests can exhibit very poor performance and potential crashes. Disabling KSM is a known workaround to fix this issue.
[Fix]
The following patch fixes the issue in our testing:
http://
This patch is present in v3.14-rc1 and onwards.
[Test Case]
General test case:
1) On a NUMA capable machine, setup the machine as a KVM hypervisor
- lscpu should show more than 1 NUMA node
2) Install 4 KVM VMs
3) Run the following in another terminal to ensure that pages_shared and pages_sharing is increasing
- watch 'tail /sys/kernel/
4) In another terminal run a program that continually pings each node and alerts on high latencies
What we've observed is that in Linux guests, the ping latencies can go into the ~2 second range for a few pings, then return back to the < 1ms range. (This is machine dependent.) In addition, occasionally when running this test with Windows guests we observe BSODs during this test.
description: | updated |
Changed in linux (Ubuntu Trusty): | |
assignee: | nobody → Chris J Arges (arges) |
Changed in linux (Ubuntu): | |
assignee: | Chris J Arges (arges) → nobody |
Changed in linux (Ubuntu Trusty): | |
importance: | Undecided → High |
status: | New → In Progress |
Changed in linux (Ubuntu): | |
status: | In Progress → Fix Released |
importance: | High → Undecided |
description: | updated |
Changed in linux (Ubuntu): | |
importance: | Undecided → High |
Changed in linux (Ubuntu Trusty): | |
milestone: | none → trusty-updates |
tags: | added: cscc |
A test build for this patch is provided here: people. canonical. com/~arges/ lp1346917/
http://
For most servers linux-image- 3.13.0- 33-generic_ 3.13.0- 33.58~lp1346917 v201407220903_ amd64.deb should be sufficient; however if you have DKMS packages you may need to install linux-headers* packages. The linux-image-extra package has additional modules if necessary.
In addition dbgsym and tools packages are provided for debugging.