Re: hyperthreadin low performance (and some discussion about benchmarking)

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

 



On 23 Jul 2015, at 13:37, domenico febbo <mimmopasticcio@xxxxxxxxx> wrote:

> is the problem also in PostgreSQL 9.4.x?
> I'm going to buy a production's server with 4 sockets E7-4850 12 cores
> so 12*4 = 48 cores (and 96 threads using HT).
> 
> What do you suggest?
> Using or not HT?
> 
> BR


1. If you have enough money to buy a 4-socket E7, then you certainly have enough money to pay someone (maybe yourself) for the 30 minutes of work needed to run a benchmark on the machine with and without hyperthreading and compare them.  I mean literally, run pgbench, reboot, turn on/off HT, run pgbench. Then you'll know what works best for your configuration. Don't be lazy about this, it's as important as the money you're throwing at the hardware. 

2. Keep in mind most of the numbers people throw around are pgbench numbers. Pgbench is representative of some workloads (e.g. bank transactions) and less representative of others (mixed query types, GIS work, scientific work, heavy IO, interaction with other applications/libraries...). Are you using the server for other tasks besides postgres, for example? I find I get better performance with HT when I'm using postgres with GDAL on the same server. Probably because the HT cores are being asked to do two different types of things, which is where HT shines. 

3. IMPORTANT : it doesn't matter how pgbench performs for other people on other computers and what they think is best.
What matters is 'how does YOUR normal workload perform on YOUR computer'.
The best way to do that is to put together a simple simulated workload that looks like your intended use of the system.
Leave it running.
If it's for an important system, look at all aspects of performance: transactions per second, I/O stalls, latency, ... 
If you can't do that, pgbench can be used instead.

====

Finally. A serious point. The lack of diversity in postgres benchmarking is quite amazing, to my mind, and is probably at the root of the eternal disagreements about optimal settings as well as the existence of long-standing hidden scaling/performance bugs (or weird kernel interactions). pgbench is useful, but really... let's make some more tools (or share links, if you know of them). 

Since contribution >>> gripe, here is my own (first, tiny) contribution, which I mentioned earlier in the month: https://github.com/gbb/ppppt. 

As a point of contrast. Take a look at how computer game players measure the performance of graphics cards and disk drives in their product reviews. 
http://www.guru3d.com/articles-pages/radeon-r9-290-review-benchmarks,32.html

32 pages of data and discussion to test the performance of a single model (among thousands of possibilities and millions of configurations)! And this article is ordinary, run of the mill stuff in the gaming scene, literally the first link I hit in Google. Has anyone ever in the history of these lists ever posted so much diverse and structured evidence in support of their beliefs about a postgres setting?

Gaming reviewers use a multitude of real-world games, synthetic benchmarks, theoretical estimates... as someone with a foot in both worlds it is quite amusing to see that game-players address benchmarking and optimisation of performance far more seriously, scientifically (and successfully) than most professional database admins. 

Many graphics card reviews care very much about reproducability/repeated results, surrounding test conditions (very detailed information about other components used in the test, software versioning), warmup effects, benchmark quirks, performance at different scales/settings, and so on...  writing 'I saw some post where someone said they got a better result from XYZ' would certainly not be good enough in that community.  

Graeme Bell. 

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




[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux