From: Friedrich Weber <f.weber@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH manager 2/2] partially fix #5392: pvedaemon: make number of workers configurable
Date: Tue, 29 Jul 2025 17:50:57 +0200 [thread overview]
Message-ID: <20250729155227.157120-4-f.weber@proxmox.com> (raw)
In-Reply-To: <20250729155227.157120-1-f.weber@proxmox.com>
The number of pvedaemon worker processes is currently hardcoded to 3.
This may not be enough for automation-heavy workloads that trigger a
lot of API requests that are synchronously handled by pvedaemon.
Hence, read /etc/default/pvedaemon when starting pvedaemon and allow
overriding the number of workers by specifying MAX_WORKERS in this
file. All other values are only relevant for pveproxy/spiceproxy and
thus ignored.
Signed-off-by: Friedrich Weber <f.weber@proxmox.com>
---
Notes:
I'm not sure if reading /etc/default/pvedaemon, which was not used
until now, is a good solution here, but I decided to go for it because
it seems relatively straightforward and analogous to pveproxy.
Also here, I decided against setting max_workers directly directly in
%daemon_options, to avoid having to call read_proxy_config already
then. If I understand correctly, overriding $self->{max_workers} in
init should be fine because it's only used in PVE::Daemon's
$server_run after init was called.
changes since rfc:
none
PVE/Service/pvedaemon.pm | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/PVE/Service/pvedaemon.pm b/PVE/Service/pvedaemon.pm
index 9d7cbc0f..4493f234 100755
--- a/PVE/Service/pvedaemon.pm
+++ b/PVE/Service/pvedaemon.pm
@@ -15,7 +15,7 @@ use base qw(PVE::Daemon);
my $cmdline = [$0, @ARGV];
my %daemon_options = (
- max_workers => 3,
+ max_workers => 3, # may be overridden in init
restart_on_error => 5,
stop_wait_time => 15,
leave_children_open_on_reload => 1,
@@ -26,6 +26,10 @@ my $daemon = __PACKAGE__->new('pvedaemon', $cmdline, %daemon_options);
sub init {
my ($self) = @_;
+ # all options other than MAX_WORKERS are ignored
+ my $proxyconf = PVE::APIServer::Utils::read_proxy_config($self->{name});
+ $self->{max_workers} = $proxyconf->{MAX_WORKERS} if $proxyconf->{MAX_WORKERS};
+
my $accept_lock_fn = "/var/lock/pvedaemon.lck";
my $lockfh = IO::File->new(">>${accept_lock_fn}")
--
2.47.2
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
next prev parent reply other threads:[~2025-07-29 15:51 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-29 15:50 [pve-devel] [PATCH docs/http-server/manager 0/4] fix #5392: pveproxy, pvedaemon: make number of worker processes configurable Friedrich Weber
2025-07-29 15:50 ` [pve-devel] [PATCH http-server 1/1] api server: proxy config: read MAX_WORKERS integer key Friedrich Weber
2025-07-29 19:20 ` [pve-devel] applied: " Thomas Lamprecht
2025-07-29 15:50 ` [pve-devel] [PATCH manager 1/2] partially fix #5392: pveproxy: make number of workers configurable Friedrich Weber
2025-07-29 19:19 ` [pve-devel] applied: " Thomas Lamprecht
2025-07-29 15:50 ` Friedrich Weber [this message]
2025-07-29 19:19 ` [pve-devel] applied: [PATCH manager 2/2] partially fix #5392: pvedaemon: " Thomas Lamprecht
2025-07-29 15:50 ` [pve-devel] [PATCH docs 1/1] pveproxy, pvedaemon: document MAX_WORKERS setting Friedrich Weber
2025-07-29 19:20 ` [pve-devel] applied: " Thomas Lamprecht
-- strict thread matches above, loose matches on Subject: below --
2025-07-29 11:34 [pve-devel] [RFC http-server/manager 0/3] fix #5392: pveproxy, pvedaemon: make number of worker processes configurable Friedrich Weber
2025-07-29 11:34 ` [pve-devel] [PATCH manager 2/2] partially fix #5392: pvedaemon: make number of workers configurable Friedrich Weber
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250729155227.157120-4-f.weber@proxmox.com \
--to=f.weber@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.