當業務高峰和低穀時間可以預估時,您可以使用定時擴縮容功能,根據預設的時間表自動調整執行個體數量。它會在高峰前擴容以保障服務效能,在低穀時縮容以節約成本。本文將介紹其配置方法,並說明它與水平擴縮容的相容性。
方式一:通過控制台配置
開啟定時自動擴縮容功能
登入PAI控制台,在頁面上方選擇目標地區,並在右側選擇目標工作空間,然後單擊進入EAS。
在服務列表中,單擊目標服務名稱,進入概覽頁面。
切換到自動調整頁簽,在定時擴縮容地區,單擊開啟定時擴縮容。
在定時自動擴縮容設定對話方塊,配置以下參數,您也可以單擊添加來配置多個定時自動擴縮容任務。參數配置完成後單擊確定。
參數
描述
任務名稱
定時自動擴縮容任務名稱,參考介面提示資訊進行配置。
目標執行個體數
預期的執行個體數。
調度周期
定時執行時間,支援以下三種設定方式:
星期:您可以設定每周定時執行自動擴縮容的時間。
天:您可以設定每天定時執行自動擴縮容的時間。
Cron運算式:您可以通過Cron運算式,設定定時自動擴縮容的時間。
更新定時自動擴縮容配置資訊
在自動調整頁簽的定時擴縮容地區,單擊管理定時擴縮容。
在定時自動擴縮容設定對話方塊,修改任務名稱、目標執行個體數或調度周期的配置資訊。
單擊更新。
關閉定時自動擴縮容功能
在自動調整頁簽的定時擴縮容地區,單擊關閉定時擴縮容。
在確定關閉對話方塊,單擊確定。
方式二:通過本地用戶端配置
開啟/更新定時自動擴縮容
服務建立之後,預設不開啟定時自動擴縮容功能,您可以登入eascmd用戶端後使用cronscale子命令開啟定時自動擴縮容功能或更新配置,如何登入eascmd用戶端,請參見下載並認證用戶端。
命令格式(以Windows 64版本為例)
eascmdwin64.exe cronscale [region]/[service_name] -s cronscale.json操作命令之前,您需要先按照參數說明配置cronscale.json,cronscale.json參數配置樣本如下。
{
"ExcludeDates": ["* * * * * 6,0"],
"ScaleJobs": [
{
"Schedule": "0 15,45 * * * *",
"TargetSize": 6
},
{
"Schedule": "0 0,30 * * * *",
"TargetSize": 1
},
{
"Schedule": "0 7,22,37,52 * * * *",
"TargetSize": 3
}
]
}參數名稱 | 說明 | 樣本 |
ExcludeDates | 需要排除的時間點,為一個Cron運算式,詳情請參見附錄:Cron運算式。 說明 如果ScaleJobs中的Cron運算式同時滿足ExcludeDates中的運算式,則ScaleJobs不會被執行。 | ["* * * * * 0,6"] 每周的周六和周日不執行定時擴縮容任務。 |
ScaleJobs | 需要執行的定時擴縮容任務,包含參數Schedule、TargetSize和Name:
| [ { "Schedule": "0 0 18 * * *", "TargetSize": 10, "Name": "scale-up" }, { "Schedule": "0 0 22 * * *", "TargetSize": 3, "Name": "scale-down" }] 在每天的18點整,將服務擴容到10,每天的22點整,將服務縮容到3。 |
查看定時自動擴縮容的配置
命令格式(以Windows 64版本為例)
eascmdwin64.exe cronscale show [region]/[service_name]
[RequestId]: F4C38D2D-4B38-5CB7-B706-9A1C41D4617E
+--------------+----------------------------+---------+------------+----------------------+
| NAME | SCHEDULE | STATE | TARGETSIZE | LASTPROBETIME |
+--------------+----------------------------+---------+------------+----------------------+
| scale-jobs-1 | 0 5,15,25,35,45,55 * * * * | Succeed | 1 | 2022-03-03T13:45:00Z |
| scale-jobs-0 | 0 0,10,20,30,40,50 * * * * | Succeed | 4 | 2022-03-03T13:50:00Z |
+--------------+----------------------------+---------+------------+----------------------+關閉定時自動擴縮容功能
命令格式(以Windows 64版本為例)
eascmdwin64.exe cronscale rm [region]/[service_name]定時與水平自動擴縮容的相容性說明
定時自動擴縮容(以下簡稱Cronscaler)可以與水平自動擴縮容(以下簡稱Autoscaler)同時開啟。同時開啟時,Cronscaler修改的是Autoscaler的min或max。
雖然Cronscaler會永久性修改Autoscaler的配置,但在到達觸發時間點之前,生效的仍然是Autoscaler的原始配置。服務每次更新、升級時,也會將Autoscaler的配置資訊調整回原始配置。
同時開啟Cronscaler和Autoscaler時,min和max的取值規則如下表所示。
水平自動擴縮容min/max | 定時自動擴縮容 | 當前執行個體數 | 最終結果 | 說明 |
1/10 | 5 | 5 |
| 當Cronscaler中的目標執行個體數和當前執行個體數一致時,Autoscaler中的最小執行個體數和最大執行個體數以及當前的執行個體數無需變更。 |
1/10 | 4 | 5 |
| 當Cronscaler中的目標執行個體數低於當前執行個體數時,保留當前執行個體數。 |
1/10 | 6 | 5 |
|
|
5/10 | 4 | 5 |
|
|
5/10 | 11 | 5 |
|
|
附錄:Cron運算式
通過設定Cron運算式,開啟定時自動擴縮容功能。
Cron運算式
特殊符號說明
星號(*)
星號代表任意值,例如:
0 0 0 1 * *代表每月1號的0點整。連字號(-)
連字號代表一段連續的取值範圍,例如:
0 0 12-14 * * *代表每天的12:00、13:00 和14:00。逗號(,)
逗號代表多個離散的值,例如:
0 0 12,14 * * *代表每天的12:00 和14:00。斜杠(/)
斜杠用來代表一段增量的區間,例如:
0 */15 * * * *代表每小時的 0分、15分、30分、和45分。斜杠可以和連字號配合使用,例如0 5-40/15 * * * *代表每小時從5分到40分鐘之間,每隔15分鐘取一個值,有效時間點可以是 0:05、0:20或0:35。
時間參數說明
名稱
可用值
可用特殊符號
秒
0-59
* / , -
分
0-59
* / , -
小時
0-23
* / , -
日
1-31
* / , -
月
1-12 或 JAN-DEC
* / , -
星期
0-6 或 SUN-SAT
* / , -
常見問題
可以佈建服務定時啟動、定時關閉嗎?
可以。比如要求服務早上8點啟動,晚上8點關閉,可以開啟定時自動擴縮容並設定每天8點目標執行個體數為1,每天20點,目標執行個體數為0。

