What is esxtop?
Simply put, esxtop is VMware’s command-line tool to analyze performance.
Where did it come from?
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).
Passwords Haven’t Disappeared Yet
123456. Qwerty. Iloveyou. No, these are not exercises for people who are brand new to typing. Shockingly, they are among the most common passwords that end users choose in 2021. Research has found that the average business user must manually type out, or copy/paste, the credentials to 154 websites per month. We repeatedly got one question that surprised us: “Why would I ever trust a third party with control of my network?
What does esxtop do?
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).
What’s the difference between esxtop on ESX and ESXi?
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.
What’s the difference between esxtop and resxtop?
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:
How do you control esxtop columns and sort order?
Besides looking at different displays in esxtop you can also do two other things to manipulate what you see:
- Adding or removing fields – when using esxtop you want to make sure that your SSH appliance is the full width of your monitor to get as much on the screen as you can. It is common for the many columns fields provided by esxtop to run off the screen and for you to not be able to view them. In fact, the fields that are off the screen may be the fields that you want, so resizing the console window or removing fields may be necessary to get the info you are looking for. You can add or remove the fields that are shown with the f or F key. This will take you to a screen like in the graphic below that allows you to select (using letters) which fields you want to remove or add. An asterisk next to a field means that it is currently being displayed. When you press the corresponding letter for that field, the field is either added or removed.
- Changing field order – you can also change the order that the fields are displayed in. This is done by pressing the o or O key which will bring up the order screen below. From there, similar to adding or removing fields, you will use letters to move fields up and down in the order of display.
What are the best resources to learn more about esxtop?
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:
- Yellow-Bricks.com – ESXTOP
- VMware.com – Interpreting ESXTOP 4.1 Statistics <– this is the esxtop bible
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”).