Skip to content

Commit aa1db7a

Browse files
authored
Merge pull request #294303 from vgs-msft/vgs-msft-lcm-best-practices
Adding a new article - LCM recommendation
2 parents 245e85c + 6e76d83 commit aa1db7a

File tree

3 files changed

+94
-16
lines changed

3 files changed

+94
-16
lines changed

articles/storage/blobs/TOC.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,8 @@ items:
221221
items:
222222
- name: Configure lifecycle management policies
223223
href: lifecycle-management-policy-configure.md
224+
- name: Lifecycle management performance characteristics
225+
href: lifecycle-management-performance-characteristics.md
224226
- name: Full text search
225227
href: /azure/search/search-blob-storage-integration?toc=/azure/storage/blobs/toc.json&bc=/azure/storage/blobs/breadcrumb/toc.json
226228
- name: Static websites

articles/storage/blobs/lifecycle-management-overview.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ description: Use Azure Blob Storage lifecycle management policies to create auto
55
author: normesta
66

77
ms.author: normesta
8-
ms.date: 11/25/2024
8+
ms.date: 02/10/2025
99
ms.service: azure-blob-storage
1010
ms.topic: conceptual
1111
ms.custom: references_regions, engagement-fy23
@@ -73,6 +73,20 @@ Each rule within the policy has several parameters, described in the following t
7373
| `type` | An enum value | The current valid type is `Lifecycle`. | True |
7474
| `definition` | An object that defines the lifecycle rule | Each definition is made up of a filter set and an action set. | True |
7575

