내 목록에 2000 개의 항목이 있으며이 목록을 대량 요청 인 API로 elasticsearch에 삽입하려고합니다. 같은 코드를 찾으십시오.elasticSearch에 목록을 삽입하는 응용 프로그램의 성능을 향상시키는 방법은 무엇입니까?
for(Car car : carList){
elasticSearchService.addOrganization(car,"Car");
}
Code for ElasticSearch Service
@Autowired
private Client esClient;
private void addOrganization(Object object, String modelName){
Gson gson = new Gson();
final String json = gson.toJson(object);
esClient.prepareIndex("ElasticSearchIndex",modelName).setSource(json).execute().actionGet();
}
I have made following entry in elasticsearch.yml file
threadpool:
index:
size: 250
queue_size: 1000
우리가 JMeter를 통해 응용 프로그램의 성능을 모니터링하고, 우리는 우리의 응용 프로그램을 연결하고 우리가 esClient에 connectionpool을이 task.Can을 위해 약 10 초 정도 소요 elasticsearch 에 데이터를 넣어 2000 HTTP 요청을 생성하는 것을 발견 또는 elasticsearch 서버에서 구성을 수행하여 응용 프로그램의 성능을 향상시킬 수있는 방법이 있습니까? 응답 시간이 최대 3 초까지 단축됩니까?
색인 생성을 시도 했습니까? 샤드 (전체 데이터가 더 빠른 액세스를 위해 배포 됨)를 사용하여 데이터를 배포 했습니까? 여러 개의 노드 (동일한 데이터 - 중복성 및 빠른 액세스)를 제공 했습니까? 튜닝 질문 같아. 당신은 당신의 성능 엔지니어에게이 질문을해야합니다. –
우리는 위에서 언급했듯이 스레드 풀을 늘리려고했지만 성능이 향상되지 않고 샤드를 늘리거나 줄이면 아무런 결과가 나지 않습니다. – Vrushali
100, 200, 300, 400 ... 900, 1000과 같은 단계로 하중을 넣으십시오. .... 2000 등 (원하는 경우 단일 테스트에서 Stepping ThreadGroup, https://jmeter-plugins.org/wiki/SteppingThreadGroup/)을 사용하십시오. 그래서, 어떤 하중, 응답 시간이 임계 값을 초과하는지 (예 : 언급 한 3 초) 명확한 아이디어를 갖게됩니다. 이를 토대로 인프라 스트럭처의 확장/축소 또는 기존 배치의 재검토 여부를 결정할 수 있습니다. –