feat(deploy): l4d2-game.slice + l4d2-build.slice with 100:1 weight ratio
Flat top-level slices. Game wins under contention; build still gets the box when uncontended. Referenced by left4me-server@.service and the script-sandbox systemd-run invocation.
This commit is contained in:
parent
7193163488
commit
ad7d73608e
3 changed files with 32 additions and 0 deletions
|
|
@ -0,0 +1,7 @@
|
||||||
|
[Unit]
|
||||||
|
Description=left4me script-sandbox build slice
|
||||||
|
Before=slices.target
|
||||||
|
|
||||||
|
[Slice]
|
||||||
|
CPUWeight=10
|
||||||
|
IOWeight=10
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
[Unit]
|
||||||
|
Description=left4me game-server slice
|
||||||
|
Before=slices.target
|
||||||
|
|
||||||
|
[Slice]
|
||||||
|
CPUWeight=1000
|
||||||
|
IOWeight=1000
|
||||||
|
|
@ -9,6 +9,8 @@ DEPLOY = ROOT / "deploy"
|
||||||
|
|
||||||
WEB_UNIT = DEPLOY / "files/usr/local/lib/systemd/system/left4me-web.service"
|
WEB_UNIT = DEPLOY / "files/usr/local/lib/systemd/system/left4me-web.service"
|
||||||
SERVER_UNIT = DEPLOY / "files/usr/local/lib/systemd/system/left4me-server@.service"
|
SERVER_UNIT = DEPLOY / "files/usr/local/lib/systemd/system/left4me-server@.service"
|
||||||
|
GAME_SLICE = DEPLOY / "files/usr/local/lib/systemd/system/l4d2-game.slice"
|
||||||
|
BUILD_SLICE = DEPLOY / "files/usr/local/lib/systemd/system/l4d2-build.slice"
|
||||||
GLOBAL_REFRESH_SERVICE = DEPLOY / "files/usr/local/lib/systemd/system/left4me-refresh-global-overlays.service"
|
GLOBAL_REFRESH_SERVICE = DEPLOY / "files/usr/local/lib/systemd/system/left4me-refresh-global-overlays.service"
|
||||||
GLOBAL_REFRESH_TIMER = DEPLOY / "files/usr/local/lib/systemd/system/left4me-refresh-global-overlays.timer"
|
GLOBAL_REFRESH_TIMER = DEPLOY / "files/usr/local/lib/systemd/system/left4me-refresh-global-overlays.timer"
|
||||||
SANDBOX_UNIT_DIR = DEPLOY / "files/usr/local/lib/systemd/system"
|
SANDBOX_UNIT_DIR = DEPLOY / "files/usr/local/lib/systemd/system"
|
||||||
|
|
@ -110,6 +112,22 @@ def test_server_unit_contains_perf_baseline_directives():
|
||||||
assert "LogRateLimitIntervalSec=0" in unit
|
assert "LogRateLimitIntervalSec=0" in unit
|
||||||
|
|
||||||
|
|
||||||
|
def test_l4d2_game_slice_exists_with_high_weights():
|
||||||
|
assert GAME_SLICE.is_file()
|
||||||
|
text = GAME_SLICE.read_text()
|
||||||
|
assert "[Slice]" in text
|
||||||
|
assert "CPUWeight=1000" in text
|
||||||
|
assert "IOWeight=1000" in text
|
||||||
|
|
||||||
|
|
||||||
|
def test_l4d2_build_slice_exists_with_low_weights():
|
||||||
|
assert BUILD_SLICE.is_file()
|
||||||
|
text = BUILD_SLICE.read_text()
|
||||||
|
assert "[Slice]" in text
|
||||||
|
assert "CPUWeight=10" in text
|
||||||
|
assert "IOWeight=10" in text
|
||||||
|
|
||||||
|
|
||||||
def _fake_command(tmp_path, command_name):
|
def _fake_command(tmp_path, command_name):
|
||||||
marker = tmp_path / f"{command_name}.args"
|
marker = tmp_path / f"{command_name}.args"
|
||||||
command = tmp_path / command_name
|
command = tmp_path / command_name
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue