시스템 범위와 시스템 슬라이스의 차이점은 무엇입니까?

시스템 범위와 시스템 슬라이스의 차이점은 무엇입니까?

시스템 범위와 시스템 슬라이스의 차이점은 무엇입니까?

둘 다 자원 관리를 위한 것입니다. 하지만 조각만으로 무엇을 할 수 있고 범위만으로 무엇을 할 수 있을까요?

답변1

  • 제공하다지정된 대로 프로세스를 시작하는 방법을 systemd에 지시하는 단위 유형입니다.시스템 실행 프로그램. 서비스는 systemd에서 프로세스를 생성하는 유일한 메커니즘은 아니지만 장치나 소켓에 바인딩하지 않고 임의로 생성할 수 있다는 점에서 독특합니다.
  • 범위자체적으로 시작되지 않은 프로세스를 그룹화하는 방법을 systemd에 지시하는 단위입니다.

보시다시피 서비스와 범위는 모두 프로세스 그룹화를 위한 기본 요소입니다. 주목할 만한 몇 가지 차이점은 다음과 같습니다.

  • 범위는 단위 파일로 선언되지 않지만 다음을 사용하여 프로그래밍 방식으로 생성됩니다.systemd의 dbus API.
  • 서비스는 메인 프로세스(Main Process)라는 개념을 가지며, 서비스의 생명주기는 프로세스의 생명주기이다. 범위의 경우 단위의 수명 주기는 범위에 있는 프로세스가 하나 이상 존재하는 것과 관련됩니다.

이제 세 번째 단위 유형을 살펴보겠습니다.

  • 일부분서비스, ​​범위 및 기타 조각을 그룹화하는 단위입니다.
    • 범위를 사용하지 않는 이유는 무엇입니까? 범위는 다른 시스템 단위가 아닌 프로세스를 관리하기 때문입니다. 또한 파일을 사용하여 범위를 선언할 수 없으므로 이는 바람직합니다.
    • 대신 서비스를 사용해 보는 것은 어떨까요? 글쎄요, 서비스 자체는 실제로 범위와 슬라이싱을 캡슐화할 수 있으므로(나중에 이것이 얼마나 유용한지 살펴보겠습니다), 따라서 그것은 답이 아닙니다. 내 대답은 서비스가 실행 중인 항목과 의미론적으로 연결되어 있다는 것입니다. 슬라이스를 사용하면 프로세스를 실행하지 않고도 시스템 단위를 그룹화할 수 있습니다.

서비스, ​​범위 및 슬라이스는 지원되는 세 가지 시스템 단위 유형입니다.자원 통제. 여기에는 Linux 커널과의 systemd 인터페이스가 포함됩니다.c그룹 API. 세 가지 모두 유용하며 모든 기본 시스템 시스템에서 사용할 수 있습니다. 다음은 이를 사용하는 방법에 대한 몇 가지 예입니다.

  • 프로세스를 주기적으로 실행하려면 또는 systemd 생태계 어딘가의 자극에 응답하여 친숙할 수 있는 서비스를 사용해야 합니다.
  • 여러 서비스의 상대적인 리소스 사용량을 제어하려는 경우 슬라이싱을 사용할 수 있습니다.이 기사에 나와 있듯이. 단순한 서비스라면 해당 서비스 단위에서 리소스 제한을 구성하는 것만으로도 충분합니다. 그러나 해당 기사에서는 다음과 같은 이유로 슬라이싱이 정확합니다.
    • 이 계층 구조의 "상위"(예: 서비스를 함께 그룹화하는 단위)와 아무 관련이 없으므로 상위 서비스는 적용되지 않습니다. (또한 systemd가 이러한 일반 서비스 단위 그룹화를 수행하는 방법을 제공하는지 확실하지 않습니다. ).
    • 범위는 systemd에서 생성되지 않은 프로세스를 그룹화하는 데 사용됩니다. 여기서는 서비스 단위를 사용하여 프로세스를 생성할 수 있습니다. 다시 말하면,서비스를 사용하여 프로세스를 생성하는 경우 범위는 중요하지 않습니다..

시스템을 보다 완벽하게 이해하려면 다음을 수행하십시오.

  • systemd 프로세스 자체는 실제로 서비스로 존재할 수 없기 때문에 루트 슬라이스 아래에 범위가 지정됩니다.
  • 광범위하게 말하면, 시스템은 system.slice시스템 서비스 슬라이스와 user.slice사용자 슬라이스로 나누어지며, 궁극적으로 여기에는 사용자 프로세스가 포함됩니다.
  • 사용자가 로그인할 때(예: 그래픽 세션, 터미널 또는 SSH를 통해) systemd-loginctl.service다음을 설정합니다.
    • 템플릿은 [email protected]사용자의 슬라이스 내에서 인스턴스화됩니다. 이 서비스는 시스템 사용자 인스턴스를 시작합니다.
    • 이내에 [email protected]사용자에게 서비스를 제공하는 서비스입니다 session.slice. 서비스 사례입니다다른 장치를 그룹화하는 데 사용되며, 그 아래에 있는 다른 장치를 논리적으로 그룹화하면서 프로세스를 시작하기 때문에 가능합니다.

답변2

리소스 관리 트리의 파일 및 디렉터리와 약간 유사합니다.

  • 서비스, ​​조각 및 범위는 디렉터리를 나타냅니다.
  • 프로세스(PID가 있는 것)는 파일을 나타냅니다.
  • 슬라이스에는 파일이 포함될 수 없으며 다른 디렉터리만 포함될 수 있습니다.
    • 즉, 슬라이스는 프로세스를 직접 시작하지 않으며 그 아래에 슬라이스, 범위 또는 서비스가 있습니다.
  • 서비스 및 범위는 "서비스 또는 범위 디렉터리"가 아닌 "슬라이스 디렉터리" 아래에만 위치할 수 있습니다.
    • 따라서 디렉토리 트리의 모양은 조각에 의해서만 결정됩니다.

링크:

관련 정보