Re: Abnormally high memory usage/OOM triggered

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 1/18/2018 12:45 PM, Keith wrote:


On Thu, Jan 18, 2018 at 12:13 PM, Davlet Panech <dpanech@xxxxxxxxx <mailto:dpanech@xxxxxxxxx>> wrote:

    On 1/17/2018 5:57 PM, scott ribe wrote:

        On Jan 17, 2018, at 2:57 PM, Davlet Panech <dpanech@xxxxxxxxx
        <mailto:dpanech@xxxxxxxxx>> wrote:


            Does my configuration look reasonable? I just don't
            understand how it could possibly use up 19 GB of memory
            based on the configuration below. Is there a memory leak in
            there somewhere?


        It does seem awfully high, but... An update can involve a join
        across multiple tables. Or an update can run a trigger which can
        cascade. Either of those could result in an "accidental cross
        product" join, which can always blow up memory.

    There must be a way to put an upper limit on memory even for such
    cases. I was under the impression that parameters such as "work_mem"
    serve that purpose, is that not the case? So an "accidental cross
    product" join's memory usage is unbounded? It can't be... could
    somebody confirm this please?

    Thanks,
    D.


work_mem isn't really an upper limit on overall memory usage. It's just an upper limit on how much is used in certain processes before spilling to disk. A query or group of queries can easily use up all of system memory if it's complex enough by using multiple instances of work_mem. This is why work_mem shouldn't be set any higher than necessary. The wiki explains this better

https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server

"This size is applied to each and every sort done by each user, and complex queries can use multiple working memory sort buffers. Set it to 50MB, and have 30 users submitting queries, and you are soon using 1.5GB of real memory. "

I understand, but in my case a single server-side postgres process used 19GB, which (excluding shared memory etc) is something like a 100 times what I would expect, even for "complex" queries.


I would go with Tom's suggestion in this case, though, since that bug seems to fit the situation described by the patch he found. It's always important to be running the latest patch release to rule out a bug being the cause of an issue.

OK, so it is likely a memory leak; I just wanted to rule out other explanations.

Thanks to all who replied.




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux