CPU의 가상쓰레드 사용량에 대해 궁금합니다.

익명 사용자의 이미지

안녕하세요. 최근에 서버 엔지니어의 길로 들어선 뉴비입니다.
제가 맡고있는 고객사에 서버점검을 하면서 궁금한점이 있어서 질문올립니다.
RHEL 7.5버전으로 되어있는 서버인데 top 명령어로 CPU의 사용률을 체크하면서 생긴 궁금점입니다.
(자세한 스펙은 문제가 될까봐 공개 못하는점 양해바랍니다.)

기본적 하드웨어적으로 코어는 6개인것으로 보이고 스레드가 12개입니다.
여기에 가상스레드를 추가하여 24개까지 보이는데 서버에서 기본적으로 돌리고있는 프로세스가 있을거고,
그 프로세스의 대해서 CPU사용량이 균등하게 나눠져 돌아가고있다는것은 육안적으로도 보입니다.
여기서 궁금점은 CPU의 사용분배가 이상하게 되어있습니다.
예를들어 6개의 코어와 12개의 스레드가 있고, 솔루션이나 어플리케이션을 서비스중이라 가정할때
top 명령어를 실행해 각 CPU의 사용률을 보면

cpu(1) 15%
cpu(2) 6%
cpu(3) 3%
cpu(4) 1%
cpu(5) 0%
cpu(6) 0%
cpu(7) 15%
cpu(8) 6%
cpu(9) 3%
cpu(10) 1%
cpu(11) 0%
cpu(12) 0%

위처럼 출력됩니다. 여기서 궁금한게 왜 1번부터 12번까지 균등하게 나눠지는게 아니고, 1번과 7번이 주 코어인것처럼 인식되면서 5,6번과 11,12번이 0%로 할당이 안되는게 왜 그런지 궁금합니다.
이게 단순히 OS적인 인식or설정 문제인지, 해당 서버에서 사용하고있는 어플리케이션의 설정문제인지 가늠할수없어서 질문드립니다.

jick의 이미지

간단하게 single thread로 코어를 100% 사용하면서 돌아가는 프로세스가 있다고 생각해 봅시다. 이 프로세스를 코어 12개에 골고루 나눠서 일을 시키는 것보다, 코어 하나를 잡아서 그 코어만 죽어라 일하게 만들고 나머지 코어 11개는 놀고 있는 것이 훨씬 효율적입니다. 놀고 있는 코어는 클럭을 낮춰서 전기를 적게 쓸 수 있고, 이미 사용중인 코어의 L1 캐시에 중간 결과들이 모조리 저장되어 있을 테니까 말이죠.

마찬가지로 커널 입장에서는 코어를 골고루 나눠 쓰는 것보다 "일단 일하기 시작한 놈 계속 일시키기"가 더 효율적인 스케줄링입니다.

따라서 모든 코어가 100% 일하는 환경이 아닌 한, 일부 코어가 열심히 일하고 있고 나머지가 놀고 있는 건 매우 정상입니다.

작성자의 이미지

한번 읽고 이해할수있는 좋은 답변 감사드립니다!

댓글 달기

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