/ Tmp dosyasına yazarken “disk kotası aşıldı”, ancak çok fazla alan (linux)


9

VPS'im var. Kötü şöhretli paralelliklerle yönetiliyor.

Bugün (ilk başta wordpress aracılığıyla ama aynı zamanda komut satırı kabuğundan) mesajlar görmeye başladım: "Disk kotası aşıldı".

user@machine:~$ echo aaa > /tmp/aaa
-bash: /tmp/aaa: Disk quota exceeded

ancak makinede çok fazla alan ve sadece 1 bölüm var.

user@machine:~$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/vzfs             100G   24G   77G  24% /

Tüm dosyaları / tmp / * 'dan sildim ama yine de.

"Vzfs" hakkında hiçbir şey bilmiyorum, belki de suçludur?

Ne yanlış gidebilirdi? ve nasıl düzeltebilirim?

Çözüm!

(Parallels Plesk'i KULLANMAYSANIZ, @ Adalee'nin cevabına bakınız)

Benim durumumda olduğu gibi Parallel'in sistemiyle ilgili @deltik'in çözümüne bakın.

df -i hemen çok sayıda inode verdi: 18,446,744,069,620,218,961, bir wordpress web sitesi için çılgınca.

daha fazla araştırdım ve qmail'in kuyruğunun inotlarla dolu olduğunu gördüm (bazı bilgisayar korsanlarının spam için makinemi kullanma girişimleriyle ve hata yanıtlarıyla dolu)

