싱글 프로세스의 cpu 점유율이 100%일때 cpu 분산처리 방법이 있을까요?

ljs0652의 이미지

말 그대로인데요

싱글 프로세스가 cpu 점유율이 100%로 될때, 서버가 멀티코어일때 이를 분산해서 cpu 과부하를 막아주는 방법이 있을까요??

서버는 리눅스 입니다.

익명 사용자의 이미지

그런 걸 병렬처리를 한다고 하는데, 일반적인 방법은 없습니다.

해당 프로세스가 어떤 일을 하고 있는지 파악하고, 그에 따라 로드를 분산시켜야 합니다.

혹시 소프트웨어 옵션 중에 병렬처리 관련 옵션이 있는지 찾아보세요.

ljs0652의 이미지

답변 감사합니다. 기본적인걸 해봐야 하는데 일단은 반복문에서 처리하게 해보고 싶은데요
찾아보니 openmp라는게 있던데 이걸 이용해서 할 수 있을까요/

익명 사용자의 이미지

네. openmp를 쓰면 병렬 프로그램을 작성할 수 있죠.

ljs0652의 이미지

제가 지금 해보고 있는데
a라는 작업을 10초 걸려 점유율을 70퍼 정도 쓴다면
병렬처리를 하면 130퍼 정도 써서 더 빠르게 끝내게 되버립니다
같은 시간에 다른 cpu 코어를 공유해 처리하는 방법은 없을까요?

라스코니의 이미지

CPU 점유율이 100%에 달하는 프로세스는 병렬로 처리하더라도 모든 CPU를 또다시 점유할 가능성이 높습니다.

perf 명령을 이용해서 어떤 함수 또는 루프에서 대부분의 시간이 소요되는지 확인해 보세요. 의도하지 않게 과도하게 수행되고 있다면 그 부분을 수정하는 것이 해결책에 가깝습니다.

ljs0652의 이미지

답변 감사합니다. 그렇다면 100%가 아닌 70~80퍼를 차지하는 점유율을 나누는 것은 가능한가요??
제가 지금 해보고 있는데
a라는 작업을 10초 걸려 점유율을 70퍼 정도 쓴다면
병렬처리를 하면 130퍼 정도 써서 더 빠르게 끝내게 되버립니다
같은 시간에 다른 cpu 코어를 공유해 처리하는 방법은 없을까요?

라스코니의 이미지

음... 잘 이해는 안되지만 10초 정도의 처리시간이 꼭 필요하신가 보네요?
병렬 처리를 해서 더 빠르게 끝난다면 타이머등을 써서 10초 이후에 다른 작업을 하도록 하면 되지 않을까요?

ljs0652의 이미지

아 저거는 예시로 말씀 드린거에요 ㅠㅠ
만약 프로세스가 24시간동안 계속해서 돌때 cpu 한쪽 점유율이 계속 높게 나올경우 그 cpu 부담을 다른 cpu와 분배해서 부담을 줄일 수 있는 방법이 있지 않을까 하는 생각을 하고 있습니다

라스코니의 이미지

가능은 할 것 같지만 그에 해당하는 작업은 그래픽 처리나 음성/영상 처리같은 분배된 작업간 연관관계가 적은 것들에 국한될 것 같네요. 결국은 openMP 등을 써서 분배를 하게 될 텐데요.

24/7 계속 도는 프로세스가 어떤 일을 처리하기에 CPU 점유율이 높은가요? 비트코인 마이닝 같은 블록체인과 비슷한 건가요?

jick의 이미지

CPU가 무슨 자동차 타이어도 아니고 한쪽 코어만 쓴다고 그쪽이 빨리 닳거나 하지는 않습니다.

목표를 명확하게 설정해 보시는 게 어떨까요. "속도는 충분하지만 (전기사용량이나 다른 같이 도는 프로세스를 위해) 전체적인 CPU 점유율을 줄이고 싶다"가 목표인가요?

shint의 이미지

- CPU Limit 점유율 제한
- MMX SSE 사용
- DXVA2 VPU 사용
- GPGPU / OpenCL / OpenGL 사용
- Docker Container 사용
- RPC 사용
- 전원 설정 사용
- CMOS BIOS - CPU 클럭 조정
- DosBox 기능이 좋습니다.

CPU LImit
http://blog.scoutapp.com/articles/2014/11/04/restricting-process-cpu-usage-using-nice-cpulimit-and-cgroups
https://www.howtoforge.com/how-to-limit-cpu-usage-of-a-process-with-cpulimit-debian-ubuntu

Configure Minimum and Maximum CPU Constraints for a Namespace
https://kubernetes.io/docs/tasks/administer-cluster/manage-resources/cpu-constraint-namespace/

kubectrl

Assign CPU Resources to Containers and Pods
https://kubernetes.io/docs/tasks/configure-pod-container/assign-cpu-resource/

Set max limit on cpu usage - Docker
https://www.reddit.com/r/docker/comments/7ph78v/set_max_limit_on_cpu_usage/

CPU Resource Restriction
https://support.hostgator.com/articles/cpu-resource-restriction

Red Hat Enterprise Linux technology capabilities and limits
https://access.redhat.com/articles/rhel-limits

Does Ubuntu support Core Parking?
https://askubuntu.com/questions/185826/does-ubuntu-support-core-parking

4. 하드웨어의 핵심, 마더보드와 CPU
https://wiki.kldp.org/KoreanDoc/html/Hardware-Choice/Hardware-Choice-KLDP-4.html

linux sar 로 CPU 사용률을 볼 때, %iowait 가 의미하는 것이 무었인가요?
https://kldp.org/node/143729

4. CPU/FPU
https://wiki.kldp.org/HOWTO/html/Hardware/Hardware-HOWTO-4.html

linux top 명령어 CPU% 의 기준은 어떻게 해서 계산되는건가요?
https://kldp.org/node/156590

Linux, Unix의 CPU 사용률에 대해..
https://kldp.org/node/155061

//
linux kernel 에서 CPU 사용률을 알려면 어떻게 하나요?
https://kldp.org/node/160114

linux kernel 에서 task 가 어느정도 시간을 running 했는지 알수 있나요?
https://kldp.org/node/160158

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

ljs0652의 이미지

감사합니다 참고해보겠습니다

댓글 달기

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