Elasticsearch İçin Bellek Kullanımı Nasıl Belirlenmeli
Elasticsearch’in bellek (heap) kullanımını belirlerken sunucu donanımı, veri büyüklüğü ve sorgu yükü gibi faktörleri dikkate almalısın. Bellek yönetimi için JVM Heap Size (Java Yığın Boyutu) ayarlarını yapmalısın.
1. Elasticsearch İçin Bellek Kullanımı Nasıl Belirlenmeli?
1.1. Genel Kural
📌 Heap (JVM) boyutu, toplam RAM'in yaklaşık %50’si olmalıdır.
📌 Maksimum 32GB olarak ayarlanmalıdır. (Java'nın Compressed Oops optimizasyonunu kullanabilmesi için)
🔹 Önerilen Heap Ayarları:
RAM | Elasticsearch Heap (JVM) Ayarı |
---|---|
4 GB | 2 GB (-Xms2g -Xmx2g ) |
8 GB | 4 GB (-Xms4g -Xmx4g ) |
16 GB | 8 GB (-Xms8g -Xmx8g ) |
32 GB | 16 GB (-Xms16g -Xmx16g ) |
64 GB | 31 GB (-Xms31g -Xmx31g ) |
2. Elasticsearch Bellek Ayarlarını Yapılandırma
2.1. Docker Kullanıyorsan
Elasticsearch’i Docker ile çalıştırıyorsan, JVM heap ayarlarını -e
parametresi ile belirleyebilirsin:
docker run -d --name elasticsearch \
-p 9200:9200 \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms4g -Xmx4g" \
docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2
Örnek: Sunucunda 8GB RAM varsa, Elasticsearch 4GB bellek kullanacaktır.
2.2. Docker Compose Kullanıyorsan
docker-compose.yml
dosyasında bellek ayarlarını şu şekilde değiştirebilirsin:
environment:
- ES_JAVA_OPTS=-Xms4g -Xmx4g
2.3. Manuel Ayar (Elasticsearch config)
Eğer Docker kullanmıyorsan ve Elasticsearch'i manuel olarak çalıştırıyorsan, şu dosyayı düzenleyebilirsin:
📂 Linux/Mac:
sudo nano /etc/elasticsearch/jvm.options
📂 Windows:
C:\Program Files\Elasticsearch\config\jvm.options
Şu satırları bul ve uygun değerleri ayarla:
-Xms4g
-Xmx4g
Örnek: 16GB RAM’li bir sunucuda 8GB heap için:
-Xms8g
-Xmx8g
3. Heap Kullanımını Test Etme
Elasticsearch çalıştıktan sonra heap kullanımını kontrol edebilirsin.
Heap Durumunu Kibana ile Kontrol Etme:
Kibana’yı aç ve aşağıdaki API çağrısını yap:
GET _nodes/stats/jvm
Bu komut, heap kullanımını ve bellek ayarlarını gösterecektir.
4. Özet ve Sonraki Adımlar
✅ Elasticsearch için heap bellek boyutunu optimize ettik.
✅ Docker veya manuel kurulum için JVM heap ayarlarını yapılandırdık.
✅ Heap kullanımını nasıl kontrol edeceğimizi öğrendik.
Yorumlar