Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1ZXGRV-00032b-FV for pgsql-hackers@arkaria.postgresql.org; Wed, 02 Sep 2015 22:23:45 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1ZXGRV-0001yQ-0i for pgsql-hackers@arkaria.postgresql.org; Wed, 02 Sep 2015 22:23:45 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84) (envelope-from ) id 1ZXGRS-0001wZ-CT for pgsql-hackers@postgresql.org; Wed, 02 Sep 2015 22:23:42 +0000 Received: from mail.anarazel.de ([217.115.131.40]) by makus.postgresql.org with esmtp (Exim 4.84) (envelope-from ) id 1ZXGRL-00009H-VG for pgsql-hackers@postgresql.org; Wed, 02 Sep 2015 22:23:41 +0000 Received: by mail.anarazel.de (Postfix, from userid 108) id 2980C860003; Thu, 3 Sep 2015 00:23:35 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on mail X-Spam-Level: X-Spam-Status: No, score=-5.6 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.2.5 Received: from anarazel.de (p54AF4FE4.dip0.t-ipconnect.de [84.175.79.228]) (Authenticated sender: andres@anarazel.de) by mail.anarazel.de (Postfix) with ESMTPSA id 15140860001; Thu, 3 Sep 2015 00:23:30 +0200 (CEST) Received: by anarazel.de (Postfix, from userid 1000) id 94583104CA9; Thu, 3 Sep 2015 00:23:29 +0200 (CEST) Date: Thu, 3 Sep 2015 00:23:29 +0200 From: Andres Freund To: Josh Berkus Cc: Tomas Vondra , pgsql-hackers@postgresql.org Subject: Re: Allow a per-tablespace effective_io_concurrency setting Message-ID: <20150902222329.GD8555@awork2.anarazel.de> References: <20141209204337.GC24488@momjian.us> <55AA2469.20306@dalibo.com> <55AA27C3.7060009@dalibo.com> <20150902135351.GA5286@alap3.anarazel.de> <55E76950.2070403@2ndquadrant.com> <55E76AB7.4030306@agliodbs.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <55E76AB7.4030306@agliodbs.com> X-Pg-Spam-Score: -4.2 (----) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-hackers Precedence: bulk Sender: pgsql-hackers-owner@postgresql.org On 2015-09-02 14:31:35 -0700, Josh Berkus wrote: > On 09/02/2015 02:25 PM, Tomas Vondra wrote: > > > > As I explained, spindles have very little to do with it - you need > > multiple I/O requests per device, to get the benefit. Sure, the DBAs > > should know how many spindles they have and should be able to determine > > optimal IO depth. But we actually say this in the docs: > > My experience with performance tuning is that values above 3 have no > real effect on how queries are executed. I saw pretty much the opposite - the benefits seldomly were significant below 30 or so. Even on single disks. Which actually isn't that surprising - to be actually beneficial (that is, turn an IO into a CPU bound workload) the prefetched buffer needs to actually have been read in by the time its needed. In many queries processing a single heap page takes far shorter than prefetching the data from storage, even if it's on good SSDs. Therefore what you actually need is a queue of prefetches for the next XX buffers so that between starting a prefetch and actually needing the buffer ienough time has passed that the data is completely read in. And the point is that that's the case even for a single rotating disk! Greetings, Andres Freund -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers