저는 Red Hat 8.1 서버를 사용하고 있습니다. cgroup을 사용하여 사용자를 제한하고 싶습니다. *.conf를 읽을 때 작업 순서를 이해할 수 없습니다. 현재 다음 파일이 있습니다.
[root@log01 ~]# cat /etc/systemd/system/user-.slice.d/cpu.conf
[Slice]
CPUQuota=80%
[root@log01 ~]# cat /etc/systemd/system/user-123.slice.d/cpu.conf
[Slice]
CPUQuota=50%
[root@log01 ~]# cat /etc/systemd/system/user-123.slice.d/memory.conf
[Slice]
MemoryMax=4G
[root@log01 ~]# cat /etc/systemd/system/user-0.slice.d/cpu.conf
[Slice]
CPUQuota=3200%
문서에 대한 나의 이해에 따르면 user-.slice.d
모든 사용자를 위해 설정되었습니다.
user-123.slice.d
와 user-0.slice.d
의 설정을 재정의하는 데 사용합니다 user-.slice.d
.
질문:
- 여기서 작업 순서는 무엇입니까?
user-.slice.d
당신은 항상 다른 사람보다 먼저 책을 읽습니까? - conf 파일을 읽는 작업 순서는 무엇입니까
user-123.slice.d
?cpu.conf
이전에 읽어야 할까요, 아니면 이후에 읽어야 할까요memory.conf
?*.conf
원하는 대로 파일 이름을 지정할 수 있는 것 같습니다 .
답변1
systemd 장치 매뉴얼 페이지에서:https://www.freedesktop.org/software/systemd/man/systemd.unit.html, 이 부분:
유닛 파일 외에도
foo.service
"insert" 디렉터리가 있을 수 있습니다.foo.service.d/
접미사 ".conf"가 있는 이 디렉터리의 모든 파일은 영숫자 순서로 병합되고 기본 장치 파일 자체 다음에 구문 분석됩니다. 이는 유닛 파일을 수정하지 않고 유닛의 구성 설정을 변경하거나 추가하는 데 유용합니다. 포함된 각 파일에는 적절한 섹션 제목이 포함되어야 합니다. 인스턴스화된 유닛의 경우 이 로직은 먼저 인스턴스 ".d/" 하위 디렉터리(예: "[이메일 보호됨]/") 및 해당 ".conf" 파일을 읽은 다음 템플릿 ".d/" 하위 디렉터리(예: "[이메일 보호됨]/") 및 ".conf" 파일이 있습니다. 또한 대시("-")가 포함된 유닛 이름의 경우 대시 뒤의 모든 유닛 이름을 반복적으로 잘라서 생성된 디렉터리 집합도 검색됩니다foo-bar-baz.service
. 장치 이름은 일반 드롭인 디렉터리뿐만 아니라foo-bar-baz.service.d/
에서도 검색됩니다foo-bar-.service.d/
.foo-.service.d/
이는 이름이 공통 접두사로 시작하는 관련 장치 그룹에 대한 공통 드롭인을 정의하는 데 유용합니다. 이 구성표는 마운트, 자동 마운트 및 슬라이스에 적용됩니다. 단위는 특히 유용합니다. 시스템 명명 구조는 구성 요소 구분 기호로 대시를 중심으로 구축되었습니다. 접두사 계층 구조에서 더 아래에 삽입된 파일은 더 높은foo-bar-.service.d/10-override.conf
위치에 있습니다foo-.service.d/10-override.conf
.
답변2
내 지역 Red Hat 전문가에 따르면 단일 프로세서 또는 단일 사용자를 제한하는 도구를 ulimit
사용하여 사용자 그룹을 제한하는 것이 가장 좋은 것으로 나타났습니다 .cgroups
내 전문가에 따르면 위 구성이 내가 원하는 대로 작동한다고 합니다. 그런 다음 모든 사용자에 대해 제한이 설정됩니다 user-slice.d/
(Edward가 제안한 대로).답변) 대시 뒤의 UID를 검색하세요.
따라서 의 설정은 실제로 UID=0인 사용자(예: 루트)에게만 설정된 설정을 user-0.slice.d
재정의합니다 .user-.slice.d