공유서버 자원관리

공유서버 자원관리

소수의 개발자가 공유하는 Ubuntu LTS를 실행하는 온프레미스 Xeon 서버가 있습니다. 각 개발자는 자신의 사용자로 로그인하여 다양한 워크로드를 실행합니다. 우리가 경험하는 문제는 때때로 CPU 또는 스토리지에 광범위한 작업 부하를 실행하고 다른 사용자가 실제로 컴퓨터에서 작업할 수 없고 셸이 응답하지 않는 경우입니다.

우리는 빌드 시 사용자에게 CPU 사용률을 제한하도록 요청하여 CPU 문제를 해결했지만 분명히 디스크 IO 사용률이 계속 문제가 되고 있습니다. 우리는 SSD 스토리지를 사용하고 있습니다.

리소스를 엄격하게 제한하고 싶지 않기 때문에 서버에서 가상 머신을 사용하는 것은 불가능합니다. 우리는 단지 다른 사용자가 자원이 고갈되지 않도록 하고 싶을 뿐입니다.

우리에게는 어떤 선택이 있습니까?

답변1

워크로드 수정은 얼마나 유연합니까? 프로세스의 우선순위를 제한하여 프로세스가 얻을 수 있는 슬라이스의 양을 제한할 수 있는 nice와 같은 유틸리티가 있습니다.

https://www.geeksforgeeks.org/nice-and-renice-command-in-linux-with-examples/#

그러나 이미 언급한 것처럼 이 솔루션은 완벽하지 않습니다. 여기서 문제는 단 한 명의 사용자만 켜져 있을 때 시스템을 최대한 활용하지 못할 가능성이 높기 때문입니다. 그리고 그것은 새로운 문제일 수도 있습니다.

디스크 IO, 다른 분들이 여기에 대한 답변과 같은 솔루션을 요청하고 해결했습니다.https://unix.stackexchange.com/questions/536007/cgroups-throttle-per-user-disk-io-bandwidth-on-linux

아마도 완벽한 솔루션은 없을 것 같습니다. 이것이 바로 공유 리소스를 보다 효율적으로 사용하기 위해 가상화와 같은 기술이 대중화되는 이유입니다.

Linux의 모든 것과 마찬가지로, 더 많은 작업이 있을 수 있습니다(그리고 이를 활용하도록 설계된 시스템도 있을 수 있습니다).

IMHO가 이를 올바르게 수행하려면 커널 수준에서 일부 스케줄링이 필요하거나 이미 존재하는 스케줄링 옵션을 사용하기 위한 일부 인터페이스가 필요할 수 있습니다. 나는 아무것도 모릅니다. ...하지만 이전에는 제가 틀렸기 때문에 다른 사람이 해결책을 제시하면 저도 배울 것입니다! 그래서 양보를 받아들이지 않고서는 답이 없다는 것이 답일 수도 있다.

관련 정보