[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: write-scaling problems in LMDB



Luke Kenneth Casson Leighton wrote:
On Mon, Oct 20, 2014 at 2:34 PM, Howard Chu <hyc@symas.com> wrote:
I can probably use taskset or something similar to restrict a process to a
particular set of cores. What exactly do you have in mind?

  keeping the writers and readers proposed test, but onto the same 8
cores only, running:

Well in the meantime, the 32/32 test finished:

Writers		Run Time				CPU %	Context Switches	Write	Read			Run Time			CPU %
	Wall		User		Sys			Vol		Invol			Wall		User		Sys	
1	10:01.38	00:09:34.90	00:00:25.80	99	9		2040	27160	5877894	10:00.68	05:19:03.44	00:00:35.34	3192
2	10:01.38	00:09:15.15	00:02:41.94	119	14397526	2955	24012	6150801	10:00.67	05:19:00.96	00:00:38.23	3192
4	10:01.34	00:09:06.93	00:02:46.94	118	14246971	8545	23795	6067928	10:00.68	05:18:59.65	00:00:39.52	3192
8	10:01.49	00:09:04.22	00:02:53.09	119	14011236	10850	23589	5961381	10:00.69	05:18:56.82	00:00:42.54	3192
16	10:01.64	00:09:07.32	00:02:53.09	119	13787738	20049	23670	5966794	10:00.68	05:18:59.13	00:00:40.35	3192
32	10:01.78	00:09:04.29	00:02:58.40	120	13205576	27847	23337	5959624	10:00.70	05:19:00.54	00:00:39.46	3192

The timings on the left are for the writer process; the reader process
is on the right. You were right, the number of writers is largely
irrelevant because they're all waiting most of the time. There's a
huge jump in System CPU time from 1 writer to 2 writers, because with
only 1 writer the mutex is uncontended and essentially zero-cost. As
more writer threads are added, the System CPU time will rise.

The readers are basically unaffected by the number of writers.

--
  -- Howard Chu
  CTO, Symas Corp.           http://www.symas.com
  Director, Highland Sun     http://highlandsun.com/hyc/
  Chief Architect, OpenLDAP  http://www.openldap.org/project/