2011-09-28 3 views
24

저는 libev를 사용하는 부하 테스터를 만들고 있습니다. 저는 작업중인 앱에 열려있는 TCP 연결을 많이 만듭니다. 현재 인해은 nofiles 한계, 256 개 연결시에서 폭탄을 IT :로드 테스트를 위해 osx에서 소켓 제한을 늘리는 방법은 무엇입니까?

ulimit -n 
256 

내가 아래 수행하여 1,024으로 증가 할 수 있습니다

ulimit -n 1024 

그러나 나는 그것을 더 늘릴 수 없습니다.

ulimit: open files: cannot modify limit: Invalid argument 

가 어떻게 OSX에 더 ulimit를 증가 할 수 이상적으로는 그것은 다음과 같은 오류를 제공 1048576으로 설정할?

답변

47

(여러 개의 덧글이 제안 -S 사용하도록 업데이트 답)

$ 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

이상한 - 나는 내 집 맥 (눈 표범)에서 그것을 시도하고 작동하지 않았지만, 내 직장 맥 (또한 눈 표범)에서 잘 작동했습니다. 흠 ... – Chris

+0

정확히 작동하지 않는 부분 - 오류 메시지가 나타 났습니까? – Grrrr

+0

이 설정에 대해 자세히 설명해 주시겠습니까? 나는 'maxfilesperproc'은 "프로세스 당"을 의미한다고 가정하고, maxfiles보다 작아야한다는 의미가 있지만, 특정 숫자를 선택하는 이유가 무엇입니까? –

2

ulimit 명령과 프로그램을 실행하기 전에 루트 (예 : "sudo -s")로 실행 해보십시오. (당신이 그것을 할 때 내가 무슨 일에 대한 청문회에 관심있어하지만, ^)를 내가 한 번에 1 백만 플러스 TCP 소켓 현실적으로 달성 모르겠어요

주)

또한

, 체크 out this.

+0

음, 1M 연결이 현실적이지 않을 수도 있지만, 내가 갈 수있는 정도를 알 수 있습니다. 그냥 ulimits에 의해 인위적으로 제한되고 싶지 않아. – Chris

2

한 가지 더 : 포트에 대한 제한은 그래서 당신은 당신이 원하는만큼 얻을 수 65535입니다.

관련 문제