On Fri, Oct 10, 2014 at 1:27 PM, Andres Freund <and...@2ndquadrant.com>
wrote:
> On 2014-10-10 10:13:03 +0530, Amit Kapila wrote:
> > I have done few performance tests for above patches and results of
> > same is as below:
>
> Cool, thanks.
>
> > Performance Data
> > ------------------------------
> > IBM POWER-7 16 cores, 64 hardware threads
> > RAM = 64GB
> > max_connections =210
> > Database Locale =C
> > checkpoint_segments=256
> > checkpoint_timeout    =35min
> > shared_buffers=8GB
> > Client Count = number of concurrent sessions and threads (ex. -c 8 -j 8)
> > Duration of each individual run = 5mins
> > Test type - read only pgbench with -M prepared
> > Other Related information about test
> > a. This is the data for median of 3 runs, the detailed data of
individual
> > run
> > is attached with mail.
> > b. I have applied both the patches to take performance data.
> >
> >
> > Observations
> > ----------------------
> > a. The patch performs really well (increase upto ~40%) incase all the
> > data fits in shared buffers (scale factor -100).
> > b. Incase data doesn't fit in shared buffers, but fits in RAM
> > (scale factor -3000), there is performance increase upto 16 client
count,
> > however after that it starts dipping (in above config unto ~4.4%).
>
> Hm. Interesting. I don't see that dip on x86.

Is it possible that implementation of some atomic operation is costlier
for particular architecture?

I have tried again for scale factor 3000 and could see the dip and this
time I have even tried with 175 client count and the dip is approximately
5% which is slightly more than 160 client count.


  Patch_ver/Client_count 175  HEAD 248374  PATCH 235669
> > Now probably these shouldn't matter much in case backend needs to
> > wait for other Exclusive locker, but I am not sure what else could be
> > the reason for dip in case we need to have Exclusive LWLocks.
>
> Any chance to get a profile?

Here it goes..

HEAD - client_count=128
-----------------------------------------

+   7.53%         postgres  postgres               [.] GetSnapshotData
+   3.41%         postgres  postgres               [.] AllocSetAlloc
+   2.61%         postgres  postgres               [.] AllocSetFreeIndex
+   2.49%         postgres  postgres               [.] _bt_compare
+   2.43%         postgres  [kernel.kallsyms]      [k] .__copy_tofrom_user
+   2.40%         postgres  postgres               [.]
hash_search_with_hash_value
+   1.83%         postgres  postgres               [.] tas
+   1.29%         postgres  postgres               [.] pg_encoding_mbcliplen
+   1.27%         postgres  postgres               [.] MemoryContextCreate
+   1.22%         postgres  postgres               [.]
MemoryContextAllocZeroAligned
+   1.17%         postgres  postgres               [.] hash_seq_search
+   0.97%         postgres  postgres               [.] LWLockRelease
+   0.96%         postgres  postgres               [.]
MemoryContextAllocZero
+   0.91%         postgres  postgres               [.]
GetPrivateRefCountEntry
+   0.82%         postgres  postgres               [.] AllocSetFree
+   0.79%         postgres  postgres               [.] LWLockAcquireCommon
+   0.78%         postgres  postgres               [.] pfree



Detailed Data
-------------------------
-   7.53%         postgres  postgres               [.] GetSnapshotData
   - GetSnapshotData
      - 7.46% GetSnapshotData
         - 7.46% GetTransactionSnapshot
            - 3.74% exec_bind_message
                 PostgresMain
                 BackendRun
                 BackendStartup
                 ServerLoop
                 PostmasterMain
                 main
                 generic_start_main.isra.0
                 __libc_start_main
                 0
            - 3.72% PortalStart
                 exec_bind_message
                 PostgresMain
                 BackendRun
                 BackendStartup
                 ServerLoop
                 PostmasterMain
                 main
                 generic_start_main.isra.0
                 __libc_start_main
                 0
-   3.41%         postgres  postgres               [.] AllocSetAlloc
   - AllocSetAlloc
      - 2.01% AllocSetAlloc
           0.81% palloc
           0.63% MemoryContextAlloc
-   2.61%         postgres  postgres               [.] AllocSetFreeIndex
   - AllocSetFreeIndex
        1.59% AllocSetAlloc
        0.79% AllocSetFree
-   2.49%         postgres  postgres               [.] _bt_compare
   - _bt_compare
      - 1.80% _bt_binsrch
         - 1.80% _bt_binsrch
            - 1.21% _bt_search
                 _bt_first

Lwlock_contention patches - client_count=128
----------------------------------------------------------------------

+   7.95%      postgres  postgres               [.] GetSnapshotData
+   3.58%      postgres  postgres               [.] AllocSetAlloc
+   2.51%      postgres  postgres               [.] _bt_compare
+   2.44%      postgres  postgres               [.]
hash_search_with_hash_value
+   2.33%      postgres  [kernel.kallsyms]      [k] .__copy_tofrom_user
+   2.24%      postgres  postgres               [.] AllocSetFreeIndex
+   1.75%      postgres  postgres               [.]
pg_atomic_fetch_add_u32_impl
+   1.60%      postgres  postgres               [.] hash_seq_search
+   1.31%      postgres  postgres               [.] pg_encoding_mbcliplen
+   1.27%      postgres  postgres               [.]
MemoryContextAllocZeroAligned
+   1.26%      postgres  postgres               [.] MemoryContextCreate
+   0.98%      postgres  postgres               [.] GetPrivateRefCountEntry
+   0.97%      postgres  postgres               [.] MemoryContextAllocZero
+   0.87%      postgres  postgres               [.] LWLockRelease
+   0.82%      postgres  postgres               [.] AllocSetFree
+   0.79%      postgres  postgres               [.] SearchCatCache
+   0.70%      postgres  postgres               [.] palloc
    0.69%      postgres  postgres               [.] pfree
+   0.61%      postgres  postgres               [.] AllocSetDelete
+   0.57%      postgres  postgres               [.] hash_any
    0.57%      postgres  postgres               [.] MemoryContextAlloc
    0.56%      postgres  postgres               [.] FunctionCall2Coll
+   0.56%       swapper  [kernel.kallsyms]      [k]
.pseries_dedicated_idle_sleep
    0.56%      postgres  libc-2.14.90.so        [.] memcpy
+   0.55%      postgres  postgres               [.] AllocSetReset
    0.51%      postgres  postgres               [.] _bt_binsrch
    0.50%      postgres  postgres               [.] LWLockAcquireCommon


Detailed Data
----------------------------
-   7.95%      postgres  postgres               [.] GetSnapshotData

   - GetSnapshotData


      - 7.87% GetSnapshotData


         - 7.87% GetTransactionSnapshot


            - 3.95% exec_bind_message


                 0


            - 3.92% PortalStart


                 exec_bind_message


                 0


-   3.58%      postgres  postgres               [.] AllocSetAlloc


   - AllocSetAlloc


      - 1.82% AllocSetAlloc


           0.75% palloc


           0.56% MemoryContextAlloc


-   2.51%      postgres  postgres               [.] _bt_compare


   - _bt_compare


      - 1.75% _bt_binsrch


         - 1.75% _bt_binsrch


            - 1.18% _bt_search


                 _bt_first


                 btgettuple


-   2.44%      postgres  postgres               [.]
hash_search_with_hash_value

   - hash_search_with_hash_value


      - 2.01% hash_search_with_hash_value


         - 0.96% BufTableLookup


              BufferAlloc


-   2.33%      postgres  [kernel.kallsyms]      [k] .__copy_tofrom_user


   - .__copy_tofrom_user


      - 2.27% .file_read_actor


           .generic_file_aio_read


           .do_sync_read


-   2.24%      postgres  postgres               [.] AllocSetFreeIndex


   - AllocSetFreeIndex


        1.23% AllocSetAlloc


        0.68% AllocSetFree


-   1.75%      postgres  postgres               [.]
pg_atomic_fetch_add_u32_impl

   - pg_atomic_fetch_add_u32_impl


        0.95% pg_atomic_fetch_add_u32


        0.75% pg_atomic_fetch_sub_u32_impl


-   1.60%      postgres  postgres               [.] hash_seq_search


   - hash_seq_search


      - 0.91% PreCommit_Portals


         - 0.91% PreCommit_Portals





With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com

Reply via email to