Skip to main content
CID222 Docs

Kaynak boyutlandırma

Beyan edilen compose sınırlarına karşı kapsayıcı başına ölçülmüş bellek, profil başına toplamlar, üç GPU yolu ve kendi toplamınızı hesaplama tarifi.

  • Sürüm: 0.4
  • Rol: admin_user
  • Tür: başvuru

Servis başına portlar ve profiller, compose dosyalarından üretilen servisler, portlar ve profiller sayfasındadır. Bu sayfa onların üzerindeki boyutlandırma hesabıdır: ölçüldüğünde her kapsayıcının gerçekte ne kullandığı, bunun profil başına ne tuttuğu ve kendi kurulumunuz için bir rakamı nasıl hesaplayacağınız. Sağlamanız gereken ana makine için gereksinimler ve boyutlandırma sayfasından başlayın; eklenen bir bileşenin maliyeti için isteğe bağlı servisler ve her birinin maliyeti sayfasına bakın.

Rakamlar nasıl okunur

Kapsayıcı belleğinin üç okuması vardır ve aralarında gigabaytlarca fark bulunur.

OkumaNedirNe için kullanılır
Anonim bellekRAM ya da swap ile karşılanması gereken sayfalarBoyutlandırma. Bellek satın alırken bakılacak rakam budur.
docker stats çıktısıAnonim bellek artı etkin sayfa önbelleğiTek başına hiçbir şey. Olduğundan fazla bildirir; en kötüsü bir model yüklendikten hemen sonradır.
TepeYukarıdakinin, kapsayıcı yaşadığı sürece hiç azalmayan en yüksek değeriYalnızca ipucu olarak. Sayfa önbelleği sınırına dayanan bir kapsayıcıda sınırda doyar ve hiçbir şey söylemez.

Tüm yığın, 21 kapsayıcı, boşta: docker stats çıktısındaki 15.00 GiB ve hesaba yazılan 18.00 GiB karşısında 12.53 GiB anonim bellek. Aradaki 2.5 GiB etkin sayfa önbelleğidir; büyük bölümü tespit motorlarının başlangıçta okuduğu model dosyalarıdır ve çekirdek, baskı altında bunu süreç fark etmeden düşürür.

Kapsayıcı başına

2026-09-08 tarihinde geliştirme sunucusunda ölçüldü: Ubuntu 24.04, 10 vCPU, 32 GB, GPU yok, cgroup v2, varsayılan compose profili artı llm-analyst ve tools profilleri. Boşta, yığının iki saattir trafiksiz ayakta olması demektir. Beyan edilen, compose bellek sınırıdır; tire, servisin hiç sınır beyan etmediğini gösterir.

KapsayıcıBeyan edilenAnonim, boştadocker statsTepe
attack-guard4 GB2.72 GiB2.803 GiB4.00 GiB
hap-guard-v26 GB2.70 GiB2.769 GiB4.50 GiB
ml-detector6 GB2.45 GiB2.504 GiB3.94 GiB
doc-classifier2 GB920 MiB1.632 GiB1.75 GiB
risk-analyst3 GB882 MiB1.458 GiB2.01 GiB
prompt-compressor3 GB633 MiB796.8 MiB1.02 GiB
mcp-server1 GB594 MiB669.7 MiB892 MiB
language-detector2 GB480 MiB519.8 MiB537 MiB
hallucination-guard4 GB474 MiB654.1 MiB828 MiB
pgadmin—241 MiB312.4 MiB369 MiB
nestjs-core—110 MiB207.5 MiB320 MiB
deepteam2 GB103 MiB136.9 MiB180 MiB
ocr-service4 GB101 MiB193.3 MiB241 MiB
document-parser2 GB77 MiB124.7 MiB157 MiB
report-renderer512 MB62 MiB91.0 MiB115 MiB
redactor2 GB59 MiB95.9 MiB118 MiB
postgres—12 MiB61.4 MiB104 MiB
reconfigure-agent—9 MiB20.1 MiB31 MiB
frontend—8 MiB19.2 MiB30 MiB
cid-proxy128 MB4 MiB11.3 MiB18 MiB
redis—4 MiB14.3 MiB61 MiB

