/etc/systemd/system/*에 있는 cgroup 구성 파일의 작업 순서 이해

/etc/systemd/system/*에 있는 cgroup 구성 파일의 작업 순서 이해

저는 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.duser-0.slice.d의 설정을 재정의하는 데 사용합니다 user-.slice.d.

질문:

  1. 여기서 작업 순서는 무엇입니까? user-.slice.d당신은 항상 다른 사람보다 먼저 책을 읽습니까?
  2. 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

관련 정보