pg.ddx.io  pgsql-performance@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Tomas Vondra <tomas.vondra@2ndquadrant.com>
To: Scott Marlowe <scott.marlowe@gmail.com>
To: Joshua D. Drake <jd@commandprompt.com>
Cc: pgsql-performance@postgresql.org <pgsql-performance@postgresql.org>
Subject: Re: How to reduce writing on disk ? (90 gb on pgsql_tmp)
Date: Thu, 04 Jun 2015 16:43:13 +0200
Message-ID: <55706401.4080707@2ndquadrant.com> (raw)
In-Reply-To: <CAOR=d=3WjFfjwK-ne2P-J4senyoLwxUKy5GSX3+wmXSKzwH8Sg@mail.gmail.com>
References: <1433334092106-5852321.post@n5.nabble.com>
	<1433337082772-5852328.post@n5.nabble.com>
	<CA+RSxMiSwse+YfMoFT8128PoWG3kifmrvg4rhdBHxUTE3HPH-g@mail.gmail.com>
	<556F0649.9000402@2ndquadrant.com>
	<9DED5F42-2C51-4CDE-A179-56A8A9370338@playrion.com>
	<556F15AD.4040801@2ndquadrant.com>
	<CAOR=d=20bFbC-LnrzqCL2-c79q-8hmHAf6zv0Roh8r=tmxafrA@mail.gmail.com>
	<556F547D.5040206@2ndquadrant.com>
	<CAOR=d=2bMfcv9d5Lok5WddVm7ztM4a1QNcxm9Tcpx+PChjQunQ@mail.gmail.com>
	<556F7CAA.2080003@2ndquadrant.com>
	<556F7FD8.5070802@commandprompt.com>
	<CAOR=d=2vMYtYfJhRQoHMPzPBi22omk46XRDa2EcTVJYT8YCFpw@mail.gmail.com>
	<CAOR=d=3WjFfjwK-ne2P-J4senyoLwxUKy5GSX3+wmXSKzwH8Sg@mail.gmail.com>
List-Unsubscribe:  <mailto:majordomo@postgresql.org?body=unsub%20pgsql-performance>



On 06/04/15 02:58, Scott Marlowe wrote:
> On Wed, Jun 3, 2015 at 6:53 PM, Scott Marlowe <scott.marlowe@gmail.com> wrote:
>> On Wed, Jun 3, 2015 at 4:29 PM, Joshua D. Drake <jd@commandprompt.com> wrote:
>>>
>>> On 06/03/2015 03:16 PM, Tomas Vondra wrote:
>>>
>>>> Cache is not free memory - it's there for a purpose and usually
>>>> plays a significant role in performance. Sure, it may be freed
>>>> and used for other purposes, but that has consequences - e.g.
>>>> it impacts performance of other queries etc. You generally
>>>> don't want to do that onproduction.
>>>
>>>
>>> Exactly. If your cache is reduced your performance is reduced
>>> because less things are in cache. It is not free memory. Also the
>>> command "free" is not useful in this scenario. It is almost
>>> alwaysbetter to use sar so you can see where the data points are
>>> thatfree is using.
>>
>> But if that WAS happening he wouldn't still HAVE 60G of cache!
>> That's my whole point. He's NOT running out of memory. He's not
>> even having to dump cache right now.

No one claimed he's running out of memory ...

What I claimed is that considering page cache equal to free memory is 
not really appropriate, because it is used for caching data, which plays 
a significant role.

Regarding the "free" output, we have no clue when the "free" command was 
executed. I might have been executed while the query was running, right 
after it failed or long after that. That has significant impact on 
interpretation of the output.

Also, we have no clue what happens on the machine, so it's possible 
there are other queries competing for the page cache, quickly filling 
reusing free memory (used for large query moments ago) for page cache.

And finally, we have no clue what plan the query is using, so we don't 
know how much memory it's using before it starts spilling to disk. For 
example it might easily be a single sort node, taking only 384MB (the 
work_mem) of RAM before it starts spilling to disk.


> Further if he started using a few gig here for this one it wouldn't
> have a big impact on cache (60G-1G etc) but might make it much
> faster, as spilling to disk is a lot less intrusive when you've got a
> bigger chunk of ram to work in. OTOH doing something like setting
> work_mem to 60G would likely be fatal.

It'd certainly be fatal, because this query is spilling >95G to disk, 
and keeping that in memory would easily require 2-3x more space.

>
> But he's not down to 3GB of memory by any kind of imagination. Any
> working machine will slowly, certainly fill its caches since it's
> not using the memory for anything else. That's normal. As long as
> you're not blowing out the cache you're fine.

Once again, what about the 15GB shared buffers? Not that it'd change 
anything, really.


--
Tomas Vondra                  http://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


-- 
Sent via pgsql-performance mailing list (pgsql-performance@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance



view thread (24+ messages)  latest in thread

Message-ID: <55706401.4080707@2ndquadrant.com>
Permalink:  ../55706401.4080707@2ndquadrant.com/
Also on:    postgresql.org/message-id/55706401.4080707@2ndquadrant.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-performance@postgresql.org
  Cc: tomas.vondra@2ndquadrant.com, scott.marlowe@gmail.com, jd@commandprompt.com
  Subject: Re: How to reduce writing on disk ? (90 gb on pgsql_tmp)
  In-Reply-To: <55706401.4080707@2ndquadrant.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox