WilliamLam.com

  • About
    • About
    • Privacy
  • VMware Cloud Foundation
  • VKS
  • Homelab
    • Hardware Options
    • Hardware Reviews
    • Lab Deployment Scripts
    • Nested Virtualization
    • Homelab Podcasts
  • VMware Nostalgia
  • Apple

Cool Docker Container for VMware Utilities

02.17.2015 by William Lam // 11 Comments

Last week during lunch I learned about a cool little project that my colleague Alan Renouf was working on in his spare time at night. He was interested in learning more about Docker and thought the best way to learn about something new was by using it, which is normally how I learn as well. He came up with a nifty idea to create a Docker Image that would house a bunch of useful VMware tools which included several VMware open source projects as well.

UPDATE (11/23/16) - The Docker Container has now been updated with all the latest vSphere 6.5 SDK/CLI/Tools. We also plan to make this new version of the Docker Image available on Docker Hub, so stay tuned for those details shortly.

Some customers in the past have built similar offerings by using a free VMware Appliance called vMA (vSphere Management Assistance). vMA is nothing more than a stripped down version of SLES that has the vSphere CLI (vCLI) pre-installed. In my opinion, vMA is pretty limited and you can not install additional packages without voiding official support. Even if you decide to ignore support and install custom packages, I have often seen this break existing dependencies. When I talk to customers about their use of vMA, most used it because it was just there, but the majority prefer to use their own harden distribution of Linux and install their own admin utilities and packages which may also include non-VMware tools.

I personally have no problem building my own VM appliance that contains the various VMware packages, utilities and scripts that I use on a daily basis. However, not everyone is comfortable with this idea. Wow could this be further simplified and automated? Well, enter vmware-utils a Docker Image that allows you to automatically build a new image that contains some of the most popular and widely used VMware Utilities.

I wanted to enhance the awesome work that Alan had done with couple more VMware open source tools that I thought might be useful to VMware Administrators, which I actually wrote about here in my List of VMware CLIs, SDKS and DevOps Tools article. I have already submitted a pull request for my changes here. If there are other tools or packages you think that are useful and wish to contribute back, feel free to clone the repository and submit a pull request!

The latest vmware-utils now contains the following:

  • vSphere CLI 6.5
  • PowerCLI Core 1.0
  • vSphere Management SDK 6.5
  • vSphere SDK for Perl 6.5
  • vSphere SDK for Ruby (rbvmomi)
  • vSphere SDK for Python (pyvmomi)
  • vSphere Automation SDK for Ruby 6.5
  • vSphere Automation SDK for Python 6.5
  • vSphere Automation SDK for Perl 6.5
  • vSphere Automation SDK for Java 6.5
  • VSAN Management SDK for Ruby 6.5
  • VSAN Management SDK for Python 6.5
  • VSAN Management SDK for Java 6.5
  • VSAN Management SDK for Perl 6.5
  • Virtual Disk Development Kit (VDDK) 6.5
  • OVFTool 4.2
  • PowerCLI Community Repository
  • PowerCLI Core Docker Container Samples
  • William Lam's vGhetto Script Repository
  • Pyvmomi Community Samples
  • Docker Client v1.12.3
  • Docker Compose v1.8.1

For those of you who are new to Docker, a great way to quickly get started is by using an awesome tool called boot2docker which allows you to run Docker Containers on either a Windows or Mac OS X system. This also helps remove any barriers if you do not want to setup a Linux machine to get Docker of if you are like me, running on Mac OS X and rather not have to spin up a VM just to use Docker. Below are the steps on getting boot2docker working and building your own vmware-utils Docker Image.

Step 1 - Download the Docker Client for your specific OS (Windows, Linux or Mac OS X)

Step 2 - Take a look at the vmware-utils README, I spent some time updating it to make it more consumable for new users of Docker and follow the "How" section which will have you download the 4 VMware utilities as well as the vmware-utils DockerFile which we will need to build the Docker Container.

Step 3 - Create a directory and place all files into that directory. In this example, I have called the directory "vmware-utils".

vmware-utils-docker-container-0
Step 3 - We are now ready to build our vmware-utils Docker Image. Change into the "vmware-utils" directory that contains the files you downloaded earlier we will need to specify a "tag" for our image as part of the build command. In this example, I have called my image "lamw/vmware-utils" and to start the build process run the following command:

docker build -t lamw/vmware-utils .

Step 4 - The build itself may take some time depending on the speed of your internet connection. You will know when it has successfully completed when it states "Successfully built X" where X will be some unique ID as seen in the screenshot below.

vmware-utils-docker-container-4
Step 5 - Once the Docker Image has finished building, you can then run and connect to the Container by running the following command:

docker run --rm -it lamw/vmware-utils

vmware-utils-docker-container-5
At this point, you are now logged into the vmware-utils Docker Container that you have just built! It contains all the VMware Utilities that I have listed earlier and for more details on what has been installed and the location of the utilities, take a look at the vmware-utils Github documentation. If there are other tools you would like to see, feel free to contribute back by cloning the repository and submitting a pull request. I am definitely looking forward to seeing how this project evolves and providing a more dynamic way of creating a vMA-like experience without the current limitations. Keep up the awesome work Alan!

Categories // Automation, Docker, vRealize Suite, vSphere Tags // api, boot2docker, container, DevOps, Docker, dockerfile, vcloud air, vma, vSphere API

Quick Tip - How to enable memory overcommitment in VMware Fusion?

02.14.2015 by William Lam // 20 Comments

There was an interesting internal thread that I came across yesterday where someone was asking if VMware Fusion supported memory overcommitment like VMware Workstation? In VMware Workstation, memory overcommitment can be adjusted by going to Edit->Preferences->Memory which provides three different options as shown in the screenshot below. This setting specifies the percentage of memory that would be reserved from the physical host memory for each Virtual Machine.

vmware-fusion-memory-overcommit-0
These options map to the following % of host memory reservation:

Option % of Host Memory Reserved Per VM
Fit all virtual machine memory into reserved host RAM 100
Allow some virtual memory to be swapped 50
Allow most virtual memory to be swapped 25

Disclaimer: Be aware, that default safe guards have been put in place to ensure optimal VM performance. If you decide to change these settings and allow memory overcommitment, it can potentially degrade performance of both your VMs as well as host system. Make sure you understand the changes before applying them.

You can also specify a custom value by editing the VMware Workstation configuration file located in: C:\ProgramData\VMware\VMware Workstation\config.ini and modifying or adding the following property:

prefvmx.minVmMemPct = P

where P is the percentage of configured VM memory that should fit into the host memory. The smallest value that P can be is 1. Below is a screenshot of a 32GB VM running on a Macbook Air with latest version of Fusion (8.5.3) which only has 8GB of physical memory and the value that I had used for this demonstration is 1.

Going back to VMware Fusion, memory overcommitment is also possible but the option to configure it is not available in the VMware Fusion UI. You will need to add the above setting into the VMware Fusion configuration file located in /Library/Preferences/VMware\ Fusion/config which does not exist by default. You will need to restart Fusion/Workstation for the change to go into effect.

In addition to the change, if you do decide to overcommit your memory, it was also mentioned that you may also want to disable Hard Disk buffering for optimal performance. You can make this change in the Advanced Settings of the the VM as seen in the screenshot below.

vmware-fusion-memory-overcommit-1
You can also just add the following property to the Virtual Machine's VMX configuration file:

hard-disk.hostBuffer = "disabled"

Memory commitment can be a wonderful tool, especially for lab environments. If you combine this with SSD storage and if swapping does occur, the impact may be acceptable so that you can run a few more VMs. Thanks to Regis Duchesne & Jesse Pool for sharing this handy tidbit!

Categories // Apple, Fusion, Workstation Tags // apple, fusion, memory overcommitment, prefvmx.minVmMemPct, workstation

vimtop: esxtop for the VCSA 6.0

02.13.2015 by William Lam // 6 Comments

A couple of weeks back I learned about a really cool new tool called vimtop located in the new VCSA 6.0 from fellow colleague Nick Marshall. If you have ever used esxtop before with ESXi, then you will feel right at home with vimtop which is purpose built to provide performance information and statistics about VCSA and the applications running under it. This will definitely be a handy a tool to be aware of when needing to troubleshoot performance issues or bottlenecks in the VCSA.

Disclaimer: While testing vimtop, I found that some of the command-line options are not currently functional and probably why the current version is at 0.5 with tag of "Alpha". I have been told vimtop is still in active development and I suspect Engineering wanted to get something out to customers to try out and get feedback as they continue to iterate and add more features.

To launch vimtop, you will need to SSH to a VCSA 6.0 system and type "vimtop" in either the applianceshell or in a regular bash shell.

vimtop0
At first glance, vimtop looks very similar to esxtop but you will quickly notice there are many cool new UI improvements which really makes navigating the interface much simpler. The first thing that should stand out to you is the use of colors to help improve the readability of all the metrics. You will also notice that you can quickly navigate through current list view by either scrolling up and down or side to side using the directional arrow keys. When a item is selected is also clearly highlighted which is a huge plus in my opinion when needing to troubleshoot and watch for a particular entry or stat.

Here is a screenshot selecting a specific row in vimtop, you can also do this for a column as well:

vimtop-1-up-down
There are three primary views in vimtop: Processes, Disks & Networks statistics which can be toggled using keyboard shortcuts. In fact, all navigation is performed through a series of global keyboard shortcuts similar to esxtop. There is actually a quite a few of them and you can quickly see the list by hitting the "h" key at any time for the help menu.

Here is the complete list of keyboard shortcuts for your reference

Keyboard Key Description
esc Clear existing selection and jump back to Process view
w Write the configure out the current settings goes to a configuration file located in vimtop/vimtop.xml
s Set the refresh interval (seconds)
f Display all available CPUs overview
t Display Tasks currently managed by the appliance
g Expand top 4 physical CPUs currently available to the appliance
h Help menu
u Show/Hide the unit headers
i Show/Hide the top line
o Network view
p Pause the screen
l Select a particular column
delete Remove selected column
PgUp/PgDn Select first and last row and scroll to it
- Collapse selected item
+ Expand selected item
home/end Select first and last column and scroll to it
left/right arrow Select column
up/down arrow Select row
enter Display more info about a select item
< Move selected column to the left
> Move selected column to the right
k Disk View
m Display memory overview information
n Show/Hide the name headers
c Add new column
d Add selected column in descending order or to switch column to descending order
x Select optimal column width
z Clear sort order
a Add selected column in ascending order or to switch column to ascending order
q Quit
~ Display vimtop in Back/White mode

If you are more of a visual person, I have also created a visual keyboard layout of all the vimtop commands which might be handy to print out and post on your wall. I actually got this awesome idea from one of our internal Wikis and I have created a new layout to match all the commands that are currently in vimtop.

vimtop-shortcut-keys
For each of the three views, you can also add and remove different columns just like you could with esxtop using the "c" character. You can then select or de-select columns by using the spacebar for the metrics you wish to be displayed in the current view.

add-column
I figure it would also be useful to have a table of all the metrics and their definitions as it is a bit difficult to read while in vimtop itself.

ProcessES

Metric ID Description
PID Process identifier
CMD Command name used to start the process as it is seen by the underlying system
CMDLINE The full command line of this process used during startup
NAME User readable name of the process
THREADS Number of native threads currently running in the process
%CPU (CPU Usage) Current CPU usage in percent for this process
MHZ Current CPU usage in MHz for this process
CPU Total CPU time used by the process during last measurement cycle (sum of cpu.used.system and cpu.used.user)
SYS CPU time spent by process in the system (kernel) routines
USR CPU time spent by process in the user land
%MEM (Memory Usage) Physical memory usage in percent for this process
MEM Physical (resident) memory used by this process
VIRT Total virtual memory size of this process (the complete working set including resident and swapped memory)
SHR Size of the shared code - these are any shared objects (so or DLL) loaded by the process
TEXT Code segment size of the process without any shared libraries
DATA Data segment size of the process (for managed process like JVM this includes the managed code also)
FD Total number of file descriptors opened by the process
FILS Number of all file objects opened by the process (sum of files directories and links)
FILE Number of regular files currently opened by the process
DIR Number of directories currently opened by the process
LNK Number of symbolic links currently opened by the process
DEVS Number of devices (char or block) opened by the process
CHAR Number of descriptors opened to character devices
BLCK Number of descriptors opened to block devices
CHNS Number of all communication channels opened by the process (either sockets or FIFOs)
SCKS Number of sockets (TCP|UDP|raw) currently opened by the process
FIFO Pipes (named or not) opened by the process

