저는 현재 회사 리소스에 액세스할 수 있는 학생 프로젝트(머신러닝)를 진행하고 있습니다. 그들은 Windows 서버에 데이터를 저장하지만 우리는 Linux 시스템을 사용하여 데이터에 액세스합니다. 할당량을 설정할 수 없는 것 같습니다. 그 이유는 데이터가 Windows 서버에 저장되어 있고 내 컨설턴트가 데이터가 저장된 컴퓨터에 액세스할 수 없기 때문인 것 같습니다. 문제는 학생들이 실수로 많은 양의 디스크 공간을 사용하는 경우가 있어 백업 공간이 크게 낭비되는 경우가 있다는 것입니다. 예를 들어, 저는 3일 동안 모델을 훈련하고 주기적으로 모델의 스냅샷을 만들었습니다. 결과적으로 100GB의 디스크 사용량이 발생합니다. 이것은 문제입니다.
이런 일을 예방하는 것이 가능한가요?
저는 30분 정도마다 로그인하는 모든 사용자에 대해 실행되는 CRON 작업을 고려하고 있습니다. CRON 작업은 사용자 홈 폴더(예:)의 디스크 사용량을 확인하고 du -s .
메모리를 너무 많이 사용하는 경우 해당 사용자의 모든 작업을 종료합니다. 제 컨설턴트는 이것이 컴퓨팅 시간(CPU 시간)이 많이 걸릴 것이라고 우려합니다.
방금 이것을 시도했는데 첫 번째 실행이 du -s .
후속 실행보다 훨씬 오래 걸렸습니다. 왜 이런 일이 발생합니까? 내가 제안하는 솔루션이 효과가 있습니까? 아니면 제가 설명하는 맥락에서 더 나은 솔루션이 있습니까? (우리가 사용하고 있는 컴퓨터에 대한 루트 액세스 권한이 있지만 홈 폴더가 있는 컴퓨터에는 루트 액세스 권한이 없습니다.)
답변1
귀하의 환경에 맞아야 합니다 du -s
. 고려해야 할 몇 가지 고려 사항은 다음과 같습니다.
- 사용자가 다른 사용자에게 쓰기 권한을 부여하는 경우
du
소유자에 관계없이 모든 파일을 고려하므로 보고된 숫자가 왜곡될 수 있습니다(권한을 부여한 사용자에게 벌금이 부과되므로 이 접근 방식을 방지하므로 이는 큰 문제가 아닙니다). - 고려해야 할 실제 비용은 CPU 시간이 아니라 디스크 I/O입니다.가능한전체 시스템 성능에 큰 영향을 미칩니다.가능한또한 사소하고 많은 요인에 따라 달라집니다.
- 많은 대형 디렉토리를 탐색하는 데는 30분이라는 오랜 시간이 걸릴 수 있습니다.가능한부족한
파일 시스템 캐시에 이미 메모리에 일부 데이터가 포함되어 있으므로 후속 du
실행은 첫 번째 실행(몇몇/작은 디렉터리의 경우)보다 훨씬 적은 시간이 걸릴 수 있습니다. 그러나 큰 디렉터리를 처리할 때 캐시 변동이 발생하고 첫 번째 실행보다 더 인라인적인 시간이 표시되므로 짧은 시간을 기준으로 계산하지 마십시오.