Skip to content

Commit a401105

Browse files
Remove user guide duplication and tweak structure
1 parent 5aa7ed5 commit a401105

1 file changed

Lines changed: 14 additions & 306 deletions

File tree

content/install-guides/performix.md

Lines changed: 14 additions & 306 deletions
Original file line numberDiff line numberDiff line change
@@ -26,37 +26,33 @@ multitool_install_part: false
2626
layout: installtoolsall
2727
---
2828

29-
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?
3430

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:
3632

3733
* Performance profiling using hardware performance monitoring counters
3834
* Top-down methodology analysis for identifying performance bottlenecks
3935
* 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)
4237

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?
4639

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:
5041

5142
* **Windows**: Windows 10 or later on Arm64 or x64 architecture
5243
* **macOS**: macOS on Arm64 (Apple Silicon) or x64 architecture
5344
* **Linux**: Debian-based distribution on Arm64 or x64 architecture
5445

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???
5651

5752
## How do I download and install Arm Performix?
5853

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.
6056

6157
### How do I install Arm Performix on Windows?
6258

@@ -178,297 +174,9 @@ Wait while the installer copies the files.
178174

179175
When the installation finishes, select **Close** to exit the installer.
180176

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:
212-
213-
```bash
214-
ssh-copy-id -i ~/.ssh/apx_key.pub -o "IdentityFile=~/cloud-keys/my-instance.pem" user@target_host
215-
```
216-
217-
If your existing key is in the default location (`~/.ssh/id_ed25519` or `~/.ssh/id_rsa`), use:
218-
219-
```bash
220-
ssh-copy-id -i ~/.ssh/apx_key.pub user@target_host
221-
```
222-
223-
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
260-
* **Name**: a descriptive name for the target
261-
* **Port**: the SSH port number (default is 22)
262-
* **User**: the username for SSH connection
263-
* **SSH Private Key**: choose **Automatically Detect Key** or **Select Key Manually**
264-
* 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-
![Arm Performix target configuration form displaying input fields including Host with IP address 192.168.1.10, Name field for descriptive target identifier, Port field set to 22, User field for SSH username, SSH Private Key section with radio buttons for Automatically Detect Key and Select Key Manually options, and Host Key Verification dropdown menu set to Strict mode with explanation text about verifying server identity using known_hosts file alt-txt#center](/install-guides/_images/atp-target-config.png "Configure Target form with connection settings")
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-
![Arm Performix graphical interface displaying connection test results with green checkmark icon indicating success, target name my-target shown in header, host IP address 192.168.1.10 listed below, connection status field showing Connected in green text, and blue Test Connection button at bottom of panel#center](/install-guides/_images/atp-connection-test.png "Successful Arm Performix target connection test")
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-
![Arm Performix GUI showing the Configure Target form for a local connection using 'localhost', including Host set to localhost, Name field for a custom label, Port set to 22, User set to the local username, authentication set to Username and password, and Host Key Verification options#center](/install-guides/_images/connect-via-local-host.png "Configure local target using localhost in Arm Performix GUI")
304-
305-
Enter the password for your user when prompted
306-
307-
![Arm Performix GUI displaying a password prompt dialog requesting the user's system password for authentication, including a password input field, confirmation button, and context indicating connection to a localhost target#center](/install-guides/_images/performix-add-passwrd.png "Enter user password for localhost authentication in Arm Performix")
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
320178

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:
354-
355-
```bash
356-
apx target add <user>@<host>:<port>:<private_ssh_key_path>
357-
```
358-
359-
Where:
360-
* `user`: (Optional) SSH username. If not specified, uses your current system username
361-
* `host`: (Required) Target hostname or IP address
362-
* `port`: (Optional) SSH port. Default is 22
363-
* `private_ssh_key_path`: (Optional) Path to your private SSH key
364-
365-
For example, to connect to a target at `192.168.1.10` using the `ubuntu` username:
366-
367-
```bash
368-
apx target add ubuntu@192.168.1.10
369-
```
370-
371-
You can also use JSON format to specify the target:
372-
373-
```bash
374-
apx target add '{
375-
"host": "192.168.1.10",
376-
"port": 22,
377-
"username": "ubuntu",
378-
"privateKeyFilename": "~/.ssh/apx_key",
379-
"hostKeyPolicy": "accept-new"
380-
}'
381-
```
382-
383-
**Authentication options:**
384-
385-
Choose one of the following methods to authenticate with your target:
386-
387-
* **Use an existing SSH key in a non-default location:**
388-
389-
If your private key is not in `~/.ssh/id_rsa` or `~/.ssh/id_ed25519`, specify its path in the target command:
390-
```bash
391-
apx target add user@host:22:/path/to/private_ssh_key
392-
```
393-
394-
* **Automatically detect an existing SSH key:**
395-
396-
Arm Performix searches common locations (`~/.ssh/id_rsa`, `~/.ssh/id_ed25519`, etc.) for a usable key:
397-
```bash
398-
apx target add user@host --find-keys
399-
```
400-
401-
* **Generate and configure a new SSH key pair using password authentication:**
402-
403-
If your target supports password-based SSH login, Performix can generate a new key pair and configure it automatically:
404-
```bash
405-
apx target add user@host --password
406-
```
407-
This option:
408-
- Generates an RSA 4096-bit key pair on your host (without a passphrase)
409-
- Authenticates to the target using the password you provide
410-
- Adds the public key to the target's `~/.ssh/authorized_keys` file
411-
- Records the target's host key in the known hosts list
412-
- Stores the private key securely for future connections
413-
- Discards the password immediately after use (not stored)
414-
415-
**Host key verification:**
416-
417-
Specify host key verification with the `--host-key-policy` flag:
418-
419-
* `strict`: (Default) Fail if the host key is unknown or changed
420-
* `ignore`: Disable host key verification
421-
* `accept-new`: Accept unknown keys, but warn if they change later
422-
423-
```bash
424-
apx target add user@host --host-key-policy accept-new
425-
```
426-
427-
**Naming and default targets:**
428-
429-
Give your target a friendly name using `--name`:
430-
431-
```bash
432-
apx target add ubuntu@192.168.1.10 --name my-target
433-
```
434-
435-
Make a target the default for future commands with `--default`:
436-
437-
```bash
438-
apx target add ubuntu@192.168.1.10 --name my-target --default
439-
```
440-
441-
After you run this command, `my-target` becomes the default target for future commands.
442-
443-
**Using jump nodes:**
444-
445-
If your target requires jump nodes (bastion hosts), use the `--jump` flag. Specify jump nodes in connection order:
446-
447-
```bash
448-
apx target add user@final-host --jump user@jumphost1 --jump admin@jumphost2
449-
```
450-
451-
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/).
472180

473181
## How do I uninstall Arm Performix?
474182

0 commit comments

Comments
 (0)