Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1aTvdW-0001O4-EL for pgsql-performance@arkaria.postgresql.org; Thu, 11 Feb 2016 18:06:38 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1aTvdW-0005EO-0s for pgsql-performance@arkaria.postgresql.org; Thu, 11 Feb 2016 18:06:38 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84) (envelope-from ) id 1aTvdU-0005Be-Jj for pgsql-performance@postgresql.org; Thu, 11 Feb 2016 18:06:36 +0000 Received: from evolu-s.it ([94.23.66.144] helo=smtp.evolu-s.it) by magus.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1aTvdM-0003yD-Bw for pgsql-performance@postgresql.org; Thu, 11 Feb 2016 18:06:36 +0000 Received: from [192.168.1.100] ([93.62.73.47]) by smtp.evolu-s.it ; Thu, 11 Feb 2016 19:06:27 +0100 To: pgsql-performance@postgresql.org From: Moreno Andreo Subject: Architectural question Message-ID: <56BCCDB2.8050407@evolu-s.it> Date: Thu, 11 Feb 2016 19:06:42 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-Pg-Spam-Score: -2.1 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-performance Precedence: bulk Sender: pgsql-performance-owner@postgresql.org Hi everyone, I have a question that I hope fits in this discussion group. I'm migrating my actual server into a new, more powerful architecture on Google Cloud Platform. ATM the server is a VM with 4 vCPUs (the host has 4 Xeon E2xx 3,1 GHZ, if I remember) and 32 GB RAM, just running Ubuntu Server 12.04 and PostgreSQL 9.1 The server contains about 350 DBs and the same number of roles (every role has its own database). Databases are made of about 75 tables that can contain blobs (one table is peculiar in containing blobs) and single blob size can grow up to 20-25 megabytes. ATM our biggest DB is about 30 GB, 95% made of blobs. Apart from user growth, that means more resource consumption, we are starting new services, that will have more and more impact on databases. I read about how blobs are SLOW and I'm a bit worried on how to manage them. Now, the actual question, is: Having a VM that can be upgraded with a click on a panel and a reboot, and that the server fault is only related to a OS failure, should I keep a single-server solution (but I fear that I/O throughput will become even more inadequate) or is it convenient to migrate in a 2-server system? And, in case of 2-server configuration, what would you recommend? Scenario 1: Given 350 databases, I split them in 2, 175 on server 1 and 175 on server 2, having pgBouncer to resolve the connections and each server has its own workload Scenario 2: Server 1 -> Master, Server 2 -> Slave (Replicated with Slony or...?), Server 1 for writes, Server 2 for reads Last thing: should blobs (or the whole database directory itself) go in a different partition, to optimize performance, or in VM environment this is not a concern anymore? I tried to be as brief as possible, if you need some more details.... just ask :-) Thanks in advance, Moreno. -- Sent via pgsql-performance mailing list (pgsql-performance@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-performance