solaris에서 thread 생성시..

kang0203의 이미지

안녕하세요..
solaris에서 thread를 최대 몇개 까지 만들 수 있는지 궁금해서여...
그리고 몇개가 안정적인지두여..
그럼 수고하세요..

낙엽의 이미지

한 process당 256개 초과시 process가 중지되는 것으로 알고있습니다.

동시 생성 thread 갯수는 255 이하로 생각하는것이 낫겠죠.

purewell의 이미지

사족달기...

1 프로세서 당 Alzza 6.1 에서 pthread_create가 1023까지 유효하더군요.

_____________________________
언제나 맑고픈 샘이가...
http://purewell.biz

yykim의 이미지

일반적으로 PTHREAD_THREADS_MAX 까지 가능할껍니다.

김충길의 이미지

실제로 가능한 수는 부모 스레트의 최대가능 스택 사이즈에 달려 있습니다.

스레드 생성하면서 스택을 나눠먹기 때문에 나중에 스택이 모자라
무슨 시그널 에러 납니다. 그 시그널 보고 이게 스택이 모자라서
난 시그널이라곤 모를겁니다.

솔라리스에서는 별문제 없이 MAX까지 된것 같았다고
리눅스에서 그랬던걸로 기억나는군요.

screen + vim + ctags 좋아요~

낙엽의 이미지

솔라리스에서 테스트했습니다.
255~254개 동시생성 후 프로세스가 먹통이 되더군요.. ^^;
물론 MAX 설정에 따라 다르겠지만..

purewell의 이미지

Quote:
일반적으로 PTHREAD_THREADS_MAX 까지 가능할껍니다.

저 내용은 pthread.h에 안 들어 있더군요.

limits.h에 들어 있더군요...

#include ....
...


void* myfunc(void*)
{
  while (true) {sleep(10);}
  return NULL;
}

int main(void)
{
  for (int i=0; i<PTHREAD_THREADS_MAX; i++)
  {
    pthread_t th;
    if (pthread_create(&th, NULL, myfunc, NULL))
    {
      printf("MAX: %d\n", i);
      break;
    }
  }

  return 0;
}

이거 돌리니까 254개 정도 나오더군요.

OS: RH8
CPU: P3 700Mhz x4
MEM: 2GB

(회사꺼 테스트 서버입니다)

_____________________________
언제나 맑고픈 샘이가...
http://purewell.biz

h96ahg의 이미지

레드햇 9.1에서.. 2000개까지 테스트 해봤습니다.
커널을 수정하지 않고 .. pthread_attr_setstacksize() 를 이용해서 각 쓰레드의 스택 사이즈를 PTHREAd_STACK_MIN으로 조정하니 2000개까지 돌려도 다운되지 않고 잘 돌더군요..
흠.. 더 테스트를 해봐야 겠지만요.. wink

dreampia의 이미지

SunOS 5.8 사용하고 현재 정상 운영중입니다.
processes당 평균 200-400개 정도 threads 생성해서 운영하고 있습니다.

processes 하나당 1500개 정도까지 만들어서 테스트 해 봤는데
CPU 부하를 너무 많이 먹어서 개수를 많이 줄였습니다.

대략 제가 추천하는 threads 개수는 processes가 작업량이 많을 경우
200-300개 정도까지가 좋지 않을까 생각합니다.

>/dev/null 2>&1

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.