By Edy, Tech Expert & Blogger
VMware snapshots are potent tools, but when mismanaged, they can significantly impact your virtual machine performance. As an experienced VMware administrator, I’ve seen firsthand the consequences of improper snapshot use.
In this article, I’ll share VMware snapshot best practices to help you boost VM performance through correct snapshot management. I’ll explain snapshots, how to use them effectively, and tips for troubleshooting common issues.

What is a VMware Snapshot, and How Does It Work?
A VMware snapshot is a point-in-time copy of a virtual machine’s state. It captures the VM’s disk, memory, and settings, allowing you to revert to that exact state later. Think of it as a “save point” in a video game – you can always return to it if something goes wrong.
Understanding VMware Snapshot Technology
When you create a snapshot, VMware doesn’t copy all the data. Instead, it uses a clever technique called “copy-on-write.” Here’s how it works:
- The original virtual disk becomes read-only.
- A new delta disk is created to store any new changes.
- When data needs to be modified, it’s written to the delta disk instead of the original.
This approach saves time and storage space, as only the changes are tracked rather than creating a full VM copy.
Components of a VMware Snapshot / VMDK and Snapshot file
- Snapshot File (Delta Disk):
- When a snapshot is taken, a new delta disk file (
-000001.vmdk
,-000002.vmdk
, etc.) is created. This file captures all the changes made to the virtual disk from the moment the snapshot is taken. - The original VMDK file becomes read-only, and new write operations are redirected to the delta disk file.
- When a snapshot is taken, a new delta disk file (
- Snapshot Descriptor File:
- This file (
.vmsd
) contains metadata about the snapshot, such as the hierarchy and relationship between different snapshots. It’s crucial for managing the snapshot chain.
- This file (
- Memory File (Optional):
- If the snapshot is taken with the “Snapshot the virtual machine’s memory” option enabled, a memory file (
.vmem
) is created. This file captures the state of the VM’s RAM at the time of the snapshot. - It allows for a complete restoration of the VM to its exact state, including any running applications and processes.
- If the snapshot is taken with the “Snapshot the virtual machine’s memory” option enabled, a memory file (
- Snapshot Configuration File:
- The VM’s configuration at the time of the snapshot is stored in a
.vmsn
file. This includes the VM’s settings and hardware configuration.
- The VM’s configuration at the time of the snapshot is stored in a


How the VMDK File Changes with Snapshots
When you create a VMware snapshot, several new files are generated:
- Delta VMDK file: (e.g., “Testserver Win2022_1-000001.vmdk”) This file stores all changes made to the virtual disk after the snapshot.
- Memory file (.vmem): (e.g., “Testserver Win2022-Snapshot2.vmem”) If you include memory in the snapshot, this file contains a copy of the VM’s RAM state.
- Snapshot state file (.vmsn): (e.g., “Testserver Win2022-Snapshot2.vmsn”) This file stores metadata about the snapshot and the VM’s state at the time it was taken.
- Snapshot descriptor file (.vmsd): (e.g., “Testserver Win2022.vmsd”) This file keeps track of all snapshots for the VM and is updated with each new snapshot.
The original VMDK file becomes read-only, and all new writes are directed to the delta VMDK file. This structure allows VMware to efficiently manage changes and provide the ability to revert to previous states.
Understanding these files is crucial for effective snapshot management and troubleshooting. Monitor their growth, especially in production environments, to prevent unexpected storage issues.
How Snapshots Affect Disk I/O and Overall VM Performance
Snapshots can slow down disk I/O operations for several reasons:
- Write amplification: Each write operation now involves writing to both the snapshot file and the base disk, increasing I/O load.
- Read complexity: The system may need to check multiple snapshot files to retrieve data, increasing read times.
- Snapshot file growth: As the delta disk grows, it can consume more storage and potentially impact performance, especially if the datastore is near capacity.
These factors can lead to increased latency, reduced IOPS (Input/Output Operations Per Second), and an overall decline in VM responsiveness.
The Cumulative Effect of Multiple Snapshots
The performance impact compounds as you create multiple snapshots:
- I/O penalty: Each additional snapshot adds another layer of complexity to read and write operations.
- Snapshot chain: A long chain of snapshots increases the time needed to process I/O requests as the system navigates through multiple delta disks.
- Resource consumption: Multiple snapshots consume more storage and memory, potentially affecting other VMs on the same host.
- Consolidation challenges: Removing multiple snapshots can be time-consuming and resource-intensive, temporarily impacting performance across the host.
In my experience, VMs with more than 2-3 snapshots often show noticeable performance degradation. To maintain optimal performance, regularly reviewing and removing unnecessary snapshots is crucial.
VMware recommends 2-3 Snapshots max per VM and keeping it no longer than 72 hours.
Affordable Renewed Servers for Virtualization Enthusiasts
Enhance your virtualization experience with these budget-friendly and high-performing renewed servers.
Brand | Model | Buy in US | Buy in UK | Kaufe in Deutschland |
---|---|---|---|---|
Dell | Poweredge R710 | View on Amazon | View on Amazon | Gehe zu Amazon |
Dell | Poweredge R630 | View on Amazon | View on Amazon | Gehe zu Amazon |
HPE | ProLiant DL360 Gen10 | View on Amazon | View on Amazon | Gehe zu Amazon |
HPE | Proliant DL380 Gen 9 | View on Amazon | View on Amazon | Gehe zu Amazon |
HPE | Proliant ML350 Gen10 | View on Amazon | View on Amazon | Gehe zu Amazon |
Supermicro | E300 | View on Amazon | View on Amazon | Gehe zu Amazon |
How to Manage Snapshots in vSphere Client?
Create Snapshots
- In vSphere Client, right-click on the VM you want to snapshot.
- Navigate to “Snapshots” > “Take Snapshot.”
- In the dialog box:
- Enter a name for the snapshot (use descriptive names for easy identification).
- Add a description if needed.
- Choose whether to snapshot the VM’s memory.
- Decide if you want to quiesce the guest file system (requires VMware Tools).
- Click “OK” to create the snapshot.
I like to give the snapshot a meaningful name.

What is the Difference Between a Snapshot with Memory and One Without?
- With Memory: This captures the VM’s RAM state and allows reverting to the exact running state, including open applications. It creates larger files and takes longer to process.
- Without Memory: This only captures the disk state. When reverted, the VM will be powered off. It is faster to create and delete files with smaller file sizes.
Choose based on your specific needs. Memory snapshots are helpful for troubleshooting, while disk-only snapshots are typically sufficient for most scenarios.
Delete Snapshots
- Right-click the VM and select “Snapshots” > “Manage Snapshots.”
- In the snapshot manager, select the snapshot you want to delete.
- Click “Delete.”
- Choose between:
- “Delete”: Removes the selected snapshot.
- “Delete All”: Removes the entire snapshot tree.
- Confirm your action.

Monitor the deletion process, especially for large snapshots, as it can temporarily impact VM performance.
Revert Snapshot
- Open the snapshot manager as before.
- Select the snapshot you want to revert to.
- Click “Revert.”
- Review the warning message and confirm your action.

Remember, reverting discards all changes made after the snapshot was taken.
Consolidate Snapshots
Initiating Consolidation:
- Right-click the VM and select “Snapshots” > “Consolidate.”
vSphere Check:
- vSphere will automatically check if consolidation is needed. If required, it will combine redundant delta disks into the base disk.
- When Consolidation is Greyed Out:
- If no snapshots are present, the “Consolidate” option might be greyed out, indicating that consolidation is not needed.
- It can also be greyed out if ongoing tasks, such as another snapshot operation or backup process, conflict with consolidation.
- When Consolidation is Available:
- The option is available when existing snapshots have redundant delta disks needing consolidation.
- Typically, this occurs after deleting snapshots or if the VM has been through several snapshot cycles.
- Benefits of Consolidation:
- Consolidation helps maintain VM performance by reducing the number of delta disks and simplifying the disk structure.
- It is a good practice to periodically check and consolidate your VMs to avoid performance issues related to snapshots.
Regularly performing these basic management tasks ensures effective snapshot management in vSphere, significantly improving VM performance and reducing the risk of snapshot-related issues.
Best Mini-PC to run Proxmox or VMWARE
VMware Snapshot Best Practices with VMware vSphere
Managing snapshots effectively is crucial for maintaining your virtual machines’ optimal performance and reliability (VMs). Here, I’ll share best practices for using VMware snapshots with VMware vSphere to help you keep your VMs running smoothly.
How Long Should I Keep a Snapshot of a Virtual Machine?
When it comes to the duration of keeping a snapshot, less is more. Snapshots are not designed for long-term storage but are best used for short-term testing, updates, or backups. Generally, I recommend keeping snapshots for a few days to a week. Prolonged use of snapshots can lead to increased storage consumption and degraded VM performance.
- Short-Term Use: Utilize snapshots for quick tasks like system updates, software installations, or troubleshooting. Delete them as soon as these tasks are completed.
- Regular Deletion: Review and delete unnecessary snapshots regularly. This prevents buildup and ensures your VMs remain efficient.
Recommended Limits for Snapshot Number and Duration
Managing the number and duration of snapshots is essential to avoid potential performance issues. Here are my recommendations:
- Number of Snapshots: Limit the number of active snapshots per VM to 2-3 at any given time. Each snapshot adds to the complexity and potential for performance degradation.
- Duration of Snapshots: Keep each snapshot for no more than 72 hours. This timeframe allows for necessary testing or troubleshooting while minimizing the impact on VM performance.
Backup vs. Snapshots: Clarifying Common Myths
One common myth in VM management is the belief that snapshots can be used as backups. This misunderstanding can lead to severe issues. Let’s clarify the differences and proper use cases for snapshots and backups.
Snapshots: Temporary State Captures
Myth: Snapshots are a reliable backup solution.
Reality: Snapshots are designed for short-term, temporary captures of a VM’s state for tasks like testing, updates, or troubleshooting. They:
- Are not suitable for long-term data protection.
- Depends on the base disk and delta disks, risking data integrity if any part is corrupted.
- Can degrade performance due to increased storage and I/O operations.
Backups: Long-Term Data Protection
Myth: Backups are the same as snapshots.
Reality: Backups involve copying data to a separate location, ensuring long-term retention and disaster recovery. They:
- Provide standalone copies of data independent of the VM’s current state.
- Offer historical data recovery from weeks, months, or years ago.
- Are essential for data integrity and long-term protection.
Snapshots are for short-term use, while backups are for long-term protection. Using snapshots as backups can lead to data loss and performance issues. Ensure you use each tool for its intended purpose of maintaining a reliable and efficient VM environment.
What Are Common Use Cases and Scenarios for VMware Snapshots?
VMware snapshots are versatile tools that enhance VM management in various scenarios. Below, I’ll outline some common use cases where snapshots prove invaluable.
Snapshot Use in Software Updates and Patch Management
Snapshots are handy when dealing with software updates and patch management. Here’s how I leverage them in these scenarios:
- Pre-Update Safety Net: I take a snapshot before applying patches or updates. This allows me to roll back to the pre-update state if the update causes issues, minimizing downtime and disruptions.
- Testing Updates: In a testing environment, I use snapshots to test patches and updates on VMs before deploying them in a production environment. This ensures that the updates are compatible and do not introduce new problems.
- Rollback Strategy: If an update or patch needs to be reversed, having a snapshot taken just before the update allows for a quick and efficient rollback, ensuring the VM can be restored to its original state without complications.
Utilizing VMware snapshots in these ways can enhance your VM management strategy, ensuring both flexibility and security during critical operations.
Backup Providers Using VMware Snapshot Technology
Many backup providers leverage VMware Snapshot technology as part of their backup processes. Here’s how they typically use snapshots:
- Creating Consistent Backup Points: Backup programs create snapshots to capture the VM’s state at a specific time. This ensures that the data backed up is consistent and accessible from changes during the backup process.
- Minimizing Impact on VM Performance: Backup programs can use snapshots to perform backups without significantly impacting the VM’s performance. The VM continues to operate normally while the backup is being taken.
- Snapshot Management: After the backup is complete, the backup program usually deletes the snapshot to free up resources and maintain performance.
However, there are some considerations to keep in mind:
- Snapshot Cleanup: If there is an issue during the backup process, the snapshot might not be deleted automatically. It’s essential to regularly check for and manually delete any orphaned snapshots to avoid unnecessary storage consumption and performance degradation.
- Monitoring Tools: Use monitoring tools to track snapshots and ensure they are managed correctly. This helps maintain optimal VM performance and avoid potential issues caused by lingering snapshots.
Technical Limitations When Snapshots Are Present
Certain technical operations and functionalities are restricted when snapshots are present in a VMware environment. Here are the primary limitations to be aware of:
Inability to Increase Virtual Disk Size
- Disk Expansion: You cannot increase the size of a virtual disk (VMDK) when snapshots exist. All snapshots must be deleted to expand the disk, and the VM must be consolidated.
Conversion to Thin Provisioning
- Disk Provisioning Change: Changing the provisioning type of a virtual disk from thick to thin or vice versa is not possible while snapshots are present. This operation requires that all snapshots be removed first.
Deletion and Consolidation
- Direct Disk Modifications: Any direct modification to the disk structure, such as resizing or changing provisioning, requires the absence of snapshots. Snapshots must be deleted, and the disk must be consolidated to perform these operations.
vSphere Storage vMotion Limitations
- Data Movement: Although vSphere Storage vMotion can be performed with snapshots present, it can significantly slow down the process. For better performance, it’s recommended to delete snapshots before initiating Storage vMotion.
Virtual Machine Disk Migration
- Disk Migration: Moving individual disks between data stores is restricted when snapshots are present. You need to remove snapshots to migrate disks individually.
Cloning and Replication
- Cloning: Cloning a VM with snapshots includes the entire snapshot chain, which can complicate and extend the cloning process. It’s often better to remove snapshots before cloning to simplify the operation.
- Replication: Similarly, snapshots can hinder VM replication tasks, affecting the performance and reliability of the replication process.
Template Conversion
- Template Creation: Converting a VM with snapshots to a template requires deleting the snapshots. This ensures the template is clean and does not include the snapshot history.
PowerShell Script for Snapshot Monitoring: Stay Informed About Your Snapshots
In this section, I’ll provide a PowerShell script that you can use to monitor VMware snapshots and receive daily email notifications about existing snapshots. This script helps ensure you stay informed about snapshot statuses, including those created by backup applications that may not have been deleted automatically.
I developed this script together with ChatGPT. Please let me know if you have any improvements to the script.
Installing the VMware PowerCLI Module
Before using the script, you need to install the VMware PowerCLI module. This module provides a set of PowerShell cmdlets for managing VMware environments.
- Open PowerShell as Administrator:
- Right-click the PowerShell icon and select “Run as Administrator”.
- Install VMware PowerCLI:
Install-Module -Name VMware.PowerCLI -Scope CurrentUser -AllowClobber
- Verify the Installation:
Import-Module VMware.PowerCLI
Get-Module VMware.PowerCLI -ListAvailable
Idea Behind the Script
The script connects to your vCenter server, retrieves information about existing snapshots for all VMs, and sends a daily email report. This report includes details such as the VM name, snapshot name, creation date, size, and age of each snapshot.
This helps you keep track of snapshots and take necessary actions to manage them, especially those created by backup applications that may not have been deleted automatically.
PowerShell Script for Snapshot Monitoring
Here’s the PowerShell script to monitor snapshots and send an email report:
# Configure PowerCLI to ignore invalid SSL certificates
Set-PowerCLIConfiguration -Scope User -InvalidCertificateAction Ignore -Confirm:$false
# Connect to the vCenter Server
Connect-VIServer -Server <vCenter_Server_IP> -User <username> -Password <password>
# Get all VMs
$allVMs = Get-VM
# Create a custom object to store snapshot details
$snapshotDetails = @()
# Loop through each VM to check for snapshots
foreach ($vm in $allVMs) {
$snapshots = Get-Snapshot -VM $vm -ErrorAction SilentlyContinue
if ($snapshots) {
foreach ($snapshot in $snapshots) {
$snapshotDetails += New-Object PSObject -Property @{
VMName = $vm.Name
SnapshotName = $snapshot.Name
Created = $snapshot.Created
SizeMB = [math]::round($snapshot.SizeMB, 2)
AgeDays = ((Get-Date) - $snapshot.Created).Days
}
}
}
}
# Disconnect from the vCenter Server
Disconnect-VIServer -Server <vCenter_Server_IP> -Confirm:$false
# Format the snapshot details as an HTML table for the email body
$emailBody = @"
<html>
<head>
<style>
table { font-family: Arial, sans-serif; border-collapse: collapse; width: 100%; }
th, td { border: 1px solid #dddddd; text-align: left; padding: 8px; }
tr:nth-child(even) { background-color: #f2f2f2; }
</style>
</head>
<body>
<h2>VMware Snapshot Report</h2>
<table>
<tr>
<th>VM Name</th>
<th>Snapshot Name</th>
<th>Created</th>
<th>Size (MB)</th>
<th>Age (Days)</th>
</tr>
"@
$snapshotDetails | Sort-Object AgeDays -Descending | ForEach-Object {
$emailBody += @"
<tr>
<td>$($_.VMName)</td>
<td>$($_.SnapshotName)</td>
<td>$($_.Created)</td>
<td>$($_.SizeMB)</td>
<td>$($_.AgeDays)</td>
</tr>
"@
}
$emailBody += @"
</table>
</body>
</html>
"@
# Email parameters
$smtpServer = "<SMTP_Server>"
$smtpFrom = "<your_email@example.com>"
$smtpTo = "<recipient_email@example.com>"
$subject = "VMware Snapshot Report"
$body = $emailBody
# Send email with HTML body
Send-MailMessage -From $smtpFrom -To $smtpTo -Subject $subject -Body $body -SmtpServer $smtpServer -BodyAsHtml -Encoding UTF8
Write-Host "Email sent with snapshot details."
How to Use the Script
- Replace Placeholder Values:
<vCenter_Server_IP>
: Your vCenter server IP address.<username>
: Your vCenter username.<password>
: Your vCenter password.<SMTP_Server>
: Your SMTP server address.<your_email@example.com>
: The email address from which the report will be sent.<recipient_email@example.com>
: The email address of the recipient.
- Save the Script:
- Save the script with a
.ps1
extension, for example,MonitorSnapshots.ps1
. - You can also download the scripts as a ZIP file MonitorSnapshots
- Save the script with a
- Automate with Task Scheduler:
- Use Task Scheduler to run the script automatically at your desired frequency (e.g., daily).
Following these steps, you can set up an automated system to monitor VMware snapshots and receive regular email reports. This will ensure efficient snapshot management and keep you informed about snapshots, especially those created by backup applications that may not have been deleted automatically.
Below you see two screenshots how email notification looks. In the second screesnhot you see snapshot not deleted by Veeam backup. However the next days they were gone.


I would love to get some feedback from you. Was this article helpful? Please share your opinion with me in the comment section below. Or, if you prefer a more personal touch, feel free to email me directly at info@edywerder.ch. Your thoughts and insights are always appreciated. Additionally, you can connect with me on Reddit at Navigatetech.
Before you go …
Before you go, if you’re looking to expand your VMware expertise, take a look at VMware ESXi Barebone Homelab. This article provides a step-by-step guide on setting up a barebone homelab with ESXi, perfect for hands-on practice and experimentation. It’s a great resource for anyone wanting to deepen their practical knowledge and skills in a home environment. This could be a valuable next read to enhance your virtualization setup.
Tech Expert & Blogger
Hi, I’m Edy. With over 30 years of experience in the IT industry, I’ve tackled numerous tech challenges.
As a solopreneur, I write articles to fill the gaps I notice in my work and online.
My mission? To provide clear, step-by-step tech guidance and improve the information you find on the web
Enjoying the content?