How and Why To Run resxtop Against Azure VMware Solution Hosts
A colleague was doing some application testing and needed to run esxtop on the Azure VMware Solution (AVS) hosts. However, as expected, with hyperscaler delivered VMware platforms, access to the host directly is not available because the platform is delivered as a service.
AVS allows for IT professionals to stay focused on the workloads and their performance, not the plumbing. If there is an issue with a host, no need to dig in; Microsoft proactively will identify the problem and replace the host. That is not feasible with on-premises environments.
However, esxtop is useful for application optimization and architecture. Specifically, you can monitor how an application impacts host performance, thereby the overall cluster and applications running in that cluster. Optimization is even more critical in a cloud-hosted VMware platform than on-premises; wasting resources directly impacts cost.
I was hopeful that resxtop would work against the Azure VMware Solution hosts. It did! resxtop is a command-line utility or tool that runs on Linux; in other words, it’s esxtop running on a Linux VM and remotely connecting to the vSphere hosts. esxtop is run directly from the command line of the host.
There are ridiculous amounts of esxtop resources on running and using the tool (the same commands work for resxtop). Here is a good starting spot;
ESXTOP – Yellow Bricks
VMware KBs and Other Resources
To run resxtop against my Azure VMware Solution private cloud hosts, here is the process I followed.
- Deployed a Ubuntu VM in Azure
- Install the pre-requisites for your operating system; see Getting Started with vSphere Command-Line Interfaces – ESXi 6.7. Go to page 19, Installing Prerequisite Software for Linux Systems
- Download and install VMware vSphere Command Line Interface 6.7.
- Run resxtop
Tip: Don’t try to connect directly to the hosts; vCenter will need to proxy the connection. The command for this is;
resxtop –server <your AVS vCenter IP > –vihost <ip of the AVS host> –username <AVS vCenter username>
I have a question that is the linux virtual machine should be deployed in the management vnet or peered vnet that have the direct network access to the AVS, right? Since we won’t have the public ip for the vcenter and host ip.
yes, I have tested that, only if your vm is in the management vnet or peered vnet, that should work.