Ich habe 2000 Einträge in meiner Liste und versuche diese Liste in elasticsearch per API einzufügen, was nichts anderes als eine Massenanfrage ist. Nachstehend finden Sie den Code für das gleiche.Wie verbessert man die Leistung der Anwendung zum Einfügen von Liste in 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
Wie wir Leistung der Anwendung durch JMeter Überwachung sind, fanden wir, dass unsere Anwendung 2000 HTTP-Anfragen generiert verbinden und stellen Daten in Elasticsearch , die ca. 10 Sekunden für dieses task.Can nimmt wir in Connection esClient machen Oder gibt es eine Möglichkeit, eine Konfiguration auf dem elasticsearch-Server vorzunehmen, damit die Leistung der Anwendung verbessert werden kann und die Reaktionszeit bis auf 3 Sekunden reduziert wird?
Haben Sie versucht, zu indexieren? hast du die Daten mit Shard verteilt (ganze Daten sind für einen schnelleren Zugriff verteilt)? Haben Sie mehrere Knoten bereitgestellt (mit denselben Daten - Redundanz und schnellerer Zugriff)? Es scheint wie Tuning-Frage. Sie müssen diese Frage an Ihren Ingenieur stellen. –
Wir haben versucht, den Threadpool wie oben erwähnt zu erhöhen, aber keine Verbesserung der Performance und sogar eine Erhöhung/Verringerung der Shards liefert keine guten Ergebnisse. – Vrushali
Ich würde vorschlagen, dass Sie die Last in Schritten wie 100, 200, 300, 400 ... 900, 1000 setzen .... 2000 usw. (in einem einzigen Test, wenn Sie möchten, verwenden Sie Stepping ThreadGroup, https://jmeter-plugins.org/wiki/SteppingThreadGroup/). Sie werden also eine klare Vorstellung davon haben, bei welcher Last die Antwortzeiten die Schwellenwerte überschreiten (wie 3 Sekunden, wie Sie bereits erwähnt haben). Auf dieser Grundlage können Sie entscheiden, ob Sie die Infrastruktur skalieren oder die vorhandene Bereitstellung erneut überprüfen. –