diff --git a/daemon/libvirtd.service.in b/daemon/libvirtd.service.in index c72dde564f..899abdf37e 100644 --- a/daemon/libvirtd.service.in +++ b/daemon/libvirtd.service.in @@ -24,8 +24,11 @@ ExecStart=@sbindir@/libvirtd $LIBVIRTD_ARGS ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure -# Override the maximum number of opened files -#LimitNOFILE=2048 +# At least 1 FD per guest, often 2 (eg qemu monitor + qemu agent). +# eg if we want to support 4096 guests, we'll typically need 8192 FDs +# If changing this, also consider virtlogd.service & virtlockd.service +# limits which are also related to number of guests +LimitNOFILE=8192 [Install] WantedBy=multi-user.target diff --git a/src/locking/virtlockd.service.in b/src/locking/virtlockd.service.in index 69b568f8e4..c369591267 100644 --- a/src/locking/virtlockd.service.in +++ b/src/locking/virtlockd.service.in @@ -13,6 +13,10 @@ ExecReload=/bin/kill -USR1 $MAINPID # cause the machine to be fenced (rebooted), so make # sure we discourage OOM killer OOMScoreAdjust=-900 +# Needs to allow for max guests * average disks per guest +# libvirtd.service written to expect 4096 guests, so if we +# allow for 4 disks per guest, we get: +LimitNOFILE=16384 [Install] Also=virtlockd.socket diff --git a/src/logging/virtlogd.service.in b/src/logging/virtlogd.service.in index 09e0740149..8b67317cb1 100644 --- a/src/logging/virtlogd.service.in +++ b/src/logging/virtlogd.service.in @@ -13,6 +13,11 @@ ExecReload=/bin/kill -USR1 $MAINPID # cause the machine to be fenced (rebooted), so make # sure we discourage OOM killer OOMScoreAdjust=-900 +# Need to have at least one file open per guest (eg QEMU +# stdio log), but might be more (eg serial console logs) +# libvirtd.service written to expect 4096 guests, so if we +# guess at 2 log files per guest here (stdio + 1 serial): +LimitNOFILE=8192 [Install] Also=virtlogd.socket