Üç servis — jailbreak, zararlı içerik ve PII tespit motorları — 12.53 GiB'lık toplamın 7.87 GiB'ıdır: boştaki yığının %63'ü üç ONNX tespit motorudur. Her uvicorn işçisi modelin kendi tam kopyasını yükler; dolayısıyla UVICORN_WORKERS bu tabloyu diğer her ayardan daha fazla oynatır. Aynı yığın, servis başına tek işçiyle 7.3 GiB, iki ila dört işçiyle 12.5 GiB boşta durdu.

Bu tabloda iki kapsayıcı eksiktir; çünkü onları ne kısıtlayan ne de ölçen bir şey var: hiç sınır beyan etmeyen servisler ters vekil, pano, ağ geçidi, veritabanı, önbellek ve ana makine yeniden yapılandırma ajanıdır — burada hepsi küçüktür, ama bilinçli bir tercihle değil tasarım gereği sınırsızdır.

Profil başına

ProfilServislerBeyan edilen bellekÖlçülen, boşta
Varsayılan — profilsiz1937.63 GB10.85 GiB anonim
llm-analyst2+4 GB+1.5 GiB anonim
routing1+1 GBÖlçülmedi
inline-proxy1Beyan edilmemişÖlçülmedi
userid-agent1Beyan edilmemişÖlçülmedi
llm1Beyan edilmemişKendine ait bir GPU ana makinesi
tools2Beyan edilmemişVeritabanı konsolu için 241 MiB
ldap-test, mailtest, llm-build3Beyan edilmemişYalnızca geliştirme ve derleme ana makineleri

Varsayılan profildeki on dokuz servisin altısı hiç sınır beyan etmez; dolayısıyla 37.63 GB bir tavan değil tabandır ve belleği tükenen bir ana makine yalnızca compose dosyasına bakılarak tanılanamaz.

Yükün eklediği ve geri vermediği

OlayEklenen anonim bellek
PII tespit motoru, sürekli trafik — ONNX alanı büyür ve asla geri dönmez+1.2 GiB
OCR, ilk dildeki ilk görüntü+1.7 GiB
OCR, ikinci dildeki ilk görüntü+0.8 GiB
llm-analyst profilinin başlatılması+1.5 GiB

Uçtan uca ölçüldü: aynı 21 kapsayıcı sabahki 12.53 GiB'dan bir OCR matrisi ve üç tespit motoru patlamasının ardından, yeniden boşta dururken 15.25 GiB'a çıktı. 2.7 GiB'ın hiçbiri geri gelmedi. Boşta bir okumadan boyutlandırmak, yalnızca PII tespit motorunu bir gigabayttan fazla eksik sayar.

Görüntü yolunda bağlayıcı kısıt bellek değil CPU'dur. Tek bir A4 sayfası 190 CPU saniyesine mal olur ve 8.4 çekirdek genişliğinde çalışır; dolayısıyla 10 vCPU'lu bir makine dakikada üç sayfanın altında iş yapar ve bu sırada başka hiçbir şey yapmaz. Eşzamanlılık durumu kötüleştirir: aynı anda dört sayfa, her biri 190 yerine 238 CPU saniyesine mal olur.

GPU neyi değiştirir

GPU önerilir, asla zorunlu değildir ve yalnızca görüntü yolu ile kendi barındırdığınız bir model için geçerlidir. Üç GPU yolu vardır ve birbirlerinden bağımsızdırlar.

YolNedirNotlar
Yığın içi OCR katmanıVarsayılan OCR servisini CUDA üzerinde çalışacak biçimde yeniden derlerGörüntü başına CPU derlemesinden 3 ila 8 kat hızlı ölçüldü. Yalnızca CPU'da kalan bir cihazda asla kullanılmaz.
Ayrı bir OCR ana makinesiKendine ait bir GPU ana makinesinde aynı imaj ve aynı APITaşıyıcı jetonuyla OCR_GPU_SERVICE_URL üzerinden erişilir ve hata durumunda yığın içi CPU servisine düşer.
Analist model motoruLLM Risk Analisti'nin üzerinde akıl yürüttüğü yerel modelEn az 20 GB VRAM, önerilen 48 GB. Desteklenen topolojide kendine ait bir ana makine.

Warning

Eski CID222 belgeleri, bir gpu compose profilinin arkasında transformer tabanlı ikinci bir GPU OCR motorundan söz eder. İkisi de kaldırıldı ve bu sürümdeki hiçbir compose dosyası bir gpu profili beyan etmez. CUDA üzerinde PaddleOCR, tek GPU OCR yoludur.

