2012-11-27 2 views
4

부두 서버와 ehcache 인스턴스를 시작했습니다. 곧 다른 jave 프로세스를 시작할 때 리눅스에서 스레드 제한이 발생했습니다.Java의 스레드는 Linux에서 프로세스처럼 작동합니까?

오류 메시지는 unable to create new native thread (P.S. 내 Linux OS는 CentOS 6.2)입니다.

그런 다음 나는 두 개의 자바 프로세스 (부두 및으로 Ehcache는) 거의 800 스레드를 생성 알고 ps -xH을 사용하고, ps -xH의 총 수는 1024

그래서, 내 질문에 그 이유입니다, 1023 있습니다 ulimit -u 쇼 자바 생성 스레드하지만 프로세스 번호의 한계가 발생했습니다?

P. 나는 충분한 메모리를 가지고있다.

답변

0

적어도 부두에 대해서는 과도한 양의 쓰레드가있다. 초당 수백 건의 요청으로 서버에 중점을 두지 않았다면 이런 일이 일어나서는 안됩니다. 스레드가 무기한 차단되지 않는지 다시 확인하십시오. 어떤 경우 든 요청을 큐에 넣거나 거부하기 전에 허용되는 최대 스레드 수를 구성하십시오.

3

리눅스 스레드의 경우 기본적으로 프로세스가 동일합니다. 이들의 차이점은 스레드가 메모리, 파일 설명자 등과 같은 것을 공유하고 프로세스가 그렇지 않다는 것입니다.

더 많은 통찰력을 얻기 위해 this을 확인하십시오. 따라서 스레드와 프로세스는 모두 1023 개의 프로세스 제한에 포함됩니다.

당신은 아마 저에게 거대한 amout 같이 보이는 더 적은 실을 창조하는 것을 시도해야한다.

관련 문제