76+
## Lifecycle policy characteristics
77+
78+
When you add or edit the rules of a lifecycle policy, it can take up to 24 hours for changes to go into effect and for the first execution to start.
79+
80+
An active policy processes objects periodically, and is interrupted if changes are made to the policy. If you disable a policy, then no new policy runs will be scheduled, but if a run is already in progress, that run will continue until it completes and you're billed for any actions that are required to complete the run. If you disable or delete all of the rules in a policy, then the policy becomes inactive, and no new runs will be scheduled.
81+
82+
The time required for a run to complete depends on the number of blobs evaluated and operated on. The latency with which a blob is evaluated and operated on may be longer if the request rate for the storage account approaches the storage account limit. All requests made to storage account, including requests made by policy runs, accrue to the same limit on requests per second, and as that limit approaches, priority is given to requests made by workloads. To request an increase in account limits, contact [Azure Support](https://azure.microsoft.com/support/faq/).
83+
Learn more about [Lifecycle Management Performance Characteristics](lifecycle-management-performance-characteristics.md).
84+
85+
To view default scale limits, see the following articles:
86+
87+
- [Scalability and performance targets for Blob storage](scalability-targets.md)
88+
- [Scalability and performance targets for standard storage accounts](../common/scalability-targets-standard-account.md)
89+
- [Scalability targets for premium block blob storage accounts](scalability-targets-premium-block-blobs.md)
7690
## Lifecycle management rule definition
7791

7892
Each rule definition within a policy includes a filter set and an action set. The [filter set](#rule-filters) limits rule actions to a certain set of objects within a container or objects names. The [action set](#rule-actions) applies the tier or delete actions to the filtered set of objects.
@@ -183,21 +197,7 @@ The run conditions are based on age. Current versions use the last modified time
183197

184198
<sup>1</sup> If [last access time tracking](#move-data-based-on-last-accessed-time) is not enabled, **daysAfterLastAccessTimeGreaterThan** uses the date the lifecycle policy was enabled instead of the `LastAccessTime` property of the blob. This date is also used when the `LastAccessTime` property is a null value. For more information about using last access time tracking, see [Move data based on last accessed time](#move-data-based-on-last-accessed-time).
185199

186-
## Lifecycle policy runs
187-
188-
When you add or edit the rules of a lifecycle policy, it can take up to 24 hours for changes to go into effect and for the first execution to start.
189-
190-
An active policy processes objects continuously, and is interrupted if changes are made to the policy. If you disable a policy, then no new policy runs will be scheduled, but if a run is already in progress, that run will continue until it completes and you're billed for any actions that are required to complete the run. If you disable or delete all of the rules in a policy, then the policy becomes inactive, and no new runs will be scheduled.
191-
192-
The time required for a run to complete depends on the number of blobs evaluated and operated on. The latency with which a blob is evaluated and operated on may be longer if the request rate for the storage account approaches the storage account limit. All requests made to storage account, including requests made by policy runs, accrue to the same limit on requests per second, and as that limit approaches, priority is given to requests made by workloads. To request an increase in account limits, contact [Azure Support](https://azure.microsoft.com/support/faq/).
193-
194-
To view default scale limits, see the following articles:
195-
196-
- [Scalability and performance targets for Blob storage](scalability-targets.md)
197-
- [Scalability and performance targets for standard storage accounts](../common/scalability-targets-standard-account.md)
198-
- [Scalability targets for premium block blob storage accounts](scalability-targets-premium-block-blobs.md)
199-
200-
### Lifecycle policy completed event
200+
## Lifecycle policy completed event
201201
The `LifecyclePolicyCompleted` event is generated when the actions defined by a lifecycle management policy are performed. A summary section appears for each action that is included in the policy definition. The following json shows an example `LifecyclePolicyCompleted` event for a policy. Because the policy definition includes the `delete`, `tierToCool`, `tierToCold`, and `tierToArchive` actions, a summary section appears for each one.
202202

203203

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
---
2+
title: Lifecycle management performance characteristics
3+
4+
titleSuffix: Azure Blob Storage
5+
author: vigneshgo
6+
ms.date: 02/11/2025
7+
description: Best practices and guidance on configuring Azure Blob Storage lifecycle management policies and factors influencing its performance.
8+
9+
ms.author: normesta
10+
ms.service: azure-blob-storage
11+
ms.topic: reference
12+
ms.custom: references_regions, engagement-fy23
13+
---
14+
15+
# Lifecycle management performance characteristics
16+
17+
18+
Azure Blob Storage lifecycle management helps you automate the transition of objects to lower-cost access tiers, or to delete objects at the end of their lifecycle to reduce storage costs. If a policy is active, Lifecycle Management periodically processes the objects in a storage account that match the filter set and rules specified in the lifecycle management policy. The time that is required for a policy to complete processing objects in a storage account depends on many factors such as the number of objects to be evaluated and operated on, the customer workloads on the account, the availability of storage resources and more. In some cases, it can take multiple days to finish processing all the objects in the storage account. A new lifecycle management policy run begins only after the ongoing run completes. Lifecycle management is constantly optimizing for speed of execution while keeping these factors in mind.
19+
20+
21+
## Factors influencing lifecycle management performance
22+
23+
There are many factors that influence the execution time that lifecycle management would take to process the objects in a single storage account.
24+
25+
26+
Lifecycle management processes the subset of objects in the storage account that you scope by creating filter sets (prefix or file path) in lifecycle management policies. If you don't specify a scope or the scope is too broad, lifecycle management might have to process a large number of objects which could increase the time required for the policy to complete. Processing time can also increase if a significant percentage of objects meet the policy conditions. This increase in processing time is especially true when the policy is enabled for the first time on the storage account.
27+
28+
All requests that are made to a storage account, including requests that are made by lifecycle management policy runs, accrue to the same limit on requests per second. As that request limit is approached, priority is given to requests that are made by customer workloads. The latency of processing objects also increases if the scalability and performance limits of the storage account are reached. Consider this latency when deciding operations that need to be performed within specific time frames. Learn more about [Scalability and performance targets for standard storage accounts](../common/scalability-targets-standard-account.md).
29+
30+
31+
By prioritizing customer workloads, lifecycle management ensures that these workloads run with minimal to no interruptions. However, it can impact the rate of objects processed by lifecycle management. In such cases, it's possible that the rate of object creation and modification is higher than the rate at which lifecycle management can process the storage account.
32+
33+
34+
Policy conditions are assessed on each object only once during a policy run. In some cases, an object might meet the condition after it was already assessed by a run. Such objects are processed in subsequent runs.
35+
36+
Any of these conditions could cause lifecycle management to take multiple days to complete processing objects in a storage account. This performance characteristic of lifecycle management could result in objects taking longer to process and could lead to an increase in the storage capacity.
37+
38+
39+
## Best practices to improve lifecycle management performance
40+
41+
42+
### Narrow the scope of the lifecycle management policy
43+
44+
In cases where lifecycle management is taking a long time to complete a run, consider applying filter sets to narrow the scope of the search and evaluation. You can do this by adding prefixes and/or blob Index tags while authoring the lifecycle management policy rules. A narrowed scope enables lifecycle management to optimize the operations.
45+
46+
> [!TIP]
47+
> Use [Azure Storage Copilot](/azure/copilot/improve-storage-accounts#reduce-storage-costs) to help configure a lifecycle management policy.
48+
49+
50+
### Optimize for storage and transactions costs
51+
52+
53+
It might be more cost effective for the small objects to stay in their current tier, instead of paying transaction costs to move them to cheaper storage tiers. Avoid moving small files to lower tiers, unless you must. [Learn more](access-tiers-best-practices.md) about choosing the right storage tier.
54+
55+
> [!TIP]
56+
> [Azure Storage Actions](../../storage-actions/overview.md) supports size-based object targeting, and tiering/deleting operations.
57+
58+
### Set appropriate time-based rules
59+
60+
Avoid policy conditions that use a short duration between object creation, modification or last access time, and the intended operation by the policy. Lifecycle management can take up to 24 hours to begin processing after the prior run is completed. Policy changes and updates can also take up to 24 hours to go into effect. This includes deleting all the rules to make a policy inactive. Policies that take multiple days to complete might not operate on objects that were evaluated earlier in the run even though they meet the conditions over the run period.
61+
62+
63+
### Be aware of scalability and performance limits
64+
65+
The request rate and bandwidth of your storage account depend on object size, access patterns, and workload type. Lifecycle management might experience a slower rate of processing objects during high traffic workloads. If you consistently notice the storage account reaching the account limits and a slowdown in lifecycle management processing, request an increase in account limits. Lifecycle management performance might improve based on the resource allocation and by workload prioritization. To request an increase contact [Azure Support](https://azure.microsoft.com/support/faq/) .
66+
67+
68+
### Set up troubleshooting and monitoring
69+
70+
You should periodically evaluate the performance of your lifecycle management policy. Set up [Event Grid Notifications](../../event-grid/blob-event-quickstart-portal.md) to get notified on when a lifecycle management policy run is completed. To dive into run details, use storage resource logs in [Azure Monitor](monitor-blob-storage.md) .
71+
72+
73+
## Next Steps
74+
- [Blob Storage FAQ](storage-blob-faq.yml)
75+
- [Configure a lifecycle management policy](lifecycle-management-policy-configure.md)
76+
- [Plan and manage Costs for Blob Storage](../common/storage-plan-manage-costs.md)

0 commit comments

Comments
 (0)