benchmarSQL has about half reads. So I think it should be effective.

I don't think BufFreelistLock take much time, it just get a buffer from list. 
It should be very fast.

The test server has 2 CPUs and 12 cores in each CPU. 24 processor totally. CPU 
Idle time is over 50%. IO only 10%(data is in SSD)

I perf one process of pg. The hot spot is hash search. perf data file is more 
than 1M, so I do not attach it. I send it separately.


     3.63%  postgres  postgres               [.] hash_search_with_hash_value    
                                                                                
                                            
     3.10%  postgres  postgres               [.] AllocSetAlloc                  
                                                                                
                                             
     3.04%  postgres  postgres               [.] LWLockAcquire                  
                                                                                
                                             
     2.73%  postgres  postgres               [.] _bt_compare                    
                                                                                
                                             
     2.66%  postgres  postgres               [.] SearchCatCache                 
                                                                                
                                             
     2.18%  postgres  postgres               [.] ExecInitExpr                   
                                                                                
                                             
     2.11%  postgres  postgres               [.] GetSnapshotData                
                                                                                
                                             
     1.57%  postgres  postgres               [.] PinBuffer                      
                                                                                
                                             
     1.41%  postgres  postgres               [.] XLogInsert                     
                                                                                
                                             
     1.36%  postgres  libc-2.11.3.so         [.] _int_malloc                    
                                                                                
                                             
     1.31%  postgres  postgres               [.] LWLockRelease                  
                                                                                
                                             
     1.09%  postgres  libc-2.11.3.so         [.] __GI_memcpy                    
                                                                                
                                             
     0.89%  postgres  postgres               [.] _bt_checkkeys                  
                                                                                
                                             
     0.82%  postgres  libc-2.11.3.so         [.] __strncpy_ssse3                
                                                                                
                                             
     0.81%  postgres  postgres               [.] palloc                         
                                                                                
                                             
     0.81%  postgres  postgres               [.] fmgr_info_cxt_security         
                                                                                
                                             
     0.76%  postgres  postgres               [.] equal                          
                                                                                
                                             
     0.75%  postgres  postgres               [.] s_lock                         
                                                                                
                                             
     0.73%  postgres  postgres               [.] heap_hot_search_buffer


>From: Amit Kapila [mailto:amit.kapil...@gmail.com]
>Sent: Tuesday, September 02, 2014 10:44 PM
>To: Xiaoyulei
>Cc: pgsql-hackers@postgresql.org
>Subject: Re: 答复: [HACKERS] why after increase the hash table 
>partitions, TPMC decrease
>
>On Tue, Sep 2, 2014 at 5:20 PM, Xiaoyulei <xiaoyu...@huawei.com> wrote:
>>
>> I already modified MAX_SIMUL_LWLOCKS to make sure it is enough.
>
>Okay.
>
>>  
>>
>> Total RAM is 130G, and I set shared_buffers 16G, CPU and IO is not full. 50% 
>> CPUs are idle.
>
>As far as I understand, benchmarkSQL measures an OLTP workload 
>performance which means it contains mix of reads and writes, now I am 
>not sure how you have identified that increasing buffer partitions can 
>improve the performance.
>Have you used any profiling?
>
>> So I think maybe pg is blocked by some place in itself.
>
>Yeah, there's another lock BufFreelistLock which is a major cause of 
>contention in buffer allocation and for which already work is in 
>progress for 9.5.  However as mentioned previously, that will be useful 
>mainly for Read only loads.
>
>
>
>
>With Regards,
>Amit Kapila.
>EnterpriseDB: http://www.enterprisedb.com

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

Reply via email to