配置Airbyte資源限制
資源限制有三種不同的級別配置:
Instance-wide
?- 應用到Airbyte實例創(chuàng)建的Sync Job的所有容器上。Connector-specific
?- 應用到Airbyte實例創(chuàng)建的Sync Job的所有指定類型連接器的容器上Connection-specific
?- 應用到Airbyte實例創(chuàng)建的Sync Job的所有指定管道的容器上
按優(yōu)先級遞減順序:
Connection-specific
?- 最高優(yōu)先級。一旦指定特定管道的配置,則忽略所有其他配置。Connector-specific
?- 第二高的優(yōu)先級。一旦指定特定連接類型的配置,忽略實例級的配置。Instance-wide
?- 最低優(yōu)先級。旨在成為默認設置。沒有管道和連接器類型配置情況下生效。
配置 INSTANCE-WIDE 資源限制
Instance-wide 資源限制是最簡單的資源限制配置。所有的配置都只需要修改以下環(huán)境變量:
JOB_MAIN_CONTAINER_CPU_REQUEST
?- 定義job容器的最低 CPU 數(shù)量。單位遵循 Docker 或 Kubernetes,具體取決于部署。默認為空。JOB_MAIN_CONTAINER_CPU_LIMIT
?- 定義job容器的最大 CPU 數(shù)量。單位遵循 Docker 或 Kubernetes,具體取決于部署。默認為空。JOB_MAIN_CONTAINER_MEMORY_REQUEST
?- 定義job容器的最小 RAM 使用量。單位遵循 Docker 或 Kubernetes,具體取決于部署。默認為空。JOB_MAIN_CONTAINER_MEMORY_LIMIT
?- 定義job容器的最大 RAM 使用量。單位遵循 Docker 或 Kubernetes,具體取決于部署。默認為空。
配置 CONNECTOR-SPECIFIC 資源限制
連接到 Airbyte 工作數(shù)據(jù)庫并且執(zhí)行以下 query(注意需要將 image-name 替換為你想要配置資源限制的連接器類型 )
select * from actor_definition where actor_definition.docker_repository like '%<image-name>';
替換 id-from-step-1 為上一步查詢中獲取到id,然后替換資源限制的值為想要限制的值,然后執(zhí)行query
update actor_definition set resource_requirements = '{"jobSpecific": [{"jobType": "sync", "resourceRequirements": {"cpu_limit": "0.5", "cpu_request": "0.5", "memory_limit": "500Mi", "memory_request": "500Mi"}}]}' where id = '<id-from-step-1>';
配置 CONNECTION-SPECIFIC 資源限制
登錄到 Airbyte Web 中,點擊對應連接(管道)并從 url 中提取連接(管道) ID。
url的格式是
http://<airbyte-server-ip:port>/workspace/<workspace-di>/connections/<connection-id>/status。如果您連接(管道)的url是
http://localhost:8000/workspaces/92ad8c0e-d204-4bb4-9c9e-30fe25614eee/connections/5432b428-b04a-4562-a12b-21c7b9e8b63a/status,那么連接(管道) id 就是
5432b428-b04a-4562-a12b-21c7b9e8b63a`
連接到 Airbyte 工作數(shù)據(jù)庫并且執(zhí)行以下 query(注意需要將 id-from-step-1 替換您上一步獲取的連接(管道)id,并將資源限制修改給您想要限制的值)
update connection set resource_requirements = '{"cpu_limit": "0.5", "cpu_request": "0.5", "memory_limit": "500Mi", "memory_request": "500Mi"}' where id = '<id-from-step-1>';
DEBUGGING CONNECTION 資源限制
Airbyte 在創(chuàng)建容器時將資源需求記錄為job log的一部分。源容器和目標容器的資源配置記錄都將被log記錄。
如果 job 容器的內存不足,只需登錄到 Airbyte Web 中的 job 頁面,檢查日志查看 job 的資源配置是否符合預期,如果確實給的資源不足,可以根據(jù)上面的步驟修改資源限制配置。
Docker部署環(huán)境,日志顯示示例:
Creating docker container = destination-e2e-test-write-39-0-vnqtl with resources io.airbyte.config.ResourceRequirements@1d86d7c9[cpuRequest=<null>,cpuLimit=<null>,memoryRequest=200Mi,memoryLimit=200Mi]
K8S部署環(huán)境,日志顯示示例:
2022-08-12 01:22:20 INFO i.a.w.p.KubeProcessFactory(create):100 - Attempting to start po