Re: User concurrency thresholding: where do I look?

От: Simon Riggs
Тема: Re: User concurrency thresholding: where do I look?
Дата: ,
Msg-id: 1185212261.4284.270.camel@ebony.site
(см: обсуждение, исходный текст)
Ответ на: Re: User concurrency thresholding: where do I look?  ("Simon Riggs")
Ответы: Re: User concurrency thresholding: where do I look?  (Tom Lane)
Список: pgsql-performance

Скрыть дерево обсуждения

User concurrency thresholding: where do I look?  (Josh Berkus, )
 Re: User concurrency thresholding: where do I look?  ("Joshua D. Drake", )
 Re: User concurrency thresholding: where do I look?  (Alvaro Herrera, )
  Re: User concurrency thresholding: where do I look?  (Josh Berkus, )
   Re: User concurrency thresholding: where do I look?  (Tom Lane, )
    Re: User concurrency thresholding: where do I look?  (Alvaro Herrera, )
     Re: User concurrency thresholding: where do I look?  (Tom Lane, )
      Re: User concurrency thresholding: where do I look?  (Josh Berkus, )
       Re: User concurrency thresholding: where do I look?  (Tom Lane, )
        Re: User concurrency thresholding: where do I look?  (Josh Berkus, )
         Re: User concurrency thresholding: where do I look?  ("Jignesh K. Shah", )
          Re: User concurrency thresholding: where do I look?  ("Jignesh K. Shah", )
          Re: User concurrency thresholding: where do I look?  (Tom Lane, )
           Re: User concurrency thresholding: where do I look?  ("Jignesh K. Shah", )
            Re: User concurrency thresholding: where do I look?  (Tom Lane, )
             Re: User concurrency thresholding: where do I look?  ("Jignesh K. Shah", )
              Re: User concurrency thresholding: where do I look?  (Tom Lane, )
               Re: User concurrency thresholding: where do I look?  ("Jignesh K. Shah", )
                Re: User concurrency thresholding: where do I look?  (Tom Lane, )
                 Re: User concurrency thresholding: where do I look?  ("Jignesh K. Shah", )
                 Re: User concurrency thresholding: where do I look?  (David Boreham, )
                  Re: User concurrency thresholding: where do I look?  (Tom Lane, )
                 Re: User concurrency thresholding: where do I look?  ("Simon Riggs", )
                  Re: User concurrency thresholding: where do I look?  (Tom Lane, )
                   Re: User concurrency thresholding: where do I look?  ("Simon Riggs", )
                    Re: User concurrency thresholding: where do I look?  (Tom Lane, )
                     Re: User concurrency thresholding: where do I look?  ("Simon Riggs", )
                      Re: User concurrency thresholding: where do I look?  (Tom Lane, )
                       Re: User concurrency thresholding: where do I look?  ("Simon Riggs", )
                      Re: User concurrency thresholding: where do I look?  ("Simon Riggs", )
                       Re: User concurrency thresholding: where do I look?  (Tom Lane, )
                        Re: User concurrency thresholding: where do I look?  ("Simon Riggs", )
                        Re: User concurrency thresholding: where do I look?  ("Jignesh K. Shah", )
                         Re: User concurrency thresholding: where do I look?  (Tom Lane, )
                          Re: User concurrency thresholding: where do I look?  ("Jignesh K. Shah", )
                           Re: User concurrency thresholding: where do I look?  (Tom Lane, )
                            Re: User concurrency thresholding: where do I look?  ("Jignesh K. Shah", )
                             Re: User concurrency thresholding: where do I look?  (Tom Lane, )
                              Re: User concurrency thresholding: where do I look?  (Robert Lor, )
                             Re: User concurrency thresholding: where do I look?  ("Simon Riggs", )
                              Re: User concurrency thresholding: where do I look?  ("Jignesh K. Shah", )
                               Re: User concurrency thresholding: where do I look?  ("Simon Riggs", )
                                Re: User concurrency thresholding: where do I look?  ("Jignesh K. Shah", )
                                 Re: User concurrency thresholding: where do I look?  (Alvaro Herrera, )
                                  Re: User concurrency thresholding: where do I look?  ("Simon Riggs", )
                                 Re: User concurrency thresholding: where do I look?  ("Simon Riggs", )
                                  Re: User concurrency thresholding: where do I look?  ("Jignesh K. Shah", )
                                  Re: User concurrency thresholding: where do I look?  ("Jignesh K. Shah", )
                                   Re: User concurrency thresholding: where do I look?  ("Jignesh K. Shah", )
                                    Re: User concurrency thresholding: where do I look?  ("Jignesh K. Shah", )
                                  Re: User concurrency thresholding: where do I look?  (Josh Berkus, )
                                   Re: User concurrency thresholding: where do I look?  ("Jignesh K. Shah", )
                              CLOG Patch  ("Jignesh K. Shah", )
                               Re: CLOG Patch  ("Simon Riggs", )
                                Re: CLOG Patch  ("Jignesh K. Shah", )
                                 Re: CLOG Patch  ("Simon Riggs", )
                           Re: User concurrency thresholding: where do I look?  ("Simon Riggs", )
       Re: User concurrency thresholding: where do I look?  (Greg Smith, )
        Re: User concurrency thresholding: where do I look?  (Josh Berkus, )
     Re: User concurrency thresholding: where do I look?  ("Joshua D. Drake", )
    Re: User concurrency thresholding: where do I look?  (Gregory Stark, )
 Re: User concurrency thresholding: where do I look?  (Greg Smith, )

On Mon, 2007-07-23 at 16:48 +0100, Simon Riggs wrote:
> On Mon, 2007-07-23 at 10:54 -0400, Tom Lane wrote:
> > "Simon Riggs" <> writes:
> > > I looked at this last May and my notes say "ExecutorState". I guess that
> > > was wrong, but my analysis showed there was a single malloc of 8228
> > > bytes happening once per query during my tests.
> >
> > Well, if you can track down where it's coming from, we could certainly
> > hack the containing context's parameters.  But EState's not it.
>
> Well, I discover there is an allocation of 8232 (inflation...) made once
> per statement by a memory context called... ExecutorState. Still not
> sure exactly which allocation this is, but its definitely once per
> statement on pgbench, which should narrow it down. Plan, query etc?
>
> I don't see a way to hack the allocation, since the max chunk size is
> 8K.

It is the allocation of BTScanOpaqueData called from btrescan() in
nbtree.c

currPos and markPos are defined as BTScanPosData, which is an array of
BTScanPosItems. That makes BTScanOpaqueData up to 8232 bytes, which
seems wasteful since markPos is only ever used during merge joins. Most
of that space isn't even used during merge joins either, we just do that
to slightly optimise the speed of the restore during merge joins.

Seems like we should allocate the memory when we do the first mark.

--
  Simon Riggs
  EnterpriseDB  http://www.enterprisedb.com



В списке pgsql-performance по дате сообщения:

От: "Simon Riggs"
Дата:
Сообщение: Re: User concurrency thresholding: where do I look?
От: "Jignesh K. Shah"
Дата:
Сообщение: Second SpecJAppserver2004 with PostgreSQL