Neyi, nasıl ölçtük
Üç uygulama da aynı Mac'te çalıştırıldı: 36 GiB belleğe ve macOS 27.2'ye sahip bir Apple M5 Max. Her biri 8 CPU ve 12 GiB olarak ayarlandı, kendi komutuyla yeniden başlatıldı ve tek başına çalıştırıldı; diğerleri kapatıldı ve süreçlerinin sona erdiği doğrulandı. Boşta değerleri, 45 saniyelik beklemenin ardından 60 saniyelik bir aralıktan geliyor ve ürünün tüm süreçlerini kapsıyor: uygulama, yardımcıları ve Linux sistemiyle birlikte motor. Konteyner değerleri, ısınma turundan sonraki beş örneğin medyanı; %10'u aşmayan farklar eşit kabul ediliyor.
Oxcart 0.1.2, birlikte gelen docker 29.9 istemcisiyle 2026-10-10 tarihinde ölçüldü. OrbStack 2.2.3 ve Docker Desktop 4.94.0 aynı gün daha erken saatlerde, aynı Mac ve ölçüm düzeneğinde docker 29.4 ile ölçüldü. Her ürün kendi Linux çekirdeğini çalıştırıyor. Bu bir araştırma değil, tek makinede ürün başına tek ölçüm turu; yöntem hepsi için aynı.
Konteyner yokken boşta bellek kullanımı
| Uygulama | Boşta bellek |
|---|---|
| Oxcart 0.1.2 | 776 MiB |
| OrbStack 2.2.3 | 792 MiB |
| Docker Desktop 4.94.0 | 1.745 MiB |
Bir konteyner uygulamasının yalnızca hazır beklemek için tükettiği bellek bu: çalışma oturumları arasında, toplantılarda veya tüm gün açık kaldığı bir dizüstünde. Oxcart ve OrbStack burada aynı düzeyde; Docker Desktop iki katından fazlasını tutuyor.
Konteynerlerinizi izlemenin maliyeti
Panolar, terminal izleme araçları ve kodlama ajanları konteyner istatistiklerini sürekli sorgular; bu nedenle bunları okumanın maliyeti göründüğünden daha önemlidir.
| Ölçüm | Oxcart | OrbStack | Docker Desktop |
|---|---|---|---|
Sürekli akış sağlayan bir docker stats istemcisinin CPU kullanımı | %1,29 | %3,81 | %5,45 |
docker stats --no-stream | 1.038 ms | 2.050 ms | 2.054 ms |
CPU, tek çekirdeğin yüzdesi olarak verilmiştir. Oxcart 0.1.2, birlikte gelen docker 29.9 istemcisiyle 2026-10-10 tarihinde; OrbStack 2.2.3 ve Docker Desktop 4.94.0 aynı gün daha erken, aynı Mac ve ölçüm düzeneğinde docker 29.4 ile ölçülmüştür.
Oxcart'ın kendi menü çubuğu öğesi, 20 konteyner çalışırken bir çekirdeğin %0,0004'ünü tüketiyor ve saniyede 0,033 uyanmaya neden oluyor. Bu değer yalnızca uygulamaya ait, motoru kapsamıyor.
Yük altında: aynı düzeyde
Konteynerler gerçek iş yapmaya başladığında uygulamaların değerleri yakınlaşıyor, çünkü kaynakların çoğunu işin kendisi tüketiyor. Aynı ölçüm turundan iki satır:
| Ölçüm | Oxcart | OrbStack | Docker Desktop |
|---|---|---|---|
| Konteyner içindeki CPU-saniye başına Mac CPU'su | 1,10× | 1,11× | 1,09× |
| 256 MiB belleğe erişen konteyner başına Mac belleği | 235 MiB | 266 MiB | 236 MiB |
Pratikte, CPU ile sınırlı bir derleme veya test her üç uygulamada da yaklaşık aynı Mac CPU'sunu tüketir; 256 MiB kullanan bir konteyner de Mac'inizde yaklaşık bu kadar bellek kullanır. Fark, işin çevresindeki işlemlerdedir: her docker run, stop ve temizleme işleminin süresi. Oxcart burada öne çıkıyor (Docker Desktop karşılaştırması, OrbStack karşılaştırması).
İşiniz bitince bellek macOS'e döner
Oxcart 0.1.3'ten beri, son konteyneriniz durduktan yaklaşık 30 s sonra Oxcart Linux tarafını yeniden başlatır ve bellek macOS'e döner: son konteyner durduktan 32 s sonra, 3.319 MiB'den 570 MiB'ye (ikinci tur: 3.352'den 579 MiB'ye). Bu yalnızca hiçbir konteyner çalışmıyorken olur. Arka planda gerçekleşir: yeniden başlatma sırasında gelen Docker komutu yalnızca işlemin bitmesini bekler.
Oxcart 0.1.3'te ölçüldü.
Bir konteyner uygulamasının belleğini kendi Mac'inizde ölçün
- Boşta bir Mac ile başlayın. Diğer konteyner uygulamalarını kapatın, konteynerlerinizi durdurun ve başlangıç işlemlerinin bitmesi için uygulama açıldıktan sonra bir dakika bekleyin.
- Uygulamanın tüm süreçlerini bulun. Etkinlik Monitörü'nde Bellek sekmesini açıp uygulamanın adını arayın; Linux tarafını çalıştıran süreç genellikle en büyüğüdür. Terminalde
ps -axo pid,rss,comm | grep -i <app>bunları listeler. - macOS'in hesaba kattığı belleği okuyun. Etkinlik Monitörü'ndeki Bellek sütununu veya her süreç için
footprint <pid>komutunu kullanıp değerleri toplayın. Tek başına yerleşik boyut (RSS), paylaşılan ve sıkıştırılmış belleği fazla veya eksik sayabilir. - İş yükünüz çalışırken ölçün. Her zamanki Compose yığınınızı başlatın, birkaç dakika kullanın ve aynı değerleri tekrar okuyun.
docker stats --no-stream, Linux tarafında her konteynerin ne kullandığını gösterir. - Durdurduktan sonra ölçün. Her şeyi durdurun ve bir dakika sonra değerleri bir kez daha okuyun. Bu, uygulamanın çalışma oturumları arasında boşta tuttuğu bellektir.
Önemli ayarlar
- Uygulama sınırları. Her uygulama, Linux tarafının kullanabileceği CPU ve belleği sınırlar. Oxcart'ta: Settings › Resources veya
oxcart config set cpus=6veoxcart config get; değerler bir sonraki başlangıçta uygulanır. Yığınınızın ihtiyacının çok üzerinde bir sınır hiçbir kazanç sağlamaz. - Konteyner başına sınırlar.
docker runüzerindeki--memory,--cpusve--pids-limitya da Compose'dakimem_limit,cpusvepids_limit, kontrolden çıkan tek bir servisin tüm kaynakları tüketmesini önler. - Kullanmadıklarınızı durdurun. Geri döneceğiniz yığınlar için
docker compose stop, diğerleri içindocker compose down. Oxcart'ta son konteyneri durdurmak, belleğin macOS'e geri dönmesini de sağlar. - Düşük maliyetle izleyin. Betiklerde
docker stats --no-streamkullanmayı tercih edin ve kodlama ajanlarına ham istatistikler yerine bir özet aracı verin (Yapay zekâ kodlama ajanları için Docker).
Sorular
Docker bir Mac'te ne kadar bellek kullanır?
Uygulamaya ve konteynerlerinizin yaptığı işe bağlıdır. Çalışan konteyner yokken, 12 GiB olarak ayarlanmış tek bir Apple silicon Mac'te her ürünün tüm süreçlerini sayarak Oxcart için 776 MiB, OrbStack için 792 MiB ve Docker Desktop için 1.745 MiB ölçtük. Konteynerler çalışmaya başlayınca bellek kullanımı iş yüklerine bağlı olur.
Docker Desktop neden bu kadar çok bellek kullanıyor?
Mac'teki her konteyner uygulaması bir Linux sistemi çalıştırır ve iş yüklerinin eriştiği bellek Mac'te tek bir büyük süreç olarak görünür. Ölçümümüzde Docker Desktop, konteyner yokken 1.745 MiB ile üç uygulama arasında en yüksek boşta kullanımına da sahipti. Ayarlarından bellek sınırını düşürün, ihtiyacınız olmayan konteynerleri durdurun ve aynı Mac'te boşta 776 MiB kullanan Oxcart gibi bir alternatifi karşılaştırın.
Oxcart belleği macOS'e geri verir mi?
Evet, hiçbir şey çalışmıyorken. Oxcart 0.1.3'ten beri, son konteyneriniz durduktan yaklaşık 30 s sonra Oxcart Linux tarafını yeniden başlatır ve bellek macOS'e döner: yayın öncesi bir sürümdeki ölçümde, son konteyner durduktan 32 s sonra 3.319 MiB'den 570 MiB'ye indi. Bu yalnızca hiçbir konteyner çalışmıyorken olur.
Bir konteynerin bellek ve CPU kullanımını nasıl sınırlarım?
Konteyner başına: docker run --memory 512m --cpus 1.5 … veya bir Compose servisinde mem_limit ve cpus. Oxcart bellek, CPU ve süreç sayısı güncellemelerini docker update ile uygular; konteyner yeniden başlatmayla tekrar oluşturulduğunda da bunlar korunur.
Oxcart'ın kaç CPU ve ne kadar bellek kullanacağını nasıl ayarlarım?
Settings › Resources üzerinden veya terminalde oxcart config set cpus=4 ile ayarlayın; geçerli değerleri ve Mac'inizin sınırlarını görmek için oxcart config get kullanın. Yeni değerler bir sonraki başlangıçta uygulanır.
docker stats Mac'imi yavaşlatır mı?
Canlı bir docker stats akışı her uygulamada CPU tüketir. Oxcart için bir çekirdeğin %1,3'ünü, OrbStack için %3,8'ini ve Docker Desktop için %5,5'ini ölçtük; en düşük değer Oxcart'taydı. 20 konteyner için tek seferlik docker stats --no-stream, Oxcart'ta 1,0 s sürdü; diğer ikisinin yaklaşık yarısı.
Kaynaklar ve yöntem
- Oxcart 0.1.2, OrbStack 2.2.3 ve Docker Desktop 4.94.0; 2026-10-10 tarihinde aynı Mac'te (Apple M5 Max, 36 GiB, macOS 27.2), her biri 8 CPU ve 12 GiB ile, tek seferde tek ürün çalıştırılarak ölçüldü.
- Son konteyner durduktan sonra belleğin geri verilmesi: Oxcart 0.1.3.
- Menü çubuğu maliyeti: Oxcart'ta 2026-10-09 tarihinde ölçüldü.