A virtual machine with more vCPUs does not have more computing power issue

Problem

The customer deploys a virtual machine with 2 vCPUs, 4 vCPUs or 8 vCPUs. From IBM® Cloud Infrastructure Center's perspective, they are the same because the SHARE is the same.

Explanation

From the z/VM document, the SHARE is relative value of virtual machine and if you set SHARE to 100 while virtual CPUs are 4, then each vCPU gets a 25 entitlement. If the virtual CPUs are 2, then each vCPU gets a 50 entitlement.

The mechanism currently is:

  1. If a SHARE is given, set the SHARE value to the VM
  2. If no SHARE is given during creation, check user_default_share_unit
  3. If user_default_share_unit is 0 (current default), do nothing
  4. If the user_default_share_unit is not 0, then insert statement SHARE RELATIVE user_default_share_unit*vCPU into the user direct, for example, with user_default_share_unit=100 , 4 vCPUs will create the SHARE RELATIVE 400 .

Resolution

In the IBM Cloud Infrastructure Center, the user_default_share_unit=100 is configured in zvmsdk.conf by default. Therefore, when the customer deploys a virtual machine with 2 vCPUs, the virtual machine gets a SHARE RELATIVE 200 , while for 4 vCPUs, gets a SHARE RELATIVE 400 .

For existing virtual machines created before IBM Cloud Infrastructure Center version 1.1.6, you can apply the upgrade tool for the SHARE on the management node during a maintenance window:

  1. Run the following command for all z/VM hypervisor compute nodes. /usr/bin/python /usr/lib/python3.9/site-packages/powervc_oslo/patch/update_zvm_share.py

  2. Run the following command for given z/VM hypervisor compute nodes. /usr/bin/python /usr/lib/python3.9/site-packages/powervc_oslo/patch/update_zvm_share.py <hostname1>,<hostname2>,<hostnameN>

You can get the hostname information by running icic-services remote list command. For example:

[root@sample-server ~]# icic-services remote list
Running on remote nodes.
Name                   Display Name
====                   ============
BOET4601               117zvmcmp
BOET4602               118zvmcmp

In the previous example, you can run /usr/bin/python /usr/lib/python3.9/site-packages/powervc_oslo/patch/update_zvm_share.py BOET4601,BOET4602 to update all the SHARE for existing virtual machines managed by compute node BOET4601 and BOET4602.