qmail'i düzeltmek burada alakalı değil, ancak geçici çözümüm alakalı:

  1. qmail'in hizmetini durdurdu
  2. i indirmek mümkün değildi qmhandle i zorunda, aşırı kota sistemine
  3. komut dosyasını ayıklayıp başka bir web sitesine yükleyebilir,
  4. bu komutla kuyruğu sil:
  5. perl <(wget -O - http://link.to.my/script.pl ) -D

Bu şekilde komut dosyası doğrudan web'den (güvenli bir uygulama değil, ancak komut dosyası orada kendim koymuştu), komut satırı seçenekleri ile çalışıyor.

Bu tuhaf kurulumu yerinde tanıdığı ve hemen tanıdığı ve daha fazla teşhis için araç sağladığından dolayı @deltik'e teşekkürler !!!


Linux'ta kullanıcı veya grup tabanlı disk kotası ayırma ayarları bulunur. Bunları da kontrol edin UNIX / Linux'ta Kullanıcı ve Grup Disk Kotasını Ayarlamak için 5 Adım
DavidPostill

1
Evet, vzfs(OpenVZ "sanal" dosya sistemi) bunun nedeni olabilir. İnanılmaz derecede ucuz sunucular satan birçok OpenVZ sağlayıcısı gördüm, ancak onlara inanılmaz derecede aptal sınırlar koydum.
user1686

Bir çözümünüz varsa, belirli olsa bile, lütfen cevap olarak gönderin. Başkalarının cevabını her zaman kabul edebilirsiniz.
Daniel B

Yanıtlar:


15

Bir VZFS dosya sisteminiz var, yani VPS'niz bir Parallels Virtuozzo sanal makinesi. Virtuozzo'da barındırma sağlayıcısı, VZFS ile hangi tahsisleri alacağınız da dahil olmak üzere birçok parametrede sınırlar belirleyebilir.

Neden: Düğüm Dışı (En Yaygın)

Dosya oluşturamama sorunu yaşayan yüzlerce Virtuozzo VPS müşterisi ile yıllarca çalıştıktan sonra, bol miktarda boş alan görünse de, büyük çoğunluğu inode sınırına ulaşmıştı. İnode tahsisini ( Inodes), kullanılan inodes ( IUsed), kalan inodes ( IFree) ve kullanılan inode yüzdesini ( ) görmek için bu komutu çalıştırın IUse%:

df -i

% 100 inode kullanımı çok fazla olur. Deneyimlerimdeki yaygın nedenler:

  • Spam e-posta geri dönüşleri
  • Sıraya alınan spam spam e-postaları
  • Çok sayıda gelen e-posta depolandı
  • Bazı kullanıcılar PHP oturum çöp toplamalarını ( session.gc_maxlifetime) yüz yılı aşkın bir süreye ayarlıyor
  • Çok fazla genel önbellek dosyası
  • WordPress eklentisi W3 Total Cache'de nesne önbelleği etkin
  • Magento hata günlüğü (her hata için yeni bir dosya oluşturulur)
  • Bir grup dosya oluşturan ve silmeyi unutan diğer kötü yapılandırılmış veya kötü tasarlanmış programlar / komut dosyaları

Sorun giderme

Düşük veya inode dışında olduğunuzu fark ederseniz, ancak bunların çoğunun nerede olduğunu bilmiyorsanız, geçerli dizinde arama yapan ve inode'ları 1 klasör derinliğinde sayan bu Bash tek katmanlı var:

for i in $(find $(pwd) -maxdepth 1 -type d | sort); do echo -e "$(find "$i" | wc -l)\t: $(readlink -f "$i")"; done | sort -nr

Geçerli çalışma dizinini /, inode tahsisini kullanarak suçluyu bulana kadar değiştirmeye devam edebilirsiniz .

açıklama

VPS'niz, Parallels Virtuozzo'nun bir parçası olan bir VZFS dosya sisteminde (benzer ve aynı teknolojiye dayanan OpenVZ değil, ancak OpenVZ VZFS kullanmaz).

Virtuozzo'nun VZFS'de dosyaları depolaması nedeniyle, inode genellikle ext4 veya XFS gibi diğer dosya sistemlerinde olduğundan daha sınırlıdır. Ana bilgisayar tüm bu dosyaları izler ve tek bir VPS'nin yüz milyonlarca inode almasına izin vermemek, barındırma sağlayıcısı için avantajlı olacaktır. Sonuç olarak, barındırma sağlayıcı inode sınırını 1000.000 inode gibi düşük olarak ayarlayabilir.

Virtuozzo'ya inode tahsislerini tüketen yüzlerce müşteriyle çalıştıktan sonra, bu "gizemli" disk kotası sorunları artık beni şaşırtmıyor.

Neden: Diğer Virtuozzo Sınırları

Çalıştığım Virtuozzo VPS müşterilerinin çok küçük bir yüzdesinde diğer sınırlara ulaştıkları için dosya sistemi sorunları vardı. Bu komutla sınırların bazılarını (ancak hepsini değil) görebilirsiniz:

cat /proc/user_beancounters

Sorun giderme

failcntSütunun 0'dan büyük bir değeri varsa veya heldsütun değeri karşılık gelen limitdeğere eşitse , bir sınıra ulaşmış olursunuz.

OpenVZ'nin wiki'sinde her bir parametrenin ne olduğunu buradan görebilirsiniz . Bir parametre "birincil", "ikincil" veya "yardımcı" olabilir.

heldVPS'nizin ulaştığı bir sınırın sayısını azaltamazsanız, daha fazla yardım için barındırma sağlayıcınızla görüşmelisiniz.

Bu cevap, hangi fasulyenin maksimize edildiğine bağlı olarak çok fazla genişletilebilir, çünkü farklı sınırlara ulaşılması farklı semptomlara neden olur.

Neden: Vurulduktan Sonra Sınırlar Azaldı

Bir Virtuozzo sistem yöneticisi /proc/user_beancountersveya df -ibazen ilgili limitbir helddeğerin altındaki bir parametrenin değerini düşürebilir .

Örneğin, diskinodesparametrenin orijinal sınırı 1.500.000 ise ve sınıra ulaşırsanız, barındırma sağlayıcınızdaki bir kişi inode sınırınızı 1.000.000 olarak ayarlarsa, df -ibunun mantıksız bir inode raporu görürsünüz .

Sonunda, 18,446,744,069,620,218,961 gibi mantıksız derecede büyük bir sayı görebilirsiniz .

Bunu, özellikle sizi bilgilendirmedikleri takdirde, barındırma sağlayıcısından uğursuz bir davranış olarak görüyorum, çünkü gördüğünüz alışılmadık değerler, yanıltıcı yollara yol açan Virtuozzo / OpenVZ ile deneyime sahip olmayan süper kullanıcıların bilgisine karşı çıkıyor. tavsiye ( örnek , başka bir örnek ).

Sorun giderme

Barındırma sağlayıcınızla görüşün. Onlara ne bulduğunuzu gösterin ve tutulan fasulyenizi limitin altına getirmek için onlarla birlikte çalışın.

Size yardım etmeyi reddederse, barındırma sağlayıcınızı boşaltın ve Virtuozzo / OpenVZ sanallaştırmasını kullanmayan başka bir tane bulun. KVM sanallaştırması, VMware sanallaştırması, Xen sanallaştırması veya çıplak metal sunucuları Virtuozzo / OpenVZ'den çok daha az sınırlamaya tabi olacaktır.

açıklama

Barındırma sağlayıcınız bir uyarıyı denetliyor veya yanıtlıyor olabilir ve VPS'nizin çok fazla belirli bir kaynak kullandığını (neredeyse her zaman diskinodesuçlarındaki parametre olan inode sınırı ) bulmuş olabilir.

Barındırma sağlayıcısında deneyimsiz bir Virtuozzo yöneticisi, sınırı gerçek kaynak kullanımından daha düşük bir şeye indirgeyerek sorunun üstesinden gelebileceğine inanıyor. İnode durumunda, gerçek kullanımınız 1.500.000 gibi daha yüksek olsa bile 1.000.000 gibi daha düşük bir ayırmaya sahip olabilirsiniz.

Kontrol panelindeki Virtuozzo yöneticisi, gerçek kullanımınızı ve yeni sınırı görecektir, ancak Virtuozzo'nun sanallaştırma şekli nedeniyle muhtemelen çok mantıksız derecede yüksek sahte numaralar görürsünüz.

Bir ihmalkar Virtuozzo yöneticisi bu değişiklik hakkında sizi bilgilendirmez, bu yüzden size bu olursa barındırma sağlayıcınızla iletişime geçmelisiniz.


18,446,744,069,620,218,961 wordpress çalıştıran bir site için kabul edilebilir sayıda
inod

@BerryTsakala: Dosya sistemi tarafından kullanılan düğüm sayısı veya toplam düğüm sayısı mı? Komutun tam çıktısını verebilirseniz, emin olabiliriz. Şimdiye kadar yazdıklarınıza dayanarak, ana makinenizin bir inode sınırı ayarlanmamış gibi görünüyor, bu da yanlış olacağım anlamına geliyor. Virtuozzo sınırlarını daha da araştıran güncellenmiş bir cevabım olacak.
Deltik

@TerryTsakala: Ev sahibinizin uğursuz bir şey yaptığını ve fark etmeyeceğinizi umduğunu fark ettim. Cevabımı ayrıntılarla kısa bir süre içinde güncelleyeceğim.
Deltik

teşekkür ederim! zaten gereksiz dosyaları silmeye başladım. Ayrıca bir spam göndericinin sistemi kötüye kullandığını ve e-postanın qmail'in sırasını doldurduğunu keşfettim.
Berry Tsakala

BTW, inode özetlemiyor: df -i, find ... komutu ile döndürülen toplamdan 100 trilyon kat daha büyük. Tutarsızlığı nasıl bulacağınızı biliyor musunuz?
Berry Tsakala

4

"Disk kotası aşıldı", diskinizde yer olmadığı anlamına gelmez, ancak çok fazla alan kullanmanıza izin verilmez.

Genel olarak, kotalar yönetici tarafından belirlenen bazı sınırlardır - çalıştırabileceğiniz maksimum işlem sayısı, ne kadar yer kaplayabileceğiniz, kaç dosyaya sahip olabileceğiniz vb. Disk kotaları maksimum sayıda düğüm ve disk bloğu için ayarlanabilir.

Çalıştırmayı deneyin quotave quota -g(alternatif olarak çalıştırabilir repquota -uve repqouta -gkullanıcı bu şekilde ve nasıl bir sınırlama olup olmadığını) görmek için. Evetse, bu kotaları düzenleyebilir edquotaveya quotaoffkomutla kapatabilirsiniz . Ayarlarınıza bağlı olarak bunun için root olarak giriş yapmanız gerekebilir.

Bu site , kotalarla nasıl çalışılacağına dair birkaç örnek içerir ve ayrıca yararlı komutlara yönelik manuel sayfalara bağlantılar içerir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.