쓰레드풀 구성하였을때 성능 관련...

superego73의 이미지

혹시 Solaris와 Linux의 성능 관련된 비교 자료 혹시 보신 분 계신가요??

제가 요즘 Solaris(Solaris 8)와 Linux(Redhat 7.2)의 쓰레드풀 관련한 성능 검토를 위해서 간단하게 쓰레드를 n개 생성하여 m개의 일(malloc, memset, memcpy)을 처리하는데 걸리는 시간을 측정하는 프로그램을 작성하여 test를 하였습니다.( posix pthread를 이용 )
물론 둘 다 동일한 code를 이용하였고 gcc를 이용하여 compile하였습니다.

그런데 test를 하다보니..
Solaris의 경우에는 thread의 개수 증가에 관계없이 처리 속도가 일정한 반면
(예를 들면 thread개수에 상관없이 10만 개의 작업을 하는데 대략 1.5초 정도를 유지)
Linux의 경우에는 thread의 개수 증가에 따라 기하급수적으로 처리 속도가 늘어납니다.
(thread 10 : 9초, thread 50 : 90초, thread 150개 : 수분 이상)

들리는 얘기에 의하면 linux가 원래 scheduling이 약하다는 말도 있고.. 훔훔..
혹시 이런거에 대해서 고민해 보셨던 분들이나 고민 중이시거나 아시는 분은 알려주세요..

그럼 날마다 좋은 하루 되세요..

leanblue의 이미지

저는 자바 프로그래밍 밖에 안해봐서 이에 대해서 아는 바는 없습니다만.

(실은 리눅스에서 자바의 성능이 제대로 나오지 않는 이유중 하나가 쓰레드라고 하더군요 ^^)

리눅스의 쓰레드는 프로세스를 그대로 이용하는 것이라고 알고 있습니다.

다음 URL은 구글에서 검색한 결과중 하나입니다. linux+thread로 검색해보세요 ^^;;
http://www.kr.freebsd.org/ml/archive/chat/2001/03/msg00021.shtml

아파치가 2.0으로 버전업 되면서 쓰레드를 사용하기 때문에 리눅스를 제외한 운영체계에서는 성능이 다 좋아졌다고 하더군요.

현재는 리눅스에서도 NGPT, NPTL 란게 있다고 합니다.

그리고 아래는 예전에 여기서 있었던 토론(?) 이네요.^^.. 참고해보시기 바랍니다.

http://bbs.kldp.org/viewtopic.php?t=349&highlight=thread

LeanBlue in CyberWorld!!!

choissi의 이미지

superego73님께서 테스트 결과를 분석할려면
솔라리스와 리눅스의 사양이 좀더 보충이 되어야 할듯 하군요
작성하신 쓰레드 풀 소스도 평가를 해봐야 하구요..

그리고 메모리에 관련된 부분이..
cpu의 캐쉬나, cpu와 메모리간의 버스 구조
운영체제의 가상메모리의 구현에 따라서
달라질 수 있습니다..

같은 플랫폼 내에서도.. 어떻게 메모리 카피를 하느냐에
따라서 성능의 차이가 큽니다.

http://www.ezdoum.com/stories.php?story=02/05/08/2994599

쓰레드풀의 성능을 측정하실려면 메모리 카피를 할것이 아니라.
풀에 들어가는 단위잡의 시간을 일정하게 잡아주고
순수하게 쓰레드풀의 기능만을 평가해야겠죠..

울랄라~ 호기심 천국~!!
http://www.ezdoum.com

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.