Popular Categories

/home/ras0ir

there are no girls on the internet

Sonatype Nexus ve “too many open files” hatası

Maven depolarıyla uğraşıyorsanız ve bunu sonatype nexus üzerinden idare ediyorsanız ve zaman zaman nexus’un sistem kayıtlarına “too many open files” yazdığını ve çakıldığı gerçeğiyle yüzleşiyorsanız yapmanız gereken bazı işlemler bulunuyor.

Nexus çalıştırıldığı vakit süreç konusunda oldukça ve açtığı dosyalar bakımından oldukça bonkör davranıyor. File descriptor limitine (eğer değiştirmediyseniz çoğu sistemde öntanımlı süreç sayısı soft 1024, hard 4096) takıldığınız için de çakılıyor ve cevap veremez hale geliyor. Bu durumda yapmanız gereken işlem basit, /etc/security/limits.conf dosyasını açıp ister sistem genelinde, isterseniz kullanıcı bazında izin verilen süreç limitlerini artırma yoluna gidebilirsiniz. Bunun için limits.conf dosyasına şu satırları eklemeniz yeterli:


* soft nofile xxxxxx
* hard nofile xxxxxx

xxxxxx kısımlarını uygulamayı takip ederek artırmanızda fayda var. Başına * koyduklarınız sistem genelindeki tüm kullanıcı ve grupları ifade ediyor. Eğer belirli bir kullanıcının limitlerini değiştirmek istiyorsanız:


kullanıcı_adı soft nofile xxxxxx
kullanıcı_adı hard nofile xxxxxx

Ya da bir grubun limitlerini değiştirmek istiyorsanız:


@grup soft nofile xxxxxx
@grup hard nofile xxxxxx

şeklinde düzenlemeye gidebilirsiniz.

Diğer taraftan, sysctl ile “fs.file-max” değerleriyle de oynamanız da gerekebilir (aslında file descriptor limitleri buradan geliyor). Bunun için şu komuttan yararlanabilirsiniz:


sysctl -w fs.file-max=xxxxxxx (kalıcı olmasını istiyorsanız, /etc/sysctl.conf dosyasına fs.file-max=xxxxx yazmanız yeterli)

Yine burada xxxxxxx değerini uygulamanın davranışını ve sistemin genel davranışını izleyerek (lsof kullanarak takip edebilirsiniz) artırmanızda fayda var. Mevcut fs.file-max değerini görmek için de şu komutu uygulayabilirsiniz, sonra yanlışlıkla limiti aşağı indirmeyin :p.


sysctl fs.file-max

Tabii bu saydıklarım sadece nexus için geçerli değil, genellikle java uygulamaları süreç ve dosya açmada bonkör davranıyor. Özellikle Jenkins (veya hudson) kullanıyorsanız ve düzenli derleme aralıkları çok sık ise (ya da çok fazla projeyi günlük derliyorsanız) yine limitleri artırmakta fayda var.

Bu değerler donanıma, kullanılan dosya sistemine göre farklılık gösterebileceği için doğrudan limitleri şununla değiştirin şeklinde bir tavsiyede bulunamıyorum; ancak ilk olarak süreç limitlerinizi iki katına çıkararak gözlemeye başlamanızda ve lsof‘tan yararlanmaya başlamanızı tavsiye edebilirim. lsof ve file descriptor limitlerine ilişkin şuradaki yazı fazlasıyla iş görecektir.

2 thoughts on “Sonatype Nexus ve “too many open files” hatası”

Leave a Reply

E-posta hesabınız yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir