Simply put, esxtop is VMware’s command-line tool to analyze performance.
If you’ve used the Linux or Unix top command, esxtop may already be familiar to you. Esxtop is VMware’s version of this popular “top” command that run on an ESX or ESXi server. Both top and esxtop run only at the command line of a server. You would access these commands by either going directly to a server console or by connecting to a server remotely via SSH (or telnet, if enabled).
Esxtop is used to analyze real-time performance data from an individual ESX or ESXi server. You bring it up by going to the physical server console or remote console via SSH, logging in, and typing esxtop.
Most people would say that esxtop analyzes CPU, Memory, Disk, and Network statistics. More specifically, you’ll find that esxtop has 8 different “displays” that show CPU, interrupt, memory, network, disk adapter, disk interface, disk VM, and power management, as you see in the screenshot below.
In the graphic, you can see that each of these different displays are brought up by pressing the corresponding letter for each display (i.e., press “d” for the “disk adapter” display).
Once in a display, you’ll always have uptime and CPU trending info at the top of each screen. From there, you’ll have a column view that shows stats for different objects. For example, in the CPU view you have processes running on the host down the left side (which could correspond to a particular VM) and columns across the top with different stats for each of those processes.
In the graphic above, you see the CPU display rolled up to just show virtual machines. For each VM there is information about the percent of CPU used allocated. One of the most valuable stats is “CPU Ready” (which you can learn more about here, or in my vSphere Performance video below).
You’ll find that you can run esxtop on either ESX or ESXi without any trouble. The only difference will be that esxtop on ESX will show information about the service console. On ESX, you’ll also find a nice man page for esxtop that you can access by typing man esxtop. In fact, I have used that man page to figure out what I want to do with esxtop then gone over to my ESXi server to do it.
You’ll see both esxtop and resxtop mentioned when talking about esxtop. The only difference is that esxtop is run locally on an ESX or ESXi server. Resxtop, on the other hand, is “remote esxtop” and it is only used to run esxtop on another server. For example, you would use resxtop to monitor performance of an ESXi server if you were currently logged into a vMA (vSphere Management Assistant) virtual appliance.
When running resxtop, you will have to specify the ESX or ESXi server hostname, username, and password, as you see below:
Besides looking at different displays in esxtop you can also do two other things to manipulate what you see:
In this post my goal was to give you an overview of what esxtop is and the basics of how it works. However, esxtop is a powerful advanced performance monitoring tool, and there is a lot more that you can do with it. To learn more, there are a lot of excellent resources available. Here’s my list of the most important esxtop resources available:
I’ve spent a lot of time using esxtop in the real-world and especially while creating my Train Signal vSphere Performance Monitoring video training course. In that course, I have extensive how-to videos on using esxtop to diagnose specific vSphere performance issues. I also show you how to export esxtop stats to Excel or the free ESXplot, how to create a configuration file for esxtop, and how to look for specific things in esxtop to solve performance issues.
I’ve found that esxtop is the single most valuable performance tool that you run on ESX, ESXi, and vMA and I highly recommend you take more time to learn how it works. Very possibly, esxtop will be the best tool you can use to solve your next vSphere performance issue (and “save the day”).