Managing CPU Distribution for ScaleArc Processes

The CPU Distribution screen illustrates how the total number of ScaleArc processes are distributed among the available CPU cores. You can also view the status, memory utilization, and total CPU utilization per cluster as well as utilization by the CPU cores.

The CPU Distribution page also displays the interface CPU affinity. A user can manage the processor affinity of network interfaces from the CPU Distribution page. The interfaces are shown with the prefix INT. You can clone, move, and remove these interfaces just like any other threads to set the appropriate CPU affinity for the interface’s interrupt handling.

If you have a hyper-threaded system, you can choose to include the hyper-threaded core in the CPU distribution.

Note: Hyper-threading, when enabled in hardware, allows the system to allocate two logical CPUs for each physical CPU socket. Since the logical CPUs are, in essence, time slices of an actual physical CPU they can be useful in some systems for running multiple processes at the same time. In ScaleArc, testing has shown that the appliance delivers superior performance when hyper-threading has been disabled at the hardware level.

The CPU Distribution page under the Settings menu makes it possible to:

  • View the various ScaleArc threads handling traffic and their corresponding CPU utilization;
  • Figure out which of the threads (which are handling a portion of the traffic processing pipeline) are running hot and possibly need more CPU resources to perform better;
  • Move a particular thread that was previously pinned on a particular CPU (contending with other threads) to a new CPU that is relatively under-utilized.
  • Clone a particular thread and move it to an under-utilized CPU (if available) so that the specific component is no longer the bottleneck. This is usually done if the CPU requirement of a thread cannot be satisfied by a single dedicated CPU.

Access the CPU Distribution screen to carry out the above actions by following these steps:

  1. Click the SETTINGS menu and navigate to CPU Distribution on the ScaleArc dashboard.

    CPU_Distribution.png
     
  2. Click on Start Auto Refresh to set the time interval (minimum 10 seconds) to automatically refresh this screen. 
    • Auto-refresh.png
  3. The screen displays the total number of ScaleArc processes and their distribution across the sockets available. You can also view the status, memory utilization and total CPU utilization per cluster on a CPU or on a core. The CPU Distribution page also displays the SMP (symmetric multiprocessing) interface affinity. It is possible to manage processor affinity from this page.

    CPU_Distribution2.png

Observations from the above snapshot:

  • The header of the page shows the number of CPUs (12) the system has and the number of CPUs (16) that the license allows to be used (core-based license).
  • 3 ScaleArc clusters are created on the appliance, of which two are running correctly and one is stopped. The running cluster process named Txn-LB is consuming 235.9% CPU and 1.3 GB memory.
  • The table shows the 12 CPUs and puts the CPU numbers (0-11) as column headers and shows overall utilization. CPUs 4 and 5 are 100% utilized.
  • Each ScaleArc traffic handling thread for the selected clusters is listed under the CPU column on which they are pinned. Deselecting a cluster will hide the threads belonging to the particular cluster processes.
  • Each thread is denoted by the name format "<cluster-name><cluster-id>:<thread-name-acronym><clone-number>". The contribution of each thread to CPU utilization is shown using a tiny utilization bar below the thread name.
  • Hovering on each thread shows a short description about the thread.
  • Clicking on a thread pops up the Change CPU Location dialog:

    • Change_CPU_Location.png
  • Move Thread: unpin from the current CPU and pin on another.
  • Clone Thread: If cloning is supported by a thread type, this option will appear.
  • Remove Thread: This will remove a thread clone if previously created. One instance of a thread type should be present at all times. This will not allow you to delete the last thread instance.

Move or clone a thread

You can individually or collectively move or clone a thread.

To move or clone a single thread:

  1. Click on a thread in the CPU Distribution screen. The screen provides the following options:

    MoveThread.png

  2. Enter the CPU you wish to move/clone this thread to and click OK.
    Select Remove Thread to delete the thread and click OK.  

    You can only clone a thread if its name has an integer at the end. Additionally, you can only remove a cloned thread.

     

Move multiple threads

You can move multiple threads for a selected CPU ID as follows:

  1. Select the CPU you wish to move the thread(s) to from the drop-down list.

    SelectCPUMove.png

  2. Click OK

    Inactive threads are red while active threads are blue. A CPU running a load of more than 60% utilization turns from green to red. 

Back to top

 

Comments

0 comments

Please sign in to leave a comment.