Günlükler: kimsenin karar vermediği halde büyüyen tek şey
Diski dolduran her şeyi siz eklediniz. Günlükler hariç. Ve arıza çıktığında yazma hızı artar, yani günlük en hızlı, sizin en az bakabildiğiniz anda büyür.
AtlasPVE ·
Bu madde şunları karşılıyor
- proxmox log dosyaları büyüdü
- proxmox journal disk doldurdu
- proxmox logrotate
- proxmox var log temizleme
- proxmox disk doluyor sebebi
Diski dolduran şeylerin çoğunu siz eklediniz: sanal makineler, yedekler, kurulum kalıpları. Her biri bir karardı.
Günlükler farklı. Onlar, sistem çalıştığı için büyüyor. Hiç kimse "bu dosya büyüsün" demedi.
Büyüme yavaş ama sınırsız
Bir günlük dosyası günde birkaç kilobayt büyüyebilir. Bu, aylarca hiç dikkat çekmez. Bir yıl sonra da hâlâ küçüktür.
Ama sınırı yoktur. Ve sınırı olmayan bir büyüme, ne kadar yavaş olursa olsun, yeterince beklerseniz bir sorun haline gelir.
Kimsenin beklemediği çarpan: arıza yazmayı hızlandırır
Bu maddenin asıl noktası burada.
Sağlıklı bir sistem az yazar. Bir kontrol her çalıştığında hata veriyorsa, aynı dosyaya her çalışmada bir satır düşer. On beş dakikada bir çalışan bir iş için bu, günde doksan altı satır demektir ve durmaz.
Yani günlük en hızlı, sizin en az bakabildiğiniz anda büyür: bir arıza sürerken.
Ve en kötü hâli
Bir sorun çıkar, günlükler hızlanır, disk dolar. Dolan disk yeni sorunlar çıkarır. Yeni sorunlar daha çok günlük üretir.
Bu noktadan sonra asıl arızayı bulmak zorlaşır, çünkü ekranda gördüğünüz hataların çoğu ilk sorunun değil, dolan diskin sonucudur.
Kural: yazan her şeyin bir tavanı olmalı
"Sonra temizleriz" bir plan değildir. Gereken şey, kimsenin hatırlamasına gerek kalmadan çalışan mekanik bir sınır.
Bu kural yalnız sistem günlükleri için değil: kendi çalıştırdığınız servislerin, zamanlanmış işlerin ve toplayıcıların ürettiği her dosya için geçerli.
Kurarken sık yapılan iki hata
Bir: olmayan dosya yüzünden kuralın kırılması. Bazı dosyalar ancak ilgili özellik kullanıldığında oluşur. Kural, dosya yoksa hata vermeyecek biçimde yazılmalı; yoksa hiç kullanılmayan bir özellik yüzünden döndürme işi tamamen durur.
İki: yanlış döndürme yöntemi. Dosyayı yeniden adlandırıp yazan servise "yeniden aç" sinyali göndermek yaygın yöntemdir, ama bu ancak uzun ömürlü bir servis varsa çalışır. Yazan taraf her seferinde açılıp kapanan kısa ömürlü bir işse, sinyal gönderecek kimse yoktur; o durumda içeriği kopyalayıp dosyayı yerinde boşaltmak doğru yöntemdir.
İkisi de sessiz hatalardır: kural konulmuştur, dosya büyümeye devam eder, ve kimse kuralın çalışmadığını fark etmez.
Ve kurulu makine sorusu
Bir döndürme kuralını yalnızca kurulum betiğine yazarsanız, kural yazılmadan önce kurulmuş makinelere hiç ulaşmaz. O makineler yıllarca kuralsız çalışır.
Doğrusu kuralı her açılışta yazmaktır: böylece yeni sürüme geçen eski kurulumlar da kuralı alır.
Atlas ne yapıyor
Bu maddenin tamamı Atlas'ın kendi ölçümünden çıktı, o yüzden dürüst anlatmak gerekiyor.
Atlas müşterinin makinesinde kök yetkiyle çalışıyor ve birden çok günlük dosyasına yazıyor: bekçi özeti on beş dakikada bir, planlı güncellemelerin çıktısı her çalışmada, kendi kendini güncelleme kaydı. Ölçüldü ve hiçbiri döndürülmüyordu, çünkü kurulum hiçbir yere döndürme kuralı yazmıyordu. Canlı bir makinede bekçi günlüğü otuz iki günde yüz seksen kilobayta ulaşmıştı ve küçültecek bir mekanizma yoktu.
Rakam küçük görünüyor ve o gün sorun değildi. Sorun olan şey büyümenin sınırsız olmasıydı, ve yukarıda anlatılan hızlanma. Planlı güncelleme günlükleri her çalışmada paket yöneticisinin tüm çıktısını alıyor, yani çalışma başına megabaytlara çıkabiliyor.
Şimdi kural konuyor ve yukarıdaki iki tuzak da bilerek ele alınmış: olmayan dosyalar tolere ediliyor, ve döndürme kopyala-boşalt yöntemiyle yapılıyor çünkü yazan taraf zamanlanmış görevden çalışan kısa ömürlü süreçler.
Ve kural açılışta yazılıyor, kurulum betiğinde değil. Sebebi tam da yukarıdaki soru: daha önce kurulmuş makineler de yeni sürüme geçtiklerinde kuralı alsın.
Kaynaklar
Proxmox'un kendi belgeleri. İngilizce, ve bu konuda son sözü onlar söyler.