DiskS

Metric ID Description
DISK/PART Storage disk / partition identifier
IOS Number of I/O operations currently in progress on this disk (should go to zero)
IOTIME Milliseconds spent doing I/O operations on this disk / partition (increases for a nonzero number of I/O operations)
LAT disk / partition access latency (in milliseconds) calculated using the total amount of time spend doing I/O divided by the total amount of I/O operations done during last measurement interval
READS Number of reads issued to this disk / partition and completed successfully during last measurement interval
RDMRG Adjacent to each other reads on this disk / partition merged for efficiency
READ Number of reads per second issued to this disk / partition
RDSCTRS Number of sectors read successfully from this disk / partition during last measurement interval
WRITES Number of writes issued to this disk / partition and completed successfully during last measurement interval
WRMRG Adjacent to each other writes on this disk / partition merged for efficiency
WRITE Number of writes per second issued to this disk / partition
WRSCTRS Number of sectors wrote successfully to this disk / partition during last measurement interval

NetworkS

Metric ID Description
INTF Interface name
TRGPT Total throughput of this interface (Rx + Tx) in kilobytes
RATE The activity of this network interface in kBps
RXED Amount of data (in kilobytes) received during last measurement interval
RXRATE Rate of received data through this interface in kBps
TXED Amount of data (in kilobytes) transmitted during last measurement interval
TXRATE Rate of data transmission through this interface in kBps
RXMCAST Number of multicast packets received on this interface during last measurement interval
RXDROP Number of data rx-packets dropped during last measurement interval
TXDROP Number of data packets dropped upon transmission during last measurement interval
DROPPED Number of dropped packets through this network interface because of running out of buffers during last measurement cycle
ERRS Total number of faults (Tx and Rx) on this interface
RXERRS The sum of receive errors rx-fifo errors and rx-frame errors
TXERRS The sum of transmit errors tx-fifo errors and carrier errors
FIFOERRS FIFO overrun errors on this interface caused by host being busy to serve the NIC hardware
CLLSNS Collisions detected on the transmission medium

There is definitely a lot more to explore in vimtop, but hopefully this provides a good reference point on quickly getting started. I have to say I really like a lot of the UI enhancements to vimtop, especially the ability to select and quickly watch a particular process. Hopefully some of these enhancements can make its way into esxtop to provide the same set of functionality in the future.

Categories // VCSA, vSphere 6.0 Tags // VCSA, vcva, vimtop, vSphere 6.0

  • « Previous Page
  • 1
  • …
  • 371
  • 372
  • 373
  • 374
  • 375
  • …
  • 561
  • Next Page »

Search

Thank Author

Author

William is Distinguished Platform Engineering Architect in the VMware Cloud Foundation (VCF) Division at Broadcom. His primary focus is helping customers and partners build, run and operate a modern Private Cloud using the VMware Cloud Foundation (VCF) platform.

Connect

  • Bluesky
  • Email
  • GitHub
  • LinkedIn
  • Mastodon
  • Reddit
  • RSS
  • Twitter
  • Vimeo

Recent

  • VCF 9.0 Hardware Considerations 05/30/2025
  • VMware Flings is now available in Free Downloads of Broadcom Support Portal (BSP) 05/19/2025
  • VMUG Connect 2025 - Minimal VMware Cloud Foundation (VCF) 5.x in a Box  05/15/2025
  • Programmatically accessing the Broadcom Compatibility Guide (BCG) 05/06/2025
  • Quick Tip - Validating Broadcom Download Token  05/01/2025

Advertisment

Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.
To find out more, including how to control cookies, see here: Cookie Policy

Copyright WilliamLam.com © 2025

 

Loading Comments...