You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Arm Performix is a desktop application that provides performance
30
-
analysis and profiling for Arm-based Linux systems. Arm Performix connects to remote Arm
31
-
Linux targets via SSH and provides a graphical interface for capturing and
32
-
analyzing performance data using hardware performance counters and the top-down
33
-
methodology.
29
+
## What is Arm Performix?
34
30
35
-
Arm Performix provides capabilities for:
31
+
Arm Performix is a desktop application that simplifies hardware-specific optimization by offering curated analysis pathways for performance-critical factors in applications, libraries, runtimes, and source code. Its capabilities include:
36
32
37
33
* Performance profiling using hardware performance monitoring counters
38
34
* Top-down methodology analysis for identifying performance bottlenecks
39
35
* System-wide and per-process profiling
40
-
* Command-line interface (CLI) included with the GUI installation
41
-
* SSH-based remote target connections with optional jump node support
36
+
* SSH-based remote target connections with optional support for jump nodes (also known as bastions)
42
37
43
-
Arm Performix is available for Windows, macOS, and Linux host machines, and connects to
44
-
Arm Linux target systems running Amazon Linux 2023, Ubuntu 22.04, or Ubuntu
45
-
24.04.
38
+
## Which host and target platforms does Arm Performix support?
46
39
47
-
## What should I do before installing Arm Performix?
48
-
49
-
Arm Performix requires different packages depending on your host platform:
40
+
The Arm Performix desktop application supports the following host platforms:
50
41
51
42
***Windows**: Windows 10 or later on Arm64 or x64 architecture
52
43
***macOS**: macOS on Arm64 (Apple Silicon) or x64 architecture
53
44
***Linux**: Debian-based distribution on Arm64 or x64 architecture
54
45
55
-
You also need access to an Arm Linux target system for profiling.
46
+
You also need a target system on which to profile your application or workload. The following target platforms are supported:
47
+
48
+
***Linux with Arm64 architecture**: Arm Linux target systems running Amazon Linux 2023, Ubuntu 22.04, or Ubuntu 24.04. TODO finalise this
49
+
***Windows with Arm64 architecture**: TODO???
50
+
***Linux with x64 architecture**: TODO???
56
51
57
52
## How do I download and install Arm Performix?
58
53
59
-
Arm Performix is distributed as platform-specific installer packages. The installation includes both the GUI and the CLI tool (`apx`).
54
+
Arm Performix is distributed as platform-specific installer packages.
55
+
The installation includes the GUI, the CLI tool (`apx`) and an MCP server.
60
56
61
57
### How do I install Arm Performix on Windows?
62
58
@@ -178,297 +174,9 @@ Wait while the installer copies the files.
178
174
179
175
When the installation finishes, select **Close** to exit the installer.
180
176
181
-
## How do I prepare my target for Arm Performix connections?
182
-
183
-
Before connecting to an Arm Linux target, ensure SSH key-based authentication is configured and that passwordless sudo access is enabled. If you already manage your target system via SSH, you likely have most of this setup complete.
184
-
185
-
### Check your existing SSH key
186
-
187
-
Verify that you can connect to your target using SSH. Replace `user` with your username and `target_host` with your target's hostname or IP address:
188
-
189
-
```bash
190
-
ssh user@target_host
191
-
```
192
-
193
-
If the connection works, you have SSH key authentication configured. Now check if your existing key has a passphrase. Try to display the public key:
194
-
195
-
```bash
196
-
ssh-keygen -y -f ~/.ssh/id_ed25519
197
-
```
198
-
199
-
If you're prompted for a passphrase, your key is protected with one. Arm Performix doesn't support SSH keys with passphrases, so you need to create a separate key without a passphrase for Arm Performix.
200
-
201
-
## Create a passphrase-free key for Arm Performix (if needed)
202
-
203
-
If your existing SSH key has a passphrase, generate a new key specifically for Performix:
204
-
205
-
```bash
206
-
ssh-keygen -t ed25519 -f ~/.ssh/apx_key
207
-
```
208
-
209
-
Press **Enter** when prompted for a passphrase to leave it empty.
210
-
211
-
Copy the new public key to your target. If your existing SSH key is at a non-default location (for example, `~/cloud-keys/my-instance.pem`), specify it when copying:
You can now use `~/.ssh/apx_key` as the private key when configuring the Arm Performix target connection.
224
-
225
-
## Enable passwordless sudo on the target
226
-
227
-
Performix needs to run commands with elevated privileges on the target system. Because Performix cannot enter sudo passwords interactively, configure passwordless sudo access.
228
-
229
-
On the target system, edit the sudoers file:
230
-
231
-
```bash
232
-
sudo visudo
233
-
```
234
-
235
-
Add the following line, replacing `<username>` with your actual username. Insert it after any existing entries for that user or their groups, since rules in the sudoers file are applied in order and later entries take precedence.
236
-
237
-
```bash
238
-
<username> ALL=(ALL) NOPASSWD:ALL
239
-
```
240
-
241
-
Save and exit the editor.
242
-
243
-
## How do I connect Arm Performix to a target?
244
-
245
-
After installing Arm Performix and preparing your target, you can connect using either the GUI or the CLI.
246
-
247
-
### Connect using the Arm Performix GUI
248
-
249
-
Use the GUI on Windows and macOS hosts, though you can also run it on Linux.
250
-
251
-
Open the Arm Performix application.
252
-
253
-
On the home page, select **Connect a target** or select **Targets** in the activity bar to open the Targets view.
254
-
255
-
Select **Add Target**.
256
-
257
-
In the **Configure Target** form, provide the following details:
258
-
259
-
***Host**: the hostname or IP address of the target machine
* For manual selection, enter the path to your private key (usually `~/.ssh/id_rsa` or `~/.ssh/id_ed25519`)
265
-
***Host Key Verification**: Choose **Strict** (recommended) or **Ignore**
266
-
* Strict mode verifies the server identity using your `~/.ssh/known_hosts` file
267
-
268
-

