특정 CPU에 프로세스 할당하는 방법?

안상준의 이미지

현재 하이퍼 쓰레딩이 되는 2CPU로 SMP 커널을 사용하고 있습니다. (logical하게 4 CPU처럼 보입니다)

여기서 특정 프로세스를 제외한 모든 프로세스를 첫번째 CPU에 할당하고 나머지 3개 CPU에 특정 프로세스를 할당할려고 합니다. 이게 가능한가요?

제가 만든 프로그램은 네트워크 프로그램(streaming 서비스용)인데 패킷 손실없이 잘 동작하다가 다른 명령어를 실행하면 성능 문제로 패킷 로스가 발생합니다.

ssehoony의 이미지

임의로 프로세서를 선택하는게 포퍼먼스에서 의미가 있나요?

어떤 경우때문에 그런기능이 필요하신건지 궁금하네요.
말씀해 주실 수 있는거면 간단한 답글 부탁드립니다.

그리고 같은 프로세스를 동일한 프로세스에서 구동하는게 효율적이라고 들었습니다. (context switching 에 따른 1차, 2차 캐쉬 때문에 그런게 아닌가 하고 짐작하고 있습니다.)
그래서 리눅스 커널은 (다른 커널도 다 그럴것 같네요) 그런 효율성을 고려해서 프로세서를 선택한다고 하더군여.
커널 차원에서 최적화가 되 있는 듯 하니 신경쓰지 않으셔도 될 듯 한데요.

preisner의 이미지

SMP(대칭형 다중 처리)방식에서는 임의의 CPU에 작업을
할당할 수 없는 것으로 알고 있습니다.
어느 프로세서에게 프로세스를 할당할지는 오로지 커널이 결정할 일입니다.
(쓰레드의 스케쥴링 문제와 비슷한듯 싶네요.)
하지만 비대칭형 다중처리방식을 쓰는 커널이라면 가능할지도 모르겠습니다.
(비대칭형 다중처리에서는 여러 CPU중 한개의 CPU가 스케쥴링과 CPU할당을
책임집니다. SunOS였나? 에서는 비대칭 다중처리를 지원하는 것으로 알고 있습니다.)

Tony의 이미지

priority를 최대로 높히세요. nice로 조정하시거나... 그렇게되면 thread가 1개라면 그 thread(or process)가 한개의 cpu를 점유하고는 놓질 않을껍니다.
priority를 rt까지 높혀보시길...

preisner의 이미지

priority를 높이면 당장은 그렇게 될 수도 있겠지만
만약 프로세스가 blocking(여러 이유로)되었다가 다시 실행 되었을때
예전에 실행되던 CPU 또는 원하는 CPU에 할당 된다는 보장을 할 수 없습니다.
또한 한 프로세스에 아주 높은 priority를 주는 것 역시 좋은
운영방법은 아닌듯 싶군요.
커널에서 처리해 주는 방법밖에는 없지 않을까요?

댓글 달기

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