Başarım ve kaynak sorunları
Bellek yüzünden sonlandırılan kapsayıcılar, yeniden başlayan servisler, yavaş ya da eksik tespitler, başarısız PDF dışa aktarımları ve GPU ile OCR yolları.
- Sürüm: 0.4
- Rol: admin_user
- Tür: sorun giderme
Bu cihazdaki neredeyse her başarım belirtisi üç şeyden biridir: yeterli bellek olmaması, bir servisin kapalı olması ya da ayakta olduğu hâlde bir model veya bağımlılık eksik olduğu için işini yapamayan bir servis. Tanılama anlık görüntüsü bunları tek okumada birbirinden ayırır.
Note
Kritik bir bulgu genellikle birkaç uyarıyı birden açıklar. Belleği tükenmiş bir ana makine bir kök neden ve dört belirti üretir; bu yüzden en gürültülü bulguyu değil, önem derecesi en yüksek olanı önce ele alın.
Belirtinizi bulun
| Gördüğünüz | Çalışma kitabı |
|---|---|
| Bir kapsayıcı 137 koduyla çıktı | Bir kapsayıcı bellek yüzünden sonlandırıldı |
| Bir kapsayıcı sürekli yeniden başlıyor | Bir kapsayıcı sürekli yeniden başlıyor |
| Bir tespit kategorisi hiçbir şey döndürmüyor | Bir servis sağlıksız |
| Tespit ya da cihazın tamamı yavaş | Makine yetersiz boyutlandırılmış |
| Bir dosya sistemi neredeyse dolu | Bir dosya sistemi neredeyse dolu |
| Hava boşluklu bir cihazda OCR hiçbir şey döndürmüyor | OCR'de model yok |
| Her PDF dışa aktarımı başarısız oluyor | PDF oluşturulmuyor |
| İncelemeler hiç tamamlanmıyor ya da analiste erişilemiyor | Analist kullanılamıyor |
| Bir dosya reddediliyor ya da analizi başarısız oluyor | Bir dosya reddediliyor ya da analizi başarısız oluyor |
| Listeler boş ve hiçbir hata çıkmıyor | Veritabanına ya da Redis'e erişilemiyor |
| Panodaki tek bir eylem başarısız oluyor ve nedeni söylenmiyor | Bir pano eylemi başarısız oluyor |
Bellek ve kapasite
Bir kapsayıcı bellek yüzünden sonlandırıldı
137 çıkış kodu servisin değil, çekirdeğin işidir. Yeniden başlatmak servisi geri getirir ama neden onun seçildiği konusunda hiçbir şeyi değiştirmez.
Bir kapsayıcı bellek tükendiği için sonlandırıldı
Şunları görebilirsiniz: was killed for running out of memory (exit 137) (bellek tükendiği için sonlandırıldı, çıkış kodu 137) · exit code 137 (137 çıkış kodu) · an OOM kill (exit 137) means this machine needs more RAM (bellek tükenmesi nedeniyle bir sonlandırma, bu makinenin daha fazla RAM'e ihtiyacı olduğu anlamına gelir) · tespit servisi yük altında ölüyor
Başlamadan önce
Denetimler
- 1
Ana makinenin toplam belleğini lisanslı paketin alt sınırıyla karşılaştırın
tanılama · host.memTotalMb = 32768
- 2
Ana makinede şu anda ne kadar bellek kaldığını okuyun
tanılama · host.memFreeMb = 2048
- 3
Sonlandırılan kapsayıcının beyan ettiği sınırı, kullandığı miktarla karşılaştırın
beklenen · Kullanım sınırın epey altında. Sınıra dayanmış bir kullanım, kısıtın ana makine değil sınırın kendisi olduğu anlamına gelir.
- 4
Bu makinede çalışan her servisin gerçekten kullanımda olup olmadığını denetleyin
beklenen · Çalışan her şey bu dağıtımın ihtiyaç duyduğu bir şey.
Nedenler ve düzeltmeler
| Ne zaman ulaşılır | Neden | Açıklama, düzeltme ve doğrulama |
|---|---|---|
| denetim 1 başarısız olduğunda | host-undersized (kritik) | Tam yığın kullanımda yaklaşık 30 GiB olarak ölçüldü ve varsayılan profil, birkaç servis hiç beyan etmezken kabaca 38 GB kapsayıcı sınırı beyan eder. 32 GB'ın altında çekirdek, belleği en büyük süreci sonlandırarak geri alır; bu da her zaman model yükleyen bir tespit servisidir. Ölen servis kendi başına bir arıza değil, makinenin belirtisidir. Düzeltme: Makinenin belleğini en az 32 GB'a, belge ve görüntü işlenen yerlerde 64 GB'a çıkarın ve yeniden başlatın. Bkz. Makinenin RAM'i lisanslı paketin gerektirdiğinden az ve Gereksinimler ve boyutlandırma. Doğrulama: tanılama · host.memTotalMb = 32768 |
| denetim 2 başarısız olduğunda | no-headroom (kritik) | Makine anma alt sınırını karşılıyor ve şu anda hiç payı kalmamış; dolayısıyla bir sonraki model yüklemesi ya da belge ayrıştırması bir sonlandırma tetikler. Bir sonraki bellek tükenmesini önceden söyleyen rakam toplam bellek değil, kullanılabilir bellektir. Düzeltme: Eşzamanlı çalışanı azaltın ya da bellek ekleyin. Sonlandırılan kapsayıcıyı yeniden başlatmak servisi geri getirir, sonucu değiştirmez — bir sonraki tepede yine bir şey sonlandırılır. Doğrulama: tanılama · host.memFreeMb = 2048 |
| denetim 3 başarısız olduğunda | limit-too-low (uyarı) | Ana makinenin belleği yerinde ve kapsayıcı kendi beyan ettiği sınıra dayandı; çekirdek onu makine iyi durumdayken sonlandırdı. Bir servisin sınırını yükseltmenin dürüst gerekçesi budur — tek gerekçesi de budur, çünkü payı olmayan bir makinede sınırı yükseltmek sonlandırmayı yalnızca başka bir kapsayıcıya taşır. Düzeltme: O servisin bellek sınırını dağıtımın compose yapılandırmasında yükseltin ve kapsayıcıyı yeniden oluşturun. Uygulamadan önce ana makinede yeni sınır için pay olduğunu doğrulayın. Doğrulama: beklenen · oomKilled false kalıyor ve kullanım yeni sınırın altına oturuyor. |
| denetim 4 başarısız olduğunda | unused-services-running (bilgi) | Birkaç servis isteğe bağlıdır — OCR, belge ayrıştırma, kırmızı takım, yerel analist ve MCP sunucusu — ve her biri, dağıtım kullansın kullanmasın bellek tutar. Yetersiz boyutlandırılmış bir makinede kullanılmayanı kapatmak donanım değişikliğinden hızlıdır ve kullanımda olan hiçbir şeye mal olmaz. Düzeltme: Bu dağıtımın kullanmadığı servisleri durdurun ve hiçbir şeyin onlara bağımlı olmadığını doğrulayın. Neyi kapattığınızı belgeleyin: aksi hâlde sonraki bir özellik talebi hata olarak tanılanır. Doğrulama: tanılama · host.memFreeMb = 2048 |
Bir kapsayıcı sürekli yeniden başlıyor
Yeniden başlatmayı bir kez daha denemeden önce, bellek yetersizliği nedeniyle sonlandırmayı servisin reddettiği bir yapılandırmadan ayırın.
Bir kapsayıcı sürekli yeniden başlıyor
Şunları görebilirsiniz: has restarted 12 times (12 kez yeniden başladı — bir çökme döngüsünde) · container restarting (kapsayıcı yeniden başlıyor) · bir servis geri geliyor ve yeniden ölüyor · pano bir dakika çalışıyor, sonra hata veriyor
Başlamadan önce
Denetimler
- 1
Son sonlandırmanın bir çökme mi, yoksa bellek yetersizliği nedeniyle yapılmış bir sonlandırma mı olduğunu denetleyin
beklenen · oomKilled değeri false. True olduğunda bu bir çökme değil, boyutlandırma sorunudur.
- 2
Ana makinede ne kadar bellek kaldığını okuyun
tanılama · host.memFreeMb = 1024
- 3
Şemanın güncel olduğunu doğrulayın; çünkü açılışta başarısız olan bir geçiş ağ geçidini sonsuza dek yeniden başlatır
tanılama · datastores.postgres.migrationsPending
- 4
Kapsayıcının açılışta kendi yapılandırmasını reddedip reddetmediğini denetleyin
beklenen · Servis bir ayarı reddettiğini değil, başladığını ve dinlediğini bildiriyor.
Nedenler ve düzeltmeler
| Ne zaman ulaşılır | Neden | Açıklama, düzeltme ve doğrulama |
|---|---|---|
| denetim 1 başarısız olduğunda | repeated-oom (kritik) | Kapsayıcı çökmüyor: onu çekirdek sonlandırıyor ve yeniden başlatma politikası aynı koşulların içine geri getiriyor. İmzası 137 çıkış kodudur. Süreç uyarısız durdurulduğu için servisin kendi günlüğünde bunu açıklayan hiçbir şey bulunmaz. Düzeltme: Bir kapsayıcı bellek tükendiği için sonlandırıldı yolunu izleyin. Doğrulama: beklenen · oomKilled değeri false ve yeniden başlatma sayısı artmayı bırakmış. |
| denetim 2 başarısız olduğunda | host-memory-exhausted (kritik) | Ana makinede neredeyse hiç bellek kalmamıştır; bu nedenle çekirdek, baskının tepe yaptığı anda en büyük olan kapsayıcıyı sonlandırır. Ölen servis kusurlu olan servis değildir; yeniden başlatmalar arasında yeniden başlayan kapsayıcının yer değiştiriyormuş gibi görünmesinin nedeni budur. Düzeltme: Makineye daha fazla RAM verin ya da üzerinde çalışanı azaltın. Tam yığın 32 GB ister; belge ve görüntü işleyen bir dağıtım için 64 GB. Bkz. Makinenin RAM'i lisanslı paketin gerektirdiğinden az. Doğrulama: tanılama · host.memFreeMb = 1024 |
| denetim 3 başarısız olduğunda | boot-migration-loop (kritik) | Ağ geçidi geçiş zincirini açılışta uygular. Hata fırlatan bir geçiş süreci de beraberinde götürür, kapsayıcı yeniden başlar, aynı geçiş yeniden çalışır ve başka hiçbir şey değişmeden yeniden başlatma sayısı artar. Düzeltme: Kapsayıcıyı durdurun, başarısız olan bir başlangıcı baştan sona okuyun ve o belirli hatayı giderin. Bkz. Bekleyen geçişler var. Doğrulama: tanılama · datastores.postgres.migrationsPending |
| denetim 4 başarısız olduğunda | configuration-refused (kritik) | Servis, kendisine verilen yapılandırmayla başlamayı reddeder ve bunu ilk günlük satırlarında söyler. Yer tutucu bir imzalama gizli anahtarı bilinçli olarak reddedilir; eksik bir model yolu, okunamayan bir sertifika ve yanlış bir veritabanı parolası da aynı biçimde davranır. Yeniden başlatma politikası sonra bu tek satırlık açık reddi kimsenin okumadığı bir döngüye çevirir. Düzeltme: Günlüğün adını verdiği şeyi düzeltin, ardından kapsayıcıyı bir kez başlatıp günlüğü yeniden okuyun; yeniden başlamaya bırakmayın. Ret imzalama gizli anahtarıyla ilgiliyse bkz. Token imzalama gizli anahtarı bir yer tutucu. Doğrulama: beklenen · Servis dinlediğini bildiriyor ve yeniden başlatma sayısı artmayı bırakıyor. Bu geçerli değilse: Destek paketini ve başarısız bir başlangıcın ilk yirmi satırını ekleyin. |
Makine yetersiz boyutlandırılmış
Varsayılan compose profili yaklaşık 42 GB kapsayıcı bellek sınırı bildirir, on bir servis hiç bildirmez ve on altı servislik tam yığının kullanımda yaklaşık 30 GiB olduğu ölçüldü. Paket alt sınırının altında çekirdek, tam da yük tepe yaptığı anda en büyük tespit servisini bellekten atar.
Makinenin RAM'i lisanslı paketin gerektirdiğinden az
Şunları görebilirsiniz: This box has 16.0 GB of RAM (bu makinede 16.0 GB RAM var; paket 32 GB istiyor) · ML services will be OOM-killed under load (ML servisleri yük altında bellek tükenmesi nedeniyle sonlandırılacak) · memory is 8192 MB (bellek 8192 MB; tasarlanan boyut 16 GB) · cihaz çalışıyor ama servisler sürekli tahliye ediliyor
Başlamadan önce
Denetimler
- 1
Toplam belleği, tam yığın için geçerli 32 GB asgarisiyle karşılaştırın
tanılama · host.memTotalMb = 32768
- 2
Belge ve görüntü işleyen bir dağıtım için 64 GB önerisiyle karşılaştırın
tanılama · host.memTotalMb = 65536
- 3
Yetersiz boyutlandırmanın şimdiden bir servise mal olup olmadığını denetleyin
beklenen · Hiçbir kapsayıcı bellek nedeniyle sonlandırılmamış.
Nedenler ve düzeltmeler
| Ne zaman ulaşılır | Neden | Açıklama, düzeltme ve doğrulama |
|---|---|---|
| denetim 1 başarısız olduğunda | below-minimum (kritik) | Tam yığın, kullanımda kabaca 30 GiB olarak ölçüldü. 32 GB'ın altında makine, tespit servislerini ve modellerini aynı anda tutamaz; baskı tepe yaptığında çekirdek en büyük olanı tahliye eder. Ürün bir gösterimde çalışır ve ilk gerçek yükte başarısız olur; bunu devreye aldıktan sonra değil önce düzeltmeye değmesinin nedeni budur. Düzeltme: Makinenin belleğini en az 32 GB'a yükseltin ve yeniden başlatın. Donanım değiştirilemiyorsa yalnızca çekirdek ağ geçidini ve zorunlu üç tespit servisini çalıştırın, geri kalanını bilinçli olarak kapatın — 16 GB'lık bir makine bir geliştirme yapılandırmasıdır, desteklenen bir üretim yapılandırması değil. Bkz. Gereksinimler ve boyutlandırma. Doğrulama: tanılama · host.memTotalMb = 32768 |
| denetim 2 başarısız olduğunda | below-recommendation (uyarı) | 32 GB yığını taşır; belgeler, görüntüler ve OCR ise üründeki en büyük geçici ayırmaları ekler ve 64 GB, bunların tespit motorlarıyla çekişmesini önleyen değerdir. Bu iş için GPU önerilir, asla zorunlu değildir. Düzeltme: Belge ve görüntü analizini bütün bir kuruluşa açmadan önce makineyi 64 GB'a yükseltin ya da yükseltebilene kadar bu özellikleri bir pilot grupla sınırlı tutun. Doğrulama: tanılama · host.memTotalMb = 65536 |
| denetim 3 başarısız olduğunda | already-losing-services (kritik) | Yetersiz boyutlandırma artık kuramsal değil: bir kapsayıcı sonlandırıldı ya da yeniden başlıyor. Bir tespit motoru kapalıyken çalışması gereken tespitler çalışmadı ve hiçbir şey bunları yeniden denemiyor. Düzeltme: Önce belleği yükseltin, ardından etkilenen pencereye ait tespitleri gözden geçirin — kapalı olan bir tespit motoru kapalı biçimde başarısız olmadı. Bkz. Bir kapsayıcı bellek tükendiği için sonlandırıldı. Doğrulama: beklenen · Hiçbir kapsayıcı bellek tükenmesi sonlandırması bildirmiyor ve yeniden başlatma sayıları kararlı. |
Bir dosya sistemi neredeyse dolu
Bir güncelleme her imajın ikinci bir kopyası için yer ister ve kök dosya sistemi dolduğunda cihazın durum dizini sessizce başarısız olur — bu yüzden dolu bir disk ilk olarak kalıcı olmayan ayarlar biçiminde görünür.
Bir dosya sistemi neredeyse dolu
Şunları görebilirsiniz: is 94% full (%94 dolu — 100 GB'ın 6 GB'ı boş) · bir güncelleme, her imajın ikinci bir kopyası için yer ister · no space left on device (aygıtta yer kalmadı) · güncelleme yarıda başarısız oluyor
Başlamadan önce
Denetimler
- 1
Kök dosya sistemindeki boş alanı okuyun
tanılama · host.disks[/].freeGb = 20
- 2
Docker'ın imajlarını ve birimlerini tuttuğu yerdeki boş alanı okuyun
tanılama · host.disks[/var/lib/docker].freeGb = 40
- 3
CID veritabanının ne kadar büyüdüğünü okuyun
tanılama · datastores.postgres.dbSizeMb = 50000
Nedenler ve düzeltmeler
| Ne zaman ulaşılır | Neden | Açıklama, düzeltme ve doğrulama |
|---|---|---|
| denetim 1 başarısız olduğunda | root-filling (kritik) | Cihaz; durumunu, günlüklerini ve güncelleme kuyruğunu kök dosya sistemine yazar. Burası dolduğunda, ürünün günlüğe yazıp devam eden bir işleyiciye sardığı yazmalar sessizce başarısız olur — kurulum durumu, lisans ve güncelleme istekleri kaydedilmiş gibi davranır, oysa kaydedilmemiştir. Düzeltme: Yer açın ya da diski büyütün, ardından durumunu yeniden okuması için ağ geçidi kapsayıcısını yeniden başlatın. Günlük kaydını ve sahanın topladığı günlük dosyalarını denetleyin: aylarca çalışmış bir cihazın dolmasının olağan nedeni, döndürülmeyen bir günlüktür. Doğrulama: tanılama · host.disks[/].freeGb = 20 |
| denetim 2 başarısız olduğunda | image-store-filling (kritik) | Bir güncelleme, geçiş yapmadan önce her imajın ikinci bir kopyasını indirir; dolayısıyla cihazın, güncellediği anda kabaca sürüm kümesi boyutunda boş alana ihtiyacı vardır. Bu yer olmadan güncelleme yarıda başarısız olup geri alınır ve bu, dolu bir disk gibi değil bozuk bir güncelleme gibi okunur. Düzeltme: Cihazın artık çalıştırmadığı imajları kaldırın, sonra güncelleyin. Yer açmak için birimleri silmeyin: veritabanını, tespitleri ve cihaz kimliğini onlar tutar. Doğrulama: tanılama · host.disks[/var/lib/docker].freeGb = 40 |
| denetim 3 başarısız olduğunda | retention-too-long (uyarı) | Tespit ve olay geçmişi kullanımla birlikte büyür ve varsayılanda hiçbir şey onu budamaz. Yoğun bir cihazda diskin tek başına en büyük tüketicisi veritabanı olur ve ilk belirti, şikâyet eden bir veritabanı değil sığmayan bir güncellemedir. Düzeltme: Tespitler ve olay günlükleri için saklama penceresini, uyumluluk yükümlülüğünüzün gerçekten gerektirdiği süreye indirin ve ardından boyutun düştüğünü doğrulayın. Kayıtların cihazın dışında tutulması gerekiyorsa önce dışa aktarın. Doğrulama: tanılama · datastores.postgres.dbSizeMb = 50000 |
Servisler
Bir servis sağlıksız
Erişilebilir ama sağlıksız olma durumu ilginç olanıdır ve hava boşluklu bir cihazda genellikle yüklenmemiş bir model anlamına gelir. Analist ve MCP sunucusu için önce bağımlılığı okuyun: ihtiyaç duydukları bir şey kapalıyken kendilerini sağlıksız bildirirler ve onları onarmaya çalışmak zaman kaybettirir.
Bir servise erişilemiyor ya da servis kendini sağlıksız bildiriyor
Şunları görebilirsiniz: hap-guard-v2 is unreachable: no response (hap-guard-v2 erişilemez durumda: yanıt yok) · ocr-service answered but is not healthy (ocr-service yanıt verdi ama sağlıklı değil) · ml-detector is unreachable (ml-detector erişilemez durumda) · tespit servislerinden biri kapalı, diğerleri sorunsuz
Başlamadan önce
Denetimler
- 1
Adı verilen servisin sağlık uç noktasına hiç yanıt verip vermediğini okuyun
beklenen · reachable true. False olduğunda arıza model düzeyinde değil, ağ ya da kapsayıcı düzeyindedir.
- 2
Adı verilen servisin kapsayıcı durumunu okuyun
beklenen · state running, yeniden başlatma sayısı düşük ve oomKilled false.
- 3
Yanıt verip kendini sağlıksız bildiren bir servis için döndürdüğü hatayı okuyun
beklenen · Hata, neyin başlatılamadığını adlandırıyor — bir model dosyası, bir aygıt, bir bağımlılık.
- 4
Analist ile MCP sunucusu için, onları suçlamadan önce neye bağımlı olduklarını denetleyin
beklenen · Bağımlılık sağlıklı, dolayısıyla sağlıksız kararı bu servisle ilgili.
Nedenler ve düzeltmeler
| Ne zaman ulaşılır | Neden | Açıklama, düzeltme ve doğrulama |
|---|---|---|
| denetim 1 başarısız olduğunda | not-reachable (kritik) | Sağlık uç noktası hiç yanıt vermedi; dolayısıyla sorun uygulamanın altındadır: kapsayıcı çalışmıyordur, hâlâ başlıyordur ya da ağ geçidi yanlış adrese bakıyordur. Hiç dağıtılmamış bir servis, erişilemez olarak bildirilmek yerine anlık görüntüde hiç bulunmaz; bu nedenle erişilemez bir satır, orada olması gereken bir şeyin yanıt vermediği anlamına gelir. Düzeltme: Kapsayıcıyı başlatın ve sağlık denetimini bekleyin. Çalışıyorsa, ağ geçidinin kullandığı adresin kapsayıcının dinlediği portla eşleştiğini denetleyin — birkaç servis, ana makinede yayımlanandan farklı bir portu dinler ve bu eşleşmeyi genellikle elle düzenlenmiş bir ortam dosyası kaydırır. Doğrulama: beklenen · reachable ve healthy ikisi de true. |
| denetim 2 başarısız olduğunda | container-not-running (kritik) | Kapsayıcı çıkmış, yeniden başlıyor ya da ölü durumdadır. Tespit servisleri modellerini başlangıçta belleğe yükler; bu nedenle bellek baskısı altındaki bir makine önce bunları sonlandırır ve arıza, yetersiz boyutlandırılmış bir cihaz yerine bozuk bir servis gibi görünür. Düzeltme: oomKilled true ise Bir kapsayıcı bellek tükendiği için sonlandırıldı, değilse Bir kapsayıcı sürekli yeniden başlıyor yolunu izleyin. Doğrulama: beklenen · state running ve yeniden başlatma sayısı sabit. |
| denetim 3 başarısız olduğunda | model-did-not-load (uyarı) | Servis yanıt verir ve kendini sağlıksız bildirir; bu neredeyse her zaman yüklenememiş bir model demektir. Ağdan yalıtılmış bir cihazda olağan neden, model dosyaları olmadan oluşturulmuş bir imajdır: servis başlar, dosyaların olmadığını görür ve çökmek yerine arızayı bildirir. Düzeltme: Sağlık uç noktasının döndürdüğü hatayı okuyun, ardından o servisin çalışma kitabını izleyin. OCR servisi için bkz. Ağdan yalıtılmış bir cihazda OCR servisinin modelleri yok. Model dosyaları olmayan bir servisi yeniden başlatmak hiçbir şeyi değiştirmez. Doğrulama: beklenen · healthy true ve hiçbir hata yok. Bu geçerli değilse: Her servisin günlük kuyruğunu taşıyan destek paketini ekleyin. |
| denetim 4 başarısız olduğunda | dependency-unhealthy (uyarı) | Bazı servisler bozuk oldukları için değil, ihtiyaç duydukları bir şey kapalı olduğu için kendilerini sağlıksız bildirir. Yanlış olanı onarmak bakım penceresini harcar; üstelik bağımlılığın kendi satırı bunu zaten söyler. Düzeltme: Önce bağımlılığı çözün — MCP sunucusu için veritabanı, analist için MCP sunucusu ve yerel model — sonra bu servise dokunmadan önce anlık görüntüyü yeniden okuyun. Doğrulama: beklenen · Bağımlılık sağlıklı ve bu servis onu izliyor. |
OCR'de model yok
Model denetimi gönderilmeden önce oluşturulmuş bir imaj motoru taşıyıp modellerini taşımayabilir: modelleri gerektiğinde indiren ağa bağlı bir makinede sağlıklı, hava boşluklu bir makinede ölümcül. Model dosyaları olmayan bir servisi yeniden başlatmak hiçbir şeyi değiştirmez.
Note
OCR imajı yeniden oluşturulurken CACHEBUST, compose dosyasının build args bölümünde bildirilmiş
kalmalıdır — compose, bildirilmemiş bir derleme argümanını sessizce yok sayar; böylece ön indirme
katmanı sonsuza dek önbellekten sunulur ve başarısız bir indirme kalıcıymış gibi görünür.
Ağdan yalıtılmış bir cihazda OCR servisinin modelleri yok
Şunları görebilirsiniz: HTTP 503: det/rec models not found (algılama ve tanıma modelleri bulunamadı) · ocr-service yanıt verdi ama sağlıklı değil · görüntü analizi cihazda hiç metin döndürmüyor, geliştirme makinesinde çalışıyor · makinenin interneti varken OCR çalışıyor, yokken başarısız oluyor
Başlamadan önce
Denetimler
- 1
OCR servisinin kendini sağlıklı bildirip bildirmediğini okuyun
tanılama · services[ocr-service].healthy = true
- 2
Sağlıksız bir OCR servisini başka bir nedenle üreten bellek tükenmesi sonlandırmasını eleyin
beklenen · oomKilled false.
Nedenler ve düzeltmeler
| Ne zaman ulaşılır | Neden | Açıklama, düzeltme ve doğrulama |
|---|---|---|
| denetim 1 başarısız olduğunda | models-absent-from-image (uyarı) | OCR modelleri imaja derleme sırasında gömülür. Güncel sürümlerde motorun kurulması yalnızca yön sınıflandırıcısını indirir — algılama ve tanıma ilk kullanımda gelir — bu nedenle kurulum adımında duran bir derleme, birkaç megabaytlık model taşıyan devasa bir imaj üretti. O imaj, geri kalanını gerektiğinde indiren ağa bağlı bir makinede sağlıklı, indiremeyen ağdan yalıtılmış bir makinede ölümcüldür. Derleme artık gerçek bir tahmini zorunlu kılıyor ve algılama ile tanıma yoksa imajı reddediyor; dolayısıyla bu durum yalnızca o denetimden önce derlenmiş imajları etkiler. Düzeltme: OCR imajını, model denetimini geçen bir derlemeden gelen imajla değiştirin; çalışan bir kapsayıcının içinde onarılacak bir şey yoktur, çünkü dosyalar oraya hiç girmemiştir. Yeniden derlerken önbelleği kıran bir derleme argümanı geçirin — aksi hâlde ön indirme katmanı önbellekten sunulur ve başarısız bir indirme kalıcıymış gibi görünür. Doğrulama: tanılama · services[ocr-service].healthy = true Bu geçerli değilse: Destek paketini ve anlık görüntünün ocr-service için bildirdiği imaj özetini ekleyin. |
| denetim 2 başarısız olduğunda | ocr-oom (kritik) | Üründeki en büyük geçici ayırmaları OCR servisi tutar; bu nedenle yetersiz boyutlandırılmış bir makinede çekirdeğin ilk sonlandırdığı şey odur. Sonuç — sağlıksız bir OCR servisi ve hiçbir şey döndürmeyen görüntü analizi — sonlandırma bayrağını okuyana kadar eksik bir modelden ayırt edilemez. Düzeltme: Bir kapsayıcı bellek tükendiği için sonlandırıldı yolunu izleyin. Belge ve görüntü işleyen bir dağıtım için öneri 64 GB'tır. Doğrulama: beklenen · oomKilled false ve servis kendini sağlıklı bildiriyor. |
GPU
GPU önerilir, asla zorunlu değildir ve yalnızca belge, OCR ve görsel ağırlıklı işler için
gerekir. İki GPU yolu vardır ve başka hiçbir şey GPU kullanmaz: CUDA compose katmanı ve gpu
profilinin Chandra tabanlı OCR servisi. GPU'su olmayan bir cihaz yanlış yapılandırılmış değildir
ve yokluğu için hiçbir bulgu üretilmez — yalnızca CPU'lu bir makinede OCR yavaşsa bu bir arıza
değil, belgelenmiş davranıştır.
Raporlar ve analiz
PDF oluşturulmuyor
Oluşturma işini, ağ geçidinin REPORT_RENDERER_URL üzerinden çağırdığı ayrı bir servis yapar. O
servis yoksa her PDF dışa aktarımı başarısız olurken sayfadaki diğer her şey çalışmaya devam eder
— tek bir düğmeye özgü görünmesinin nedeni budur.
PDF ya da rapor oluşturulmuyor
Şunları görebilirsiniz: Failed to render compliance scorecard PDF (uyumluluk karnesi PDF'i oluşturulamadı) · Failed to render detections PDF (tespitler PDF'i oluşturulamadı) · Failed to render executive summary PDF (yönetici özeti PDF'i oluşturulamadı) · Failed to render regulations PDF (mevzuat PDF'i oluşturulamadı)
Başlamadan önce
Denetimler
- 1
Rapor oluşturucunun yanıt verip vermediğini okuyun
tanılama · services[report-renderer].reachable = true
- 2
Oluşturucunun kendini sağlıklı bildirip bildirmediğini okuyun
tanılama · services[report-renderer].healthy = true
- 3
Yalnızca büyük dışa aktarımların başarısız olup olmadığını denetleyin
beklenen · Küçük dışa aktarım başarılı oluyor.
- 4
Uyumluluk dosyası için, oluşturulan raporun kayıtla mutabık kılındığını okuyun
beklenen · Oluşturucu, yerleştirdiği tanımlayıcıları bildirdi.
Nedenler ve düzeltmeler
| Ne zaman ulaşılır | Neden | Açıklama, düzeltme ve doğrulama |
|---|---|---|
| denetim 1 başarısız olduğunda | renderer-not-reachable (uyarı) | PDF oluşturma, ağ geçidinin REPORT_RENDERER_URL üzerinden çağırdığı ayrı bir servistir. O servis yoksa ya da erişilemezse her PDF dışa aktarımı başarısız olur, sayfadaki diğer her şey çalışmayı sürdürür — hata bu yüzden tek bir düğmeye özgüymüş gibi görünür.Düzeltme: Rapor oluşturucuyu başlatın ve ağ geçidindeki URL'nin servisin dinlediği portla eşleştiğini doğrulayın. Servis ayağa kalkmıyorsa Bir servise erişilemiyor ya da servis kendini sağlıksız bildiriyor yolunu izleyin. Doğrulama: tanılama · services[report-renderer].reachable = true |
| denetim 2 başarısız olduğunda | renderer-unhealthy (uyarı) | Yanıt veren ama kendini sağlıksız bildiren bir oluşturucu, genellikle ihtiyaç duyduğu bir şeyi başlatamamıştır — bir yazı tipi kümesini ya da başsız bir tarayıcıyı. Yanıt vermeyi de başarısız olmayı da sürdürür. Düzeltme: Oluşturucunun hata iletisini ve kapsayıcı günlüklerini okuyun, ardından servisi yeniden başlatın ya da yeniden derleyin. Doğrulama: tanılama · services[report-renderer].healthy = true |
| denetim 3 başarısız olduğunda | renderer-resource-limited (uyarı) | Oluşturma, belgenin tamamını bellekte tutar. Geniş bir tarih aralığı ya da geniş bir varlık kümesi, kapsayıcının bellek sınırını aşan bir belge üretir; istek temiz biçimde başarısız olmak yerine çekirdek oluşturucuyu sonlandırır. Düzeltme: Daha dar bir aralık dışa aktarın ya da oluşturucunun bellek sınırını yükseltin. Kapsayıcının bellek tükenmesi nedeniyle sonlandırılıp sonlandırılmadığını denetleyin — bkz. Bir kapsayıcı bellek tükendiği için sonlandırıldı. Doğrulama: beklenen · PDF iniyor. |
| denetim 4 başarısız olduğunda | dossier-unreconciled (uyarı) | Uyumluluk dosyası kanıttır. Ürün, dondurulmuş kayıtla karşılaştıramadığı bir belgeyi teslim etmez; çünkü denetlenmemiş bir rapor, hiç rapor olmamasından kötüdür. Dosyanın JSON'u bundan etkilenmez ve indirilebilir kalır. Düzeltme: Önce oluşturucuyu düzeltin, ardından dosyayı yeniden oluşturun. Bu arada JSON'u kullanın — aynı kayıttır. Doğrulama: beklenen · PDF üretiliyor ve indirmeye izin veriliyor. Bu geçerli değilse: Destek paketini, dışa aktardığınız raporu ve tarih aralığını, bir de oluşturucunun kapsayıcı günlüğünün son satırlarını ekleyin. |
Analist kullanılamıyor
Analist ve MCP sunucusu isteğe bağlıdır ve varsayılan olarak kapalıdır
(RISK_ANALYST_SERVICE_ENABLED). Etkinleştirildiklerinde makinedeki en büyük bileşendirler,
bellek baskısının ilk sonlandırdığı ve geri gelmesi en yavaş olan şeydirler.
Bir dosya reddediliyor ya da analizi başarısız oluyor
Boyut üst sınırları, desteklenmeyen biçimler ve devre kesicisinin arkasındaki bir belge ayrıştırıcısı aynı yerde ret üretir. Arızanın anlık görünmesinin nedeni devre kesicidir.
Bir dosya reddediliyor ya da analizi başarısız oluyor
Şunları görebilirsiniz: No file uploaded (hiçbir dosya yüklenmedi — "file" adlı multipart alanı bekleniyordu) · Image size exceeds maximum allowed size of 10MB (görüntü, izin verilen 10 MB üst sınırını aşıyor) · Unsupported file type (desteklenmeyen dosya türü; PDF, DOCX ya da TXT yükleyin) · legacy and macro-enabled spreadsheet formats cannot be safely redacted (eski ve makro etkin hesap tablosu biçimleri güvenli biçimde maskelenemez)
Başlamadan önce
Denetimler
- 1
Biçimin ürünün kabul ettiği biçimlerden olup olmadığını okuyun
beklenen · Biçim, o yüzeyde kabul ediliyor.
- 2
O yüzeyin boyut sınırını okuyun
beklenen · Dosya, iletide adı geçen sınırın altında.
- 3
İstemcinin parçalı ya da sürdürülebilir bir yükleme yapıp yapmadığını denetleyin
tanılama · posture.resumableUploadPolicy = "block"
- 4
Belge analizinin bu dağıtımda açık olup olmadığını okuyun
beklenen · Servis etkin.
- 5
Belge ayrıştırıcısının kendi sağlığını okuyun
tanılama · services[document-parser].healthy = true
Nedenler ve düzeltmeler
| Ne zaman ulaşılır | Neden | Açıklama, düzeltme ve doğrulama |
|---|---|---|
| denetim 1 başarısız olduğunda | format-not-accepted (bilgi) | Bazı biçimler kısmen işlenmek yerine bilinçli olarak reddedilir. Makro etkin bir hesap tablosu güvenli biçimde maskelenemez ve içeriği sessizce atlayan bir maskeleme, retten daha kötü olurdu. Düzeltme: Dosyayı kabul edilen bir biçimde kaydedip yeniden yükleyin — hesap tablosunu makrosuz .xlsx olarak, belgeyi PDF, DOCX ya da TXT olarak.Doğrulama: beklenen · Kabul ediliyor. |
| denetim 2 başarısız olduğunda | over-size-limit (bilgi) | Her yüzey arabelleğe alacağı miktarı sınırlar; çünkü analiz dosyanın tamamını bellekte tutar ve sınırsız bir yükleme, en büyük tespit servisi hangisiyse onun bellek tükenmesi nedeniyle sonlandırılması demektir. Düzeltme: Dosyayı bölün ya da sıkıştırın; büyük taramalarda görüntü yolu yerine belge yolunu kullanın. Doğrulama: beklenen · Kabul ediliyor. |
| buraya yönlendiren denetim yok | resumable-refused-by-policy (uyarı) | Hiçbir yol istekler arasında arabelleğe almadığı için parçalı ya da sürdürülebilir bir yükleme denetlenemez. Üç yolun üçü de bunları denetlenmemiş biçimde geçirmek yerine varsayılan olarak reddeder ve eklenti görünür bir "not inspected" olayı kaydeder. Yeniden birleştirme — yükleme kimliğine göre arabelleğe alma, sonlandırmada denetleme, yeniden parçalama — uygulanmadı. Düzeltme: Kullanıcıdan dosyayı tek bir istekte yüklemesini isteyin ya da politikayı değiştirerek riski açıkça üstlenin. Buradaki bir reddi ürün arızası olarak okumayın: kapalı kalarak başarısızlık tercihinin çalışmasıdır. Doğrulama: tanılama · posture.resumableUploadPolicy = "block" |
| denetim 4 başarısız olduğunda | parser-disabled (uyarı) | Belge analizi ayrı bir servistir ve örneğin asgari bir geliştirme yığınında kapatılabilir. Etkin olup çökmüş bir servisle karıştırılmasın diye uç nokta, ayırt edici bir iletiyle 503 döndürür. Düzeltme: Belge ayrıştırıcısını etkinleştirin ve ayarı yeniden okuması için ağ geçidini yeniden başlatın. Bkz. Bir dosyayı maskeleyin. Doğrulama: beklenen · Analiz çalışıyor. |
| denetim 5 başarısız olduğunda | parser-unhealthy (kritik) | Ağ geçidi, ayrıştırıcının önünde bir devre kesici tutar: ayrıştırıcı art arda başarısız olduğunda ağ geçidi onu çağırmayı bırakır ve anında "geçici olarak erişilemiyor" yanıtı verir; arızanın anlık görünmesinin nedeni budur. Düzeltme: Bir servise erişilemiyor ya da servis kendini sağlıksız bildiriyor yolunu izleyin. Doğrulama: tanılama · services[document-parser].healthy = true Bu geçerli değilse: Destek paketini, dosyanın türünü ve boyutunu ekleyin. Politika belgenin ortamdan çıkmasına izin vermiyorsa belgenin kendisini eklemeyin. |
İlgili
- Sağlık tablosu — her servis ve o kapalıyken nelerin bozulduğu.
- Tanılama anlık görüntüsü — bu bulguların kaynağı.
- Kaynak boyutlandırma — desteklenen profiller.
Son güncelleme