269
-
270
-
271
-
Select **Add Target**.
272
-
273
-
The target appears in the targets list and is ready for profiling.
274
-
275
-
You can select the **Test Connection** button to verify your connection to the Performix Linux target is successful.
276
-
277
-

278
-
279
-
#### Configure jump nodes (optional)
280
-
281
-
If your target is behind a bastion host or requires intermediate servers for access, add jump nodes in the GUI:
282
-
283
-
In the **Jump Node** section, select **Add Jump Node**.
284
-
285
-
Provide the jump node details:
286
-
287
-
***Host**: The hostname or IP address of the jump node
288
-
***Port**: The SSH port (default is 22)
289
-
***User**: The username for the jump node
290
-
***SSH Private Key**: The key file path (if using manual selection)
291
-
292
-
Select **Add** to save the jump node.
293
-
294
-
You can add multiple jump nodes. The order matters—your connection uses them in sequence. Use drag and drop to reorder jump nodes.
295
-
296
-
#### Connect using the Arm Performix GUI to a local machine
297
-
298
-
Performix already includes a built-in `localhost` target through the CLI. However, as of Performix 2026.01, this target is not exposed in the GUI. If you prefer the command line, you can run recipes directly without configuring the target through the GUI. [Skip to the profile the local machine section](#profile-the-local-machine) below.
299
-
300
-
If you want to target your local machine conveniently through the GUI, use `localhost` in place of `target_host` and select **Username and password** as the authentication method, as shown in the following image. Make sure passwordless `sudo` is enabled for your user account.
301
-
302
-
303
-

304
-
305
-
Enter the password for your user when prompted
306
-
307
-

308
-
309
-
### Connect using the Arm Performix CLI
310
-
311
-
The CLI is useful for Linux hosts or when you prefer command-line workflows.
312
-
313
-
The `apx` command-line tool is installed automatically with the GUI. On Linux, you can find it at:
314
-
315
-
```bash
316
-
/opt/Arm\ Performix/assets/apx/apx
317
-
```
318
-
319
-
For convenience, add it to your PATH or create an alias:
177
+
## How do I use Arm Performix
320
178
321
-
```bash
322
-
export PATH="/opt/Arm Performix/assets/apx:$PATH"
323
-
```
324
-
325
-
Use the CLI help for command-line usage:
326
-
327
-
```bash
328
-
apx --help
329
-
```
330
-
331
-
#### Profile the local machine
332
-
333
-
If your target is the same machine where you installed Arm Performix (the host machine itself), Arm Performix automatically provides a built-in `localhost` target. You don't need to configure authentication, SSH keys, or host verification for local profiling.
334
-
335
-
Verify the localhost target is available by listing all configured targets:
336
-
337
-
```bash
338
-
apx target list
339
-
```
340
-
341
-
The output is similar to:
342
-
343
-
```output
344
-
name default host_key_policy value
345
-
localhost yes localhost
346
-
1 registered target found
347
-
```
348
-
349
-
Your local machine is now ready to use as a target. Specify `--target=localhost` when running Arm Performix commands.
350
-
351
-
#### Add a remote target
352
-
353
-
To profile a workload on a remote machine, add it as a target using the standard syntax. This command registers the remote system with Performix:
This connects through `jumphost1`, then `jumphost2`, then `final-host`.
452
-
453
-
**Verify and manage targets:**
454
-
455
-
Test the connection to a target:
456
-
457
-
```bash
458
-
apx target test my-target
459
-
```
460
-
461
-
List all configured targets:
462
-
463
-
```bash
464
-
apx target list
465
-
```
466
-
467
-
Remove a target:
468
-
469
-
```bash
470
-
apx target remove my-target
471
-
```
179
+
For on using Arm Performix, including connecting to your target, please refer to the [Arm Performix User Guide](https://developer.arm.com/documentation/110163/latest/).
0 commit comments