2011-09-28 10 views
24

Çalıştığım bir uygulamaya çok sayıda açık tcp bağlantısı oluşturmak için libev kullanan bir yük test cihazı oluşturuyorum. Şu nedeniyle nofiles limite kadar 256 bağlantılarda dışarı bomba He got:Yük testi için osks üzerindeki soketlerdeki sınırlar nasıl artırılır?

ulimit -n 
256 

aşağıda yaparak 1024 bu artırabilir:

ulimit -n 1024 

Ama daha da artırmak mümkün değil.

ulimit: open files: cannot modify limit: Invalid argument 

Nasıl osx daha da ulimit artırabilir: İdeal ben Aşağıdaki hata veriyor 1048576. için ayarlamak istediğiniz?

cevap

47

(birkaç yorum yapanlar önerdiği gibi -S kullanmak için güncellendi cevap)

$ sysctl kern.maxfiles 
kern.maxfiles: 12288 
$ sysctl kern.maxfilesperproc 
kern.maxfilesperproc: 10240 
$ sudo sysctl -w kern.maxfiles=1048600 
kern.maxfiles: 12288 -> 1048600 
$ sudo sysctl -w kern.maxfilesperproc=1048576 
kern.maxfilesperproc: 10240 -> 1048576 
$ ulimit -S -n 
256 
$ ulimit -S -n 1048576 
$ ulimit -S -n 
1048576 
+1

Garip - Ben ev mac (kar leopar) üzerinde çalıştı ve işe yaramadı, ama benim iş mac (aynı zamanda kar leopar) üzerinde iyi çalıştı. Hmm ... – Chris

+0

Tam olarak ne işe yaramadı - herhangi bir hata mesajı aldınız mı? – Grrrr

+0

Bu ayarlar hakkında ayrıntılı bilgi verir misiniz? "Maxfilesperproc" ifadesinin "işlem başına" anlamına geldiğini ve "maxfiles" değerinden daha az olması gerektiğini, ancak belirli bir sayıyı seçmenizin bir nedeni olduğunu düşünürüm. –

2

Kök olarak çalıştırmayı deneyin (örn., Ulimit komutunu ve programınızı çalıştırmadan önce bir "sudo -s" yapın). (Bunu denediğimde ne olduğu hakkında işitme ilginç değilim rağmen; ^) Aynı anda 1 milyon artı TCP soketleri gerçekçi ulaşılabilir olduğunu emin değilim

Not)

Ayrıca

onay this.

+0

1M bağlantıları gerçekçi olmayabilir, ancak ne kadar gidebileceğimizi göreceğiz. Sadece ülserlerle yapay olarak sınırlı olmak istemiyorum. – Chris

2

Bir şey daha: portlar sınırı Yani istediğiniz kadar alamayabilirsiniz 65535 olduğunu.

İlgili konular