
급여 등급 이상의 이유로 베어메탈 OS가 있는 물리적 호스트에서 DB 서버의 여러 인스턴스를 실행해야 합니다. 또한 각 인스턴스의 물리적 메모리 사용을 제한해야 합니다.
수십 개의 인스턴스를 시작하기 위해 템플릿 단위 파일을 사용하고 있습니다. EnvironmentFile
각 인스턴스에 대해 서로 다른 환경 변수와 명령줄 인수를 지정하는 데 사용하고 있습니다 .
그러나 각 인스턴스에 대해 서로 다른 메모리 제한을 지정할 수도 있기를 원합니다. AFAICT, 환경 변수 대체는 MemoryHigh
.
나는 드롭인 파일이 답이 될 것이라고 생각했지만, 인스턴스화된 서비스에서 드롭인 파일을 사용하는 단 하나의 예도 찾을 수 없었습니다. 에 대한 하나의 드롭인 파일 myservice@1
, 에 대한 다른 드롭인 파일 등을 만들 수 있는 방법이 있습니까 myservice@2
?
$ cat /etc/systemd/system/[email protected]
[Unit]
Description=Something
After=syslog.target network.target
[Service]
Type=forking
EnvironmentFile=/etc/myservice/myservice.%i.env
ExecStart=/usr/bin/myservice $OPTIONS_FROM_ENV
MemoryHigh=4G
[Install]
WantedBy=multi-user.target
답변1
이 답변에서 내가 찾고 있는 것을 찾은 것 같습니다.https://serverfault.com/a/879705/62991
인스턴스 이름으로 드롭인 디렉터리를 생성하면 인스턴스화되지 않은 서비스와 마찬가지로 설정을 재정의할 수 있습니다.
아래 예에서 인스턴스에는 myservice
기본적으로 4GiB 메모리 제한이 있지만 자체 설정 myservice@1
도 있습니다. myservice@2
Fedora 25의 systemd 231에서는 잘 작동합니다.
$ cat /etc/systemd/system/[email protected]
[Unit]
Description=Something
After=syslog.target network.target
[Service]
Type=forking
EnvironmentFile=/etc/myservice/myservice.%i.env
ExecStart=/usr/bin/myservice $OPTIONS_FROM_ENV
MemoryHigh=4G
[Install]
WantedBy=multi-user.target
$ cat /etc/systemd/system/[email protected]/99-memory.conf
[Service]
MemoryHigh=10G
$ cat /etc/systemd/system/[email protected]/99-memory.conf
[Service]
MemoryHigh=20G