Yığında başka hiçbir şey GPU kullanmaz. PII, zararlı içerik, jailbreak ve enjeksiyon tespiti CPU üzerinde ONNX ile çalışır, halüsinasyon tespiti yalnızca CPU derlemesidir ve kart eklemek gecikmelerini değiştirmez.

Kendi toplamınızı nasıl hesaplarsınız

Ölçülmüş tabandan başlayın

Compose varsayılanlarındaki varsayılan profil için 10.85 GiB alın; her tespit motoru için UVICORN_WORKERS değerini 1'e sabitlediyseniz yaklaşık 6.5 GiB.

Bu boşta bir rakamdır ve hesaptaki, pay olmayan tek satırdır.

Başlattığınız profilleri ekleyin

llm-analyst için 1.5 GiB ekleyin. inline-proxy, userid-agent ve routing için ölçülmüş bir rakam yoktur — sınırı olanlarda beyan edilen sınırı pay olarak ayırın, olmayanları kendi trafiğinizde ölçün.

Artık servis kümeniz için durağan bir toplamınız var.

Yük payını ekleyin

PII tespit motorunun alan büyümesi için 1.2 GiB, ilk OCR dili için 1.7 GiB ve hizmet verdiğiniz her ek dil için 0.8 GiB ekleyin.

Bu adımdaki hiçbir şey, trafik durduğunda geri verilmez.

Günün kaymasını ekleyin

Üzerine bir %20 daha ekleyin. Ölçülen yığın, karma yüklü bir iş günü boyunca 12.53 GiB'dan 15.25 GiB'a büyüdü; bu %22'dir.

Sonuç, ana makinenin karşılaması gereken anonim bellektir.

Sayfa önbelleğine yer bırakın ve yukarı yuvarlayın

Ölçülen yığın ayrıca yaklaşık 5 GiB sayfa önbelleği tutuyordu. Geri kazanılabilir olduğu için toplamın parçası değildir; ancak buna hiç payı olmayan bir ana makine sürekli geri kazanım yapar.

Bir sonraki hipervizör bellek adımına yukarı yuvarlayın ve hesap ne derse desin hiçbir zaman 32 GB'ın altına inmeyin.

Bir servisi kendiniz ölçmek için docker stats yerine kendi cgroup'unu okuyun:

docker compose exec ml-detector \
  awk '/^(anon|file|active_file) /' /sys/fs/cgroup/memory.stat

Gerçekçi bir patlamadan önce ve sonra okuyun. Aradaki fark, o trafiğin maliyetidir ve ONNX tespit motorlarında önemli olan başlangıç değeri değil, o farktır.

Notlar

  • Disk trafik tepeleriyle değil saklamayla büyür. Biriken şey tespitler, olay günlükleri ve uyumluluk kanıtıdır; kapsayıcı imajları ve model önbellekleri bir kez ödenen sabit bir maliyettir. Dağıtılan saklama pencereleri ve süpürmenin varsayılan olarak silmediği gerçeği gereksinimler ve boyutlandırma sayfasındadır.
  • Swap, kısa süreli model sıçramaları için bir paydır; belleğin yerini tutmaz. Doğru boyutlandırılmış bir ana makinede 8 GB yeterlidir ve 32 GB tabanının altındaki bir ana makineyi hiçbir miktar kurtarmaz.
  • Dağıtılan cihaz imajı desteklenen alt sınırda önceden boyutlandırılmıştır — 32768 MB ve 8 vCPU — böylece işletmecinin hesap yapmasına gerek kalmadan açılır. Üzerine yük bindirmeden önce yükseltin.
  • Dolaşımda iki eski rakam var ve ikisi de üretilmiş değil. Depo kılavuzu ve OVA derleme notları, sınırsız 11 servis genelinde yaklaşık 42 GB beyan edilmiş sınırdan ve yaklaşık 30 GiB ölçümden söz eder. Üretilen rakam, 6'sı sınırsız olan 19 servis genelinde 37.63 GB'dır; 30 GiB ise kapsayıcı başına bir ölçümden değil, 62 GiB bir makinede tüm servislerin payla birlikte çalıştığını kaydeden 2026-07 tarihli bir hazırlık provasından gelir. Bu sayfadaki üretilmiş ve ölçülmüş rakamları kullanın.

İlgili

Son güncelleme

Bu sayfada