Re: [HACKERS] Re: [GSOC 17] Eliminate O(N^2) scaling from rw-conflicttracking in serializable transactions - Mailing list pgsql-hackers
From | DEV_OPS |
---|---|
Subject | Re: [HACKERS] Re: [GSOC 17] Eliminate O(N^2) scaling from rw-conflicttracking in serializable transactions |
Date | |
Msg-id | e81261f1-3c9c-8ab9-a635-130a0238efcb@ww-it.cn Whole thread Raw |
In response to | [HACKERS] Re: [GSOC 17] Eliminate O(N^2) scaling from rw-conflicttracking in serializable transactions ("Mengxing Liu" <liu-mx15@mails.tsinghua.edu.cn>) |
Responses |
Re: [HACKERS] Re: [GSOC 17] Eliminate O(N^2) scaling from rw-conflicttracking in serializable transactions
|
List | pgsql-hackers |
Hi Mengxing Please read my comments : On 3/14/17 17:34, Mengxing Liu wrote: > I send this email to Tony, too. Because he promised to help me with testing and benchmarking. > >>>> The worst problems have been >>>> seen with 32 or more cores on 4 or more sockets with a large number >>>> of active connections. I don't know whether you have access to a >>>> machine capable of putting this kind of stress on it (perhaps at >>>> your university?), but if not, the community has access to various >>>> resources we should be able to schedule time on. >>> There is a NUMA machine ( 120 cores, 8 sockets) in my lab. >> Fantastic! Can you say a bit more about the architecture and OS? >> > Intel(R) Xeon(R) CPU at 2.3GHz, with 1TB physical DRAM and 1.5 TB SSD, running Ubuntu 14.04, Kernel 3.19. > I guess NUMA is disabled in BIOS, but I will check that. > However, there is only one NIC, so network could be the bottleneck if we use too many cores? The configuration is really cool, for the SSD, is it SATA interface? NVMe interface, or is PCIe Flash? different SSD interface had different performance characters. for the NUMA, because the affinity issue will impact PostgreSQL performance. so, Please disabled it if possible > >>> I think it's enough to put this kind of stress. >> The researchers who saw this bottleneck reported that performance >> started to dip at 16 cores and the problem was very noticeable at 32 >> cores. A stress test with 120 cores on 8 sockets will be great! >> >> I think perhaps the first milestone on the project should be to >> develop a set of benchmarks we want to compare to at the end. That >> would need to include a stress test that clearly shows the problem >> we're trying to solve, along with some cases involving 1 or two >> connections -- just to make sure we don't harm performance for >> low-contention situations. >> > Thank for your advice! It's really helpful for my proposal. > > There are several alternative benchmarks. Tony suggested that we should use TPC-E and TPC-DS. > Personally, I am more familiar with TPC-C. And pgbench seems only have TPC-B built-in benchmark. > Well, I think we can easily find the implementations of these benchmarks for PostgreSQL. > The paper you recommended to me used a special benchmark defined by themselves. But it is quite simple and easy to implement. for benchmark tool, TPC-E is the latest spec, could use it to stress PG for OLTP application/mode. but for PostgreSQL, pgbench is developed by community, and used to benchmark PG performance. however, you could use any you like, it depends on your situation. ^_^ > > For me, the challenge is profiling the execution. Is there any tools in PostgreSQL to analysis where is the CPU cyclesconsumed? > Or I have to instrument and time by myself? in Solaris system, there is a strong probe system available, it named Dtrace, you might use it to profiling but for how to use it, I think you need to consult illumos(a fork from Solaris/OpenSolaris), IRC channel is #illumos on freechat.net, (but I think there is Dtrace expert in this mail list, you could write other thread to ask) > > > Regards. > > -- > Mengxing Liu > > > > > > > > > >
pgsql-hackers by date: