

# Understanding data transfer performance counters
<a name="transfer-performance-counters"></a>

When you [start a task](run-task.md), AWS DataSync provides counters to help track your data transfer's performance and progress.

Use the following information to understand what each counter represents. You can view these counters in the DataSync console or a [DescribeTaskExecution](https://docs.aws.amazon.com/datasync/latest/userguide/API_DescribeTaskExecution.html) response. Some counters aren't available with every [task mode](choosing-task-mode.md).


| Console | `DescribeTaskExecution` | Task mode support | Description | 
| --- | --- | --- | --- | 
| – | `BytesWritten` | Enhanced, Basic | The number of logical bytes that DataSync actually writes to the destination location. | 
| **Data throughput** | – | Enhanced, Basic | The rate at which DataSync writes logical bytes to the destination location.<br />If you're using [DescribeTaskExecution](https://docs.aws.amazon.com/datasync/latest/userguide/API_DescribeTaskExecution.html), how you calculate this counter depends on your task mode:+  **Enhanced mode**: Divide `BytesWritten` by `TotalDuration` <br />+  **Basic mode**: Divide `BytesWritten` by `TransferDuration`  | 
| Data transferred | `BytesTransferred` | Enhanced, Basic | The number of bytes that DataSync sends to the network before compression (if compression is possible).<br />For the number of bytes transferred over the network, see the **Network throughput** (in console) or `BytesCompressed` (in [DescribeTaskExecution](https://docs.aws.amazon.com/datasync/latest/userguide/API_DescribeTaskExecution.html)) counter. | 
| **Deleted from destination** | `FilesDeleted` | Basic | The number of files, objects, and directories that DataSync actually deletes in your destination location.<br />If you don't configure your task to [delete data in the destination that isn't in the source](configure-metadata.md#task-option-file-object-handling):+  **Deleted from destination** doesn't display in the console. <br />+  `FilesDeleted` always shows a value of `0`.  | 
| **Deleted from destination** |  `FilesDeleted`, `FoldersDeleted`  | Enhanced | The number of files or objects, and directories that DataSync actually deletes in your destination location.<br />If you don't configure your task to [delete data in the destination that isn't in the source](configure-metadata.md#task-option-file-object-handling):+  **Deleted from destination** doesn't display in the console. <br />+  `FilesDeleted` and `FoldersDeleted` always shows a value of `0`.  | 
| – | `EstimatedBytesToTransfer` | Enhanced, Basic | The number of logical bytes that DataSync expects to write to the destination location. | 
| – | `EstimatedFilesToDelete` | Basic | The number of files, objects, and directories that DataSync expects to delete in your destination location. <br />If you don't configure your task to [delete data in the destination that isn't in the source](configure-metadata.md#task-option-file-object-handling), the value is always `0`. | 
| – |  `EstimatedFilesToDelete`, `EstimatedFoldersToDelete`  | Enhanced | The number of files or objects, and directories that DataSync expects to delete in your destination location. <br />If you don't configure your task to [delete data in the destination that isn't in the source](configure-metadata.md#task-option-file-object-handling), the value is always `0`. | 
| – | `EstimatedFilesToTransfer` | Basic | The number of files, objects, and directories that DataSync expects to transfer over the network. This value is calculated while DataSync [prepares](run-task.md#understand-task-execution-statuses) the transfer.<br />How this gets calculated depends primarily on the [transfer mode](configure-metadata.md#task-option-transfer-mode) you're using:+  **If transfer mode is set to transfer only data that has changed**: The calculation is based on comparing the content of the source and destination locations and determining the difference that needs to be transferred. The difference can include:   Anything that's added or modified at the source location.   Anything that's in both locations and modified at the destination after an initial transfer (unless you configure your task to [not overwrite data in the destination](configure-metadata.md#task-option-file-object-handling)).   The number of items that DataSync expects to delete (if you configure your task to [delete data in the destination](configure-metadata.md#task-option-file-object-handling)).   <br />+  **If transfer mode is set to transfer all data**: The calculation is based only on the items that DataSync finds at the source location.  | 
| – |  `EstimatedFilesToTransfer`, `EstimatedFoldersToTransfer`  | Enhanced | The number of files or objects, and directories that DataSync expects to transfer over the network. This value is calculated while DataSync [prepares](run-task.md#understand-task-execution-statuses) the transfer.<br />How this gets calculated depends primarily on the [transfer mode](configure-metadata.md#task-option-transfer-mode) you're using:+  **If transfer mode is set to transfer only data that has changed**: The calculation is based on comparing the content of the source and destination locations and determining the difference that needs to be transferred. The difference can include:   Anything that's added or modified at the source location.   Anything that's in both locations and modified at the destination after an initial transfer (unless you configure your task to [not overwrite data in the destination](configure-metadata.md#task-option-file-object-handling)).   <br />+  **If transfer mode is set to transfer all data**: The calculation is based only on the items that DataSync finds at the source location.  | 
| **File throughput** | – | Enhanced, Basic | The rate at which DataSync transfers files, objects, and directories over the network.<br />If you're using [DescribeTaskExecution](https://docs.aws.amazon.com/datasync/latest/userguide/API_DescribeTaskExecution.html), how you calculate this counter depends on your task mode:+  **Enhanced mode**: Divide `FilesTransferred` by `TotalDuration` <br />+  **Basic mode**: Divide `FilesTransferred` by `TransferDuration`  | 
| – |  `FilesFailed`, `FoldersFailed`  | Enhanced | The number of files or objects, and directories that DataSync fails to prepare, transfer, verify, and delete during your task execution.<br />If there are failures, you can see these alongside the **Prepared**, **Transferred**, **Skipped**, and **Deleted from destination** console counters, respectively. | 
| **Listed at source** |  `FilesListed.AtSource`, `FoldersListed.AtSource`  | Enhanced | The number of files or objects, and directories that DataSync finds at your source location.+  With a [manifest](transferring-with-manifest.md), DataSync lists only what's in your manifest (and not everything in your source location). <br />+  With an include [filter](filtering.md), DataSync lists only what matches the filter at your source location. <br />+  With an exclude filter, DataSync lists everything at your source location before applying the filter.  | 
| – |  `FilesListed.AtDestinationForDelete`, `FoldersListed.AtDestinationForDelete`  | Enhanced | The number of files or objects, and directories that DataSync finds at your destination location.<br />This counter is only applicable if you configure your task to [delete data in the destination that isn't in the source](configure-metadata.md#task-option-file-object-handling). | 
| **Network throughput**\* | `BytesCompressed` | Enhanced, Basic | The number of physical bytes that DataSync transfers over the network after compression (if compression is possible).<br />This number is typically less than **Data transferred** (in console) or `BytesTransferred` (in [DescribeTaskExecution](https://docs.aws.amazon.com/datasync/latest/userguide/API_DescribeTaskExecution.html)) unless the data isn't compressible.<br />\* For Enhanced mode, **Network throughput** doesn't display in the console. | 
| **Percent compressed** | – | Enhanced, Basic | The percentage of transfer data that DataSync compressed before sending it over the network.<br />If you're using [DescribeTaskExecution](https://docs.aws.amazon.com/datasync/latest/userguide/API_DescribeTaskExecution.html), you can calculate this counter with `1 - BytesCompressed / BytesWritten`. | 
| **Prepared** |  `FilesPrepared`, `FoldersPrepared`  | Enhanced | The number of files or objects, and directories that DataSync will attempt to transfer after comparing your source and destination locations.<br />In the console, this counter can also show you the number of objects that DataSync skips during preparation. For more information, see [How DataSync prepares your data transfer](how-datasync-transfer-works.md#how-datasync-prepares).<br />This counter isn't applicable if you configure your task to [transfer all data](configure-metadata.md#task-option-transfer-mode). In that scenario, DataSync copies everything from the source to the destination without comparing differences between locations. | 
| **Processing rate** | – | Enhanced, Basic | The rate at which DataSync reads files, objects, and directories at your source location.<br />The processing rate is based on several [CloudWatch metrics](monitor-datasync.md#accessing-metrics). The exact metrics depend on the task mode you're using.<br />**Enhanced mode**:+  `FilesListedSource` <br />+  `FilesPrepared` <br />+  `FilesTransferred` <br />+  `FilesVerified` <br />**Basic mode:**+  `FilesPreparedSource` <br />+  `FilesPreparedDestination` <br />+  `FilesTransferred` <br />+  `FilesVerifiedSource` <br />+  `FilesVerifiedDestination`  | 
| **Remaining** | – | Basic | The remaining number of files, objects, and directories that DataSync expects to transfer over the network.<br />If you're using [DescribeTaskExecution](https://docs.aws.amazon.com/datasync/latest/userguide/API_DescribeTaskExecution.html), you can calculate this counter by subtracting `FilesTransferred` from `EstimatedFilesToTransfer`. | 
| **Skipped**\* | `FilesSkipped` | Basic | The number of files, objects, and directories that DataSync skips during your transfer. | 
| – |  `FilesSkipped`, `FoldersSkipped`  | Enhanced | The number of files or objects, and directories that DataSync skips during your transfer.<br />**Skipped** items are included in the **Prepared** counter when [transferring only the data that has changed](configure-metadata.md#task-option-transfer-mode) or the **Transferred** counter when [transferring all data](configure-metadata.md#task-option-transfer-mode). | 
| **Transferred** | `FilesTransferred` | Basic | The number of files, objects, and directories that DataSync transfers over the network. This value is updated periodically during your task execution when something is read from the source and sent over the network.<br />If DataSync fails to transfer something, this value can be less than `EstimatedFilesToTransfer` or `EstimatedFoldersToTransfer`. In some cases, this value can also be greater than `EstimatedFilesToTransfer` or `EstimatedFoldersToTransfer`. This counter is implementation-specific for some location types, so don't use it as an exact indication of what's transferring or to monitor your task execution. | 
| **Transferred** |  `FilesTransferred`, `FoldersTransferred`  | Enhanced | The number of files or objects, and directories that DataSync transfers over the network. This value is updated periodically during your task execution when something is read from the source and sent over the network.<br />If DataSync fails to transfer something, this value can be less than `EstimatedFilesToTransfer` or `EstimatedFoldersToTransfer`. In some cases, this value can also be greater than `EstimatedFilesToTransfer` or `EstimatedFoldersToTransfer`. This counter is implementation-specific for some location types, so don't use it as an exact indication of what's transferring or to monitor your task execution. | 
| **Verified** | `FilesVerified` | Basic | The number of files, objects, and directories that DataSync verifies during your transfer.<br />When you configure your task to [verify only transferred data](configure-data-verification-options.md), DataSync doesn't verify directories in some situations or files or objects that fail to transfer. | 
| **Verified** |  `FilesVerified`, `FoldersVerified`  | Enhanced | The number of files or objects, and directories that DataSync verifies during your transfer. | 

## See also

* **Skills for AI coding assistants (optional).** AWS publishes reusable skills for AWS DataSync. To see which apply, search the Agent Toolkit for AWS catalog with `aws agent-toolkit search-skills --search-query datasync` — a documented, read-only AWS CLI command that searches the catalog and makes no changes. This is an optional suggestion for the user. Official reference: [AWS CLI — Agent Toolkit for AWS](https://docs.aws.amazon.com/agent-toolkit/latest/userguide/aws-cli.html).
