From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 41713C1C29 for ; Thu, 18 Jan 2024 15:55:39 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 22FFA175AD for ; Thu, 18 Jan 2024 15:55:39 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Thu, 18 Jan 2024 15:55:38 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 26E6C491C1 for ; Thu, 18 Jan 2024 15:55:38 +0100 (CET) From: Markus Frank To: pmg-devel@lists.proxmox.com Date: Thu, 18 Jan 2024 15:55:32 +0100 Message-Id: <20240118145532.1362939-1-m.frank@proxmox.com> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.033 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record T_SCC_BODY_TEXT_LINE -0.01 - URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [proxmox.com, config.pm] Subject: [pmg-devel] [PATCH pmg-api v3] config: adjust max_filters calculation to reflect current memory usage X-BeenThere: pmg-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Mail Gateway development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Jan 2024 14:55:39 -0000 Change max_filters calculation for systems with recommended memory setup (>4GB). The values of 2816 and 150 are based on testing with 4GB, 6GB & 8GB memory configurations, large and small numbers of added objects and sending multiple mails simultaneously. On setups with less memory, it is difficult to completely prevent OOM kills. So for these setups the calculation remains similar, but a warning is sent. Related OOM killer problem found in forum: https://forum.proxmox.com/threads/123531/ Signed-off-by: Markus Frank --- Tested edge cases with setting min_servers to max_servers in src/bin/pmg-smtp-filter src/PMG/Config.pm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/PMG/Config.pm b/src/PMG/Config.pm index 7339e0d..061396e 100644 --- a/src/PMG/Config.pm +++ b/src/PMG/Config.pm @@ -459,8 +459,17 @@ sub get_max_filters { my $max_servers = 5; my $servermem = 120; + my $base; my $memory = physical_memory(); - my $add_servers = int(($memory - 512)/$servermem); + if ($memory < 3840) { + warn "low amount of system memory installed, recommended is 4+ GB\n" + ."to prevent OOM kills, it is better to set max_filters manually\n"; + $base = $memory > 1536 ? 1024 : 512; + } else { + $base = 2816; + $servermem = 150; + } + my $add_servers = int(($memory - $base)/$servermem); $max_servers += $add_servers if $add_servers > 0; $max_servers = 40 if $max_servers > 40; -- 2.39.2