Docker CPU ve Bellek Kısıtlamalarını Kullanmak
Docker container'ların CPU ve Memory kaynak kullanımlarını kısıtlayarak sistemin performansını arttırabilir ve kaynakları daha etkili bir şekilde kullanabilirsiniz. Böylece diğer container'ların ve host cihazının çalışmasını engellememiş ve kaynaklarını tüketmemiş olursunuz.
Neden kaynak kısıtlamalarını kullanmalıyız diye sorarsak, aşağıdaki nedenlerden dolayı container'ların CPU ve bellek kullanımını kısıtlamak gereklidir:
- Sistem kaynaklarını daha etkili kullanmak: Kısıtlamalar ile container'ların CPU ve bellek kullanımını sınırlandırarak, sistemin geri kalanının kaynaklarını daha etkili kullanmasını sağlar.
- Sistem performansını arttırmak: Kısıtlamalar ile container'ların CPU ve bellek kullanımını sınırlandırarak, sistemin performansını arttırırsınız.
- Bellek sorunlarını önlemek: Kısıtlamalar ile container'ların bellek kullanımını sınırlandırarak, sistemde bellek yetersizliği sorunlarını önleyebilirsiniz.
- CPU sorunlarını önlemek: Kısıtlamalar ile container'ların CPU kullanımını sınırlandırarak, sistemde CPU yetersizliği sorunlarını önleyebilirsiniz.
Docker container'larının CPU ve bellek kullanımını kısıtlamak için docker run komutunun --cpus, --cpuset-cpus, --memory, --memory-swap, --memory-reservation gibi seçeneklerini kullanabilirsiniz.
--cpusseçeneği ile container'ın kullanabileceği CPU miktarını kesin olarak belirlersiniz. Örnek olarak:
docker run --cpus 2 container_nameBu komut container'ın CPU kullanımını 2 core değerine kısıtlar.
--cpuset-cpusparametresi ile ayrıca hangi numaralı core'ları kullanacağınızı belirleyebilirsiniz.
docker run --cpus 1.5 --cpuset-cpus="0,2" container_nameYukarıdaki örnekte CPU kullanımı 1.5 core ile (yani --cpu-period="100000" ve--cpu-quota="150000"), kullanılacak CPU'lar ise 0 ve 2 numaralı olanlar olarak kısıtlanmıştır.
--memoryseçeneği ile container'ın bellek kullanımının ne kadar kısıtlandığını belirleyebilirsiniz. Örnek olarak:
docker run --memory 512m container_nameBu komut container'ın bellek kullanımını 512MB değerine kısıtlar.
--memory-swapseçeneği ile container'ın bellek ve swap kullanımının toplamının ne kadar kısıtlandığını belirleyebilirsiniz. Örnek olarak:
docker run --memory 512m --memory-swap 1g container_nameBu komut container'ın bellek kullanımını 512MB ve swap kullanımını 1GB değerine kısıtlar. Böylece container 512MB dan daha fazla bellek istediği zaman, swap alanından 1GB'a kadar daha bellek tahsis edebilir.
--memory-reservationseçeneği ile container'ın bellek kullanımının ne kadar kesin olarak rezerve edildiğini belirleyebilirsiniz. Örnek olarak:
docker run --memory-reservation 256m container_nameBu komut container'ın bellek kullanımının 256MB kadarını rezerve eder. Bu seçenek ile container'ın bellek taleplerini gerçekleştirmek için en az belirli bir bellek miktarını kullanması garanti edilir. Yani container için bellek alanı önceden ayırılır ve container'ın bellek kullanımı sınırlandırılmaz.
Bu seçenekler ile container'ların CPU ve bellek kullanımını daha iyi yönetebilirsiniz ve sisteminizin performansını arttırabilirsiniz.
Docker derslerine sıradaki yazı ile devam edebilirsiniz:
