질문에 대한 저의 완전한 무지를 용서해 주십시오. 여기서 올바른 용어가 부족할 수도 있습니다...
단일 프로세스(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
.