# [Set up Performix and the target machine](https://learn.arm.com/learning-paths/servers-and-cloud-computing/performix-system-characterization/1-setup/)

## In this learning path

- [Introduction](https://learn.arm.com/learning-paths/servers-and-cloud-computing/performix-system-characterization/)
- [Set up Performix and the target machine](https://learn.arm.com/learning-paths/servers-and-cloud-computing/performix-system-characterization/1-setup/)
- [Benchmark your platform with System Characterization](https://learn.arm.com/learning-paths/servers-and-cloud-computing/performix-system-characterization/2-run-system-characterization/)
- [View benchmark results in the Performix UI](https://learn.arm.com/learning-paths/servers-and-cloud-computing/performix-system-characterization/3-view-data-in-performix/)
- [View raw benchmark results and generated plots](https://learn.arm.com/learning-paths/servers-and-cloud-computing/performix-system-characterization/4-open-results-directory/)
- [Next Steps](https://learn.arm.com/learning-paths/servers-and-cloud-computing/performix-system-characterization/_next-steps/)

## Understand the System Characterization recipe
The System Characterization recipe runs a set of low-level benchmarks, diagnostic scripts, and system tests to analyze performance on Arm-based platforms. It evaluates key hardware characteristics, including memory latency and bandwidth, helping you gather early, repeatable insight into performance-critical subsystems. The recipe is especially useful for platform bring-up, system tuning, and architectural comparisons.

The following latency sweep plot shows one of the benchmarks that System Characterization provides: the average latency of memory accesses across varying working-set sizes. This benchmark reveals the latency of each cache level in the memory hierarchy.

![Latency sweep showing cache hierarchy transitions](https://learn.arm.com/learning-paths/servers-and-cloud-computing/performix-system-characterization/latency-sweep-plot.webp)  
Latency sweep showing cache hierarchy transitions

## Before you begin
Make sure Arm Performix is installed on your host machine. The host machine is your local computer where the Arm Performix GUI runs. It can be a Windows, macOS, or Linux machine. The target machine is the Linux server you wish to benchmark and characterize.

If you don’t have Arm Performix installed, see the [Arm Performix install guide](https://learn.arm.com/install-guides/performix/).

From the host machine, open Arm Performix and navigate to the **Targets** tab. Set up an SSH connection to the target you want to benchmark, and test the connection.

The System Characterization recipe requires Python and the `numactl` utility on the target machine. Connect to your target machine via SSH and install these required packages.

To install on Ubuntu and other Debian-based distributions, run the following command:

```bash
sudo apt-get update
sudo apt install python3 python3-venv python3-pip python-is-python3 gcc make numactl fio linux-tools-generic linux-tools-$(uname -r) -y
```

## What you’ve accomplished and what’s next
You’ve set up the target machine and established an SSH connection. You’ve also installed the packages required to run the System Characterization recipe.

Next, you’ll run the recipe and inspect how your hardware platform performs.
