Re: To Swap, or not to Swap
Date: Thu, 30 Mar 2023 15:20:41 -0400
Message-ID: <c0c448a2-1b0b-0fad-c738-5b04d09e217b_at_gmail.com>
On 3/30/23 13:46, Jared Still wrote:
> I was recently asked by a colleague this same question.
>
> He had been asked by a client, with a fairly well regarded sysadmin team.
>
> They wanted to eliminate swap: here's why.
>
> If a process is consuming memory at a prodigious rate, then the OOM
> (out of memory) killer is going to catch up to it and kill it eventually.
>
> Their position was that with a swap partition, this process was
> prolonged far too long.
>
> Without swap, the process gets killed relatively quickly.
>
> With swap, it can take many minutes. The CPU spends so much time
> managing memory on swap (remember, we are at an OOM condition), which
> is slow, that the time to kill the process is prolonged to many minutes.
>
> At first my position was "what, no swap! we can't do that!"
>
> But, I decided to test it a bit.
>
> A small physical server, 4 cores and 32G of RAM, is running Oracle 19.3.
>
> A swingbench test is running, 10 sessions per core.
>
> When I cause an OOM condition with the 16G swap partition enabled, it
> took the system between 7.5-8 minutes to kill the process.
>
> (For the client, the amount of time was 20+ minutes.)
>
> And during that time, it was impossible to logon to the server. The
> CPU was too busy thrashing around in the swap partition.
>
> The next step of course is to disable the swap.
>
> Same OOM condition caused. Time to resolution is now 7 seconds.
>
> There is no swap to manage as if it were RAM.
>
> That is quite a bit difference.
>
> Of course I wondered 'what about paging in memory for new processes?',
> as that often uses a page in swap.
>
> Without swap, it just takes place in memory.
>
> Swap is also a landing place for some pages used to initialize
> processes, as they can only be used once.
>
> This is a minimal amount, and can just be left in memory.
>
> If one really wants to conserve, there is a thing called ZRAM
> (compressed memory) where those pages can be parked, instead of swap.
>
> So, does anyone see any other need for a swap partition?
>
> It seems to have outlived its usefulness.
>
> Jared Still
> Certifiable Oracle DBA and Part Time Perl Evangelist
> Principal Consultant at Pythian
> Oracle ACE Alumni
> Pythian Blog http://www.pythian.com/blog/author/still/
> Github: https://github.com/jkstill
> Personality: http://www.personalitypage.com/INTJ.html
>
>
Hi Jared,
I will assume that your operating system is Linux. Did you try limiting the core or rss size from /etc/security/limits.conf? That should kill the offending process as soon as the limit is hit. One note on the cheeky side: this is the first time I see optimizing of a failure. I assume you have isolated the process and that you know what triggers the unwanted occurrence? How about killing the offending process with "kill -9" when it starts misbehaving?
Regards
-- Mladen Gogala Database Consultant Tel: (347) 321-1217 https://dbwhisperer.wordpress.com -- http://www.freelists.org/webpage/oracle-lReceived on Thu Mar 30 2023 - 21:20:41 CEST