CPU 코어가 하나만있는 프로그램을 실행하는 방법은 무엇입니까?


28

Terminator에서 게임 서버와 관련된 많은 스크립트를 실행하려고합니다. 유일한 문제는 내가 할 때 Terminator가 모든 CPU 코어와 PC 지연을 감지한다는 것입니다. 시작하는 방법이 있습니까?하지만 CPU 코어가 하나만 있다고 생각하도록 속이십시오.


2
안녕하세요, 여기 xy 문제로 고통 받고있는 것 같습니다. 때로는 달성하려는 것을 되돌아 볼 가치가 있으며 때로는 시도한 해결책이 아닙니다. 필요한 것은 속도를 늦추지 않고 프로그램을 실행하는 것 같습니다. 하나의 코어에서 무언가를 실행하는 것이 아니라 PC. 적은 것은 아니지만 이것은 매우 좋은 질문입니다. +1
Vality

답변:


44

terminator주어진 프로세스의 모든 CPU에서 "확산"하는 것은 아닙니다 . 리눅스 자체 (커널)가 이것을하고 있습니다. 작업 (프로세스)은 기본적으로 모든 CPU에서 실행되도록 예약되어 있습니다. 스레드를 사용하는 경우 한 번에 둘 이상의 CPU를 사용할 수 있습니다.

프로세스를 특정 CPU로 제한하려면 명령을 사용하십시오 taskset.

taskset --cpu-list 1,2 my_command 

이 명령은 my_command가 CPU # 1 또는 # 2에서만 실행되도록합니다.

자세한 내용을 보려면 man taskset"linux CPU affinity"를 입력 하거나 검색 하십시오 (먼저 여기를 누르 십시오 ).


2
그건 그렇고, "불량한"프로세스를 되풀이하여 스케줄링 우선 순위를 낮출 수도 있습니다.
Matteo Italia

@MatteoItalia 우분투 13.10 및 14.04는 기본적으로 좋은 수준을 무시합니다. 당신은 추가해야 kernel.sched_autogroup_enabled = 0/etc/sysctl.conf그것을 작동하게 할 수 있습니다. 그러나 자동 그룹이 비활성화되어 있으면 부팅하는 동안 13.10이 커널 패닉을 자주 겪는 것으로 나타났습니다.
kasperd

부모 프로세스의 자식 프로세스는 어떻습니까? 부모 프로세스의 핵심 / CPU 선호도를 상속합니까?
yildizabdullah

5

다른 답변이 이미 문자 그대로의 답변을 제공했지만 이것이 올바른 방법으로 수행되지 않을 가능성을 탐색 할 것입니다. 대신 nice명령을 사용하여 컴퓨터 (대화식 스크립트가 아닌)의 속도를 저하시키지 않으려는 스크립트를 실행해야합니다 .

이렇게하려면 nice로 실행하려는 명령 앞에 접두사를 붙입니다. 예를 들어, nice command_to_run 이렇게하면 프로그램이 다른 작업보다 우선 순위가 낮아지고 시스템 속도가 느려지지 않습니다. 긴 컴파일을 수행 할 때 종종이 기술을 사용하여 PC를 크롤링하는 속도를 늦출 수 있습니다.이 기능은 컴퓨터가 사용 중이 아닐 때 프로그램이 모든 코어를 사용하도록 허용하지만 무언가를 실행할 때 빠르게 사용하지 않을 수 있다는 이점이 있습니다 그밖에.


"nice open terminator"와 같은 명령을 사용하면 모든 CPU 코어에서 종료 기가 실행됩니까?
user245115

어쨌든, 마우스를 움직여도 아무것도 열리지 않으면 모든 CPU를 사용합니까? 그리고 모든 CPU를 사용하기 위해 마우스 이동을 멈 추면 얼마나 걸립니까? 그리고 taskset과 함께 사용할 수 있습니까? (예, 저는 Linux에서 정말 멍청한 사람입니다.)
user245115

@ user245115 nice 유틸리티를 사용하면 터미네이터가 여러 개의 CPU 코어를 사용할 수 있지만, 다른 프로그램 (nice로 실행되지 않음)에서 해당 코어를 사용하려는 경우 해당 코어 사용을 즉시 중지하므로 속도 저하가 발생하지 않습니다. 완전히 자유롭고 사용되지 않은 경우 사용하십시오. 마우스 사용이나 프로그램과의 다른 상호 작용에 영향을받지 않아야합니다.
Vality

@ user245115이 taskset nice open terminator두 가지를 모두 사용하기 위해 간단히 작업 세트와 함께 사용할 수도 있습니다 . 그러나 프로그램의 리소스 사용량을 줄이는 효과를 얻기 위해 두 개의 다른 프로그램을 사용하게되므로 이는 너무 과도합니다.
Vality

@ user245115 (마우스 이동과 같은) 다른 작업을 수행하는 순간 종료 자에게 CPU 시간이 줄어 듭니다. 이는 사실상 즉각적이며 다른 활동을 중지하자마자 다시 사용하게됩니다 (실제로는 즉시)
Vality
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.