Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tsYPs-0035HY-Mi for pgsql-admin@arkaria.postgresql.org; Thu, 13 Mar 2025 02:35:25 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tsYPr-001RBo-59 for pgsql-admin@arkaria.postgresql.org; Thu, 13 Mar 2025 02:35:23 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tsYPq-001R8S-Cb for pgsql-admin@lists.postgresql.org; Thu, 13 Mar 2025 02:35:22 +0000 Received: from mail-yb1-xb30.google.com ([2607:f8b0:4864:20::b30]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tsYPn-002XB7-2B for pgsql-admin@lists.postgresql.org; Thu, 13 Mar 2025 02:35:20 +0000 Received: by mail-yb1-xb30.google.com with SMTP id 3f1490d57ef6-e6343c68b8fso402619276.2 for ; Wed, 12 Mar 2025 19:35:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=joeconway.com; s=google; t=1741833319; x=1742438119; darn=lists.postgresql.org; h=content-transfer-encoding:in-reply-to:autocrypt:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:from:to:cc:subject:date:message-id:reply-to; bh=KHyapPO+LcOA+vXdk4+GYd2B9Q6GCInhfZFRNdJSlaE=; b=lzTeRX08S2xjVm9aeNI0BVd9vXO3oUmNodILUdT5TfYHpXdoUtp6Hvl/I9RiabCLMu 7TCV7bmwjvEFl8/d1UacMOEXbNTrB7hglmLLuztrvQ2+SD3ZJoX27vcV1f/CaYTpXMmC UHkQZ7FFWKVqcR5KOzrCebz0Uvf4kI8zzQJQlb/EZAV2JvODC/AipwP48I8Kb3BK1ugq eo1Yse85YMNit2KzteYOG+gdiRQNWZZHsYqbmaEaA1+zNdYG5DGykv7GKzt7pyD0Uxgy 3s04aM8D4KRlwb7QLbIriNyGfc6sk0lGODU1RqzjU0MKaZc7fDK6tyiCYFPAD553mnAQ Je0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741833319; x=1742438119; h=content-transfer-encoding:in-reply-to:autocrypt:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=KHyapPO+LcOA+vXdk4+GYd2B9Q6GCInhfZFRNdJSlaE=; b=ebhv/H6DNSbjaPCC5O+vkYMo0aBJ+sBWRh/r9V2NZRp0v2fuL0jfCz4FLV+OGrUwA4 8HIajfLcKCJxi0P6hybJe458Gdv92xvw/Nwj1ljMbDaacGTAYGiLD9Dc63zReUgEMb5q cETsEZQZtEEz65tRG/YnyTyiSxRYw0ZNBoZuErVl4iapHiQbefPo0RmK+wa1qrYfNUGz CPWu+XAzbcDuqN+hsoGvaRIbQKGDIittk/cN9VIT7ZwsvrWImu+RZd6aP5OhNNuRWzs9 R//MLlqzihQ8v8b3njH4ZhKBWpMiytJ3pws2cerdhb4r3738wOPVJz2uqUGbpLAkjNIE y2Mg== X-Forwarded-Encrypted: i=1; AJvYcCUcDhX/A3SLEn4PFIaex21urUvENu6GM4U/xtJQe2QPgF9YbdzF0U2CeggWbiZf7wLrGcj2fgYPQZaZVQ==@lists.postgresql.org X-Gm-Message-State: AOJu0YyuzzkCl7M4CEp9/8Tb/1DcyXcc9KdKvCVbmmT87gGb0B0kcM38 bwdYG8+7B9J+y+tv8c86quEH9rlACqCxycPylQheGzs0R/wKE11W/bkpVaTQ7xU= X-Gm-Gg: ASbGncsNWbIqr1KgOeZhe/LWxBjw5du1pXImcc1lZ3TwwtI038aLd683018ja+CT6F6 chauTxKY8PnROR3Y4EBlmL968KBW5Nf9gK5cj7i/xqxfK/pXsaOL4Y3IPvevJBuxsZB8Bmamps2 UqdqaH0ChyUsnFUGiYaUW4juIqLcNlC+48q5evZUcWsezr4CYFhxGikMqYdeTj28gB0Yve9OXC4 /5Kbzc/i93g9g8133AnWCzbaZxNvZiIZCIvHWkD8PfiJ63lTcKWmvMzXbts4QGHpfBbFysCvN0n pqEfC3b1fOvSrpdjZU0sH6hzX3Jq9IYD2pAJgJzpf3JcEcysmJzVmqhAx7dKr/vZvSlugkXYpSV q/y0VRCv9rz5A83TWyBghIlmD X-Google-Smtp-Source: AGHT+IG0lh+Pkp5VQ0WB0HJnqqhd/hRgYqbIWzBaHOkA8ecixr2pTB0ojjd6sHw97Gpgrdt/1f+3ng== X-Received: by 2002:a05:6902:1aca:b0:e60:b1ba:5778 with SMTP id 3f1490d57ef6-e635c1f9fa8mr33068815276.47.1741833318873; Wed, 12 Mar 2025 19:35:18 -0700 (PDT) Received: from [192.168.4.41] (162-239-31-113.lightspeed.dybhfl.sbcglobal.net. [162.239.31.113]) by smtp.gmail.com with ESMTPSA id 3f1490d57ef6-e63e53fccd3sm87736276.3.2025.03.12.19.35.17 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 12 Mar 2025 19:35:18 -0700 (PDT) Message-ID: Date: Wed, 12 Mar 2025 22:35:17 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Getting out ahead of OOM To: Joseph Hammerman Cc: Tom Lane , pgsql-admin@lists.postgresql.org References: <1117736.1741375563@sss.pgh.pa.us> Content-Language: en-US From: Joe Conway Autocrypt: addr=mail@joeconway.com; keydata= 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 In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On 3/12/25 18:21, Joseph Hammerman wrote: > Joe, can you expand on your recommendation to use cgroup-v2? We're > trying to collect our complete rationale for our request to our internal > team that is tasked with rolling out this configuration change. cgroup-v2 has a much better measure of memory pressure (see PSI[1]), better ability to reclaim memory pages[4], safer delegation, and other advantages. When I last looked the kube support for it was still brand new, but it appears to be well supported now [2][3]. In particular, this statement from [3] is important: Memory QoS uses memory.high to throttle workload approaching its memory limit, ensuring that the system is not overwhelmed by instantaneous memory allocation. With cgroup-v1 a kube memory limit would set memory.limit and usage of the pod (sum across all processes in the pod cgroup) was tracked with memory.usage_in_bytes. Whenever the latter exceeds the former, the OOM killer will whack the process in the pod cgroup with the highest oom_score, irrespective of how much free memory may be available at the host level. With cgroup-v2 it appears that kube uses memory.high[5], which is more of a throttle/soft limit. In cgroup-v2 there is also a new memory.max[6] which is essentially the same as what memory.limit was in v1. Exceeding memory.max would invoke the OOM killer, but since kubernetes limits the pod memory with memory.high, the OOM killer should be avoided. Note that I cannot claim a bunch of hands on experience with this (cgroup-v2 with kubernetes), so please do your own testing and YMMV, etc. [1] https://docs.kernel.org/accounting/psi.html#psi [2] https://kubernetes.io/docs/concepts/architecture/cgroups/ [3] https://kubernetes.io/docs/concepts/workloads/pods/pod-qos/#memory-qos-with-cgroup-v2 [4] https://docs.kernel.org/admin-guide/cgroup-v2.html#:~:text=memory.reclaim [5] https://docs.kernel.org/admin-guide/cgroup-v2.html#:~:text=memory.high [6] https://docs.kernel.org/admin-guide/cgroup-v2.html#:~:text=memory.max -- Joe Conway PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com