단일 프로세스의 유출량을 다른 CPU로 제한하는 방법

단일 프로세스의 유출량을 다른 CPU로 제한하는 방법

질문에 대한 저의 완전한 무지를 용서해 주십시오. 여기서 올바른 용어가 부족할 수도 있습니다...

단일 프로세스(R 세션)가 어떻게 우리 서버(n=72)의 모든 CPU로 유출될 수 있는지 이해하려고 합니다. 이는 주어진 객체나 작업에 필요한 메모리가 주어진 임계값을 초과할 때 발생하는 것으로 보입니다.

htop이 동작은 모든 CPU가 활용되는 것을 보여주는 다음 스크린샷에서 확인할 수 있습니다 .

여기에 이미지 설명을 입력하세요.

다음 출력에서 ​​볼 수 있듯이 이 시점에서 "marc"와 "ismael"은 모두 R에서 단일 세션을 실행하고 있습니다 top.

여기에 이미지 설명을 입력하세요.

Ismael의 프로세스는 특정 제한을 초과하여 CPU를 5000% 이상 사용하는 멀티스레딩이 발생했습니다. 이 동작은 대규모 계산의 경우 바람직할 수 있지만 서버 전체에서 많은 작업 속도가 느려지는 것 같습니다. 나에게 이런 일이 일어난 상황에서는 이 멀티스레딩이 계산 속도를 높이고 있는지조차 명확하지 않습니다.

무슨 일이 일어나고 있는지, 그리고 서버에서 작업 분배 성능을 향상시키기 위해 조정할 수 있는 설정이 있는지 설명해 줄 수 있나요?

미리 감사드립니다.

답변1

여기서 무슨 일이 일어나고 있는지, 무엇이 잘못되었는지, 어떻게 도와야 할지 전혀 모르지만 여러분 모두 nice.

nice프로그램을 사용하면 좋은 사용자가 작업을 낮은 우선 순위로 선언할 수 있으므로 다른 사람의 삶을 더 쉽게 만들기 위해 다른 사람의 껍질(어떤 이유로 "더 나은" 것이 아닌 한)의 우선 순위를 지정합니다.

달리고 htop지켜보세요:

이것을 실행하세요:

stress --cpu 4

다른 탭을 열고 다음 명령을 실행합니다.

nice -n 19 stress --cpu 4

후자는 다른 배치에 사용 가능한 CPU 시간이 남아 있는 경우에만 작동한다는 것을 알 수 있습니다.

나는 당신이 이스마엘이 "매우 우호적인" 방식으로 많은 제품을 출시할 것으로 기대한다고 말하고 싶습니다.

그렇지 않은 경우 htop슈퍼유저 권한으로 실행하고(가능한 경우) 프로그램 내에서 일괄 처리를 더 좋게 만들 수도 있습니다 htop.

관련 정보