SaaS 데이터 내보내기 성능 향상
다중 스레드 데이터 내보내기 모드 는 피드 데이터를 배치로 분할하고 병렬로 처리하여 내보내기 프로세스 속도를 높입니다.
개발자나 시스템 통합자는 기본 단일 스레드 모드 대신 다중 스레드 데이터 내보내기 모드를 사용하여 성능을 향상시킬 수 있습니다. 단일 스레드 모드에서는 피드 제출 프로세스의 병렬화가 없습니다. 또한 설정된 기본 제한으로 인해 모든 클라이언트는 하나의 스레드만 사용하도록 제한됩니다. 대부분의 경우 구성을 사용자 지정할 필요가 없습니다.
다중 스레드 모드 사용 시 고려 사항
데이터 내보내기 서비스를 사용하여 작업할 때는 정확한 동기화를 보장하면서 성능을 최적화해야 합니다.
Adobe은 일반적으로 Commerce 판매자의 동기화 요구 사항을 충족하는 데이터 수집에 기본 구성을 사용하는 것을 권장합니다. 하지만 맞춤화를 통해 처리 시간을 단축할 수 있는 시나리오가 있습니다.
데이터 내보내기 구성을 사용자 정의할지 여부를 결정할 때 다음 주요 요소를 고려하십시오.
-
초기 동기화-제품 수를 평가하고 기본 구성을 기준으로 데이터 볼륨 및 전송 시간을 예상합니다. 스스로에게 질문하기: Commerce 서비스를 온보딩한 후 이 초기 데이터 동기화를 기다릴 수 있습니까?
-
새 스토어 조회수 또는 웹 사이트 추가-라이브한 후 제품 수가 같은 스토어 조회수 또는 웹 사이트를 추가할 계획이라면 데이터 볼륨 및 전송 시간을 예상하십시오. 동기화 시간을 기본 구성으로 사용할 수 있는지, 다중 스레드 처리가 필요한지 여부를 결정합니다.
-
일반 가져오기 - 가격 업데이트 또는 재고 상태 변경과 같은 일반 가져오기를 예상합니다. 허용 가능한 기간 내에 이러한 업데이트를 적용할 수 있는지 또는 보다 빠른 처리가 필요한지 평가합니다.
-
제품 무게-제품의 무게가 가볍은지 또는 무거운지 고려하십시오. 제품 설명 또는 속성이 제품 크기를 부풀리는 경우 배치 크기를 적절하게 조정합니다.
데이터 볼륨 및 동기화 시간 추정을 포함한 사려 깊은 계획을 세우면 종종 맞춤화의 필요성을 없앨 수 있습니다. 이러한 예상치를 기반으로 피드 수집 작업을 예약하여 최적의 결과를 얻으십시오.
다중 스레딩 구성
다중 스레드 모드는 모든 동기화 메서드(전체 동기화, 부분 동기화 및 실패한 항목 동기화)에 대해 지원됩니다. 다중 스레딩을 구성하려면 동기화 중에 사용할 스레드 수와 배치 크기를 지정합니다.
threadCount
은(는) 엔터티를 처리하기 위해 활성화된 스레드 수입니다. 기본threadCount
은(는)1
입니다.batchSize
은(는) 하나의 반복에서 처리되는 엔터티 수입니다. 기본batchSize
은(는) 가격 피드를 제외한 모든 피드에 대한100
개 레코드입니다. 가격 피드의 경우 기본값은500
개 레코드입니다.
재동기화 명령을 실행할 때 또는 Adobe Commerce 애플리케이션 구성에 다중 스레드 구성을 추가하여 다중 스레딩을 임시 옵션으로 구성할 수 있습니다.
런타임 시 다중 스레딩 구성
명령줄에서 전체 동기화 명령을 실행할 때 CLI 명령에 threadCount
및 batchSize
옵션을 추가하여 다중 스레드 처리를 지정하십시오.
bin/magento saas:resync --feed=products --threadCount=2 --batchSize=200
명령줄에 지정된 옵션이 Adobe Commerce 응용 프로그램 config.php
파일에 지정된 데이터 내보내기 구성을 재정의합니다.
Commerce 구성에 다중 스레딩 추가
다중 스레딩을 사용하여 모든 데이터 내보내기 작업을 처리하기 위해 시스템 통합자나 개발자는 Commerce 애플리케이션 구성에서 각 피드에 대한 스레드 수와 배치 크기를 수정할 수 있습니다.
이러한 변경 내용은 구성 파일 app/etc/config.php
의 시스템 섹션에 사용자 지정 값을 추가하여 적용할 수 있습니다.
예: 제품 및 가격에 대한 다중 스레딩 구성
<?php
return [
'system' => [
'default' => [
'commerce_data_export' => [
'feeds' => [
'products' => [
'batch_size' => 100,
'thread_count' => 2,
],
'prices' => [
'batch_size' => 400,
'thread_count' => 4,
]
]
],
// ...