Thread: Help specifying new web server/database machine

Help specifying new web server/database machine

From
Rory Campbell-Lange
Date:
I'm tasked with specifying a new machine to run a web application
prototype. The machine will be serving web pages with a Postgresql
backend; we will be making extensive use of plpgsql functions. No
database tables are likely to go over a million rows during the
prototype period.

We are considering two RAID1 system disks, and two RAID1 data disks.
We've avoided buying Xeons. The machine we are looking at looks like
this:

    Rackmount Chassis - 500W PSU / 4 x SATA Disk Drive Bays
    S2882-D - Dual Opteron / AMD 8111 Chipset / 5 x PCI Slots
    2x - (Dual) AMD Opteron 246 Processors (2.0GHz) - 1MB L2 Cache/core (single core)
    2GB (2x 1024MB) DDR-400 (PC3200) ECC Registered SDRAM (single rank)
    4 Port AMCC/3Ware 9500-4LP PCI SATA RAID Controller
    80GB SATA-150 7200RPM Hard Disk / 8MB Cache
    80GB SATA-150 7200RPM Hard Disk / 8MB Cache
    250GB SATA-150 7200RPM Hard Disk / 8MB Cache
    250GB SATA-150 7200RPM Hard Disk / 8MB Cache
    Slimline 8x DVD / 24x CD-ROM Drive
    Standard 3yr (UK) Next Business Day On-site Warranty

I would be grateful for any comments about this config.

Kind regards,
Rory
--
Rory Campbell-Lange
<rory@campbell-lange.net>
<www.campbell-lange.net>

Re: Help specifying new web server/database machine

From
Bjoern Metzdorf
Date:
Hi,

Rory Campbell-Lange wrote:

  > We are considering two RAID1 system disks, and two RAID1 data disks.
> We've avoided buying Xeons. The machine we are looking at looks like
> this:
>
>     Rackmount Chassis - 500W PSU / 4 x SATA Disk Drive Bays
>     S2882-D - Dual Opteron / AMD 8111 Chipset / 5 x PCI Slots
>     2x - (Dual) AMD Opteron 246 Processors (2.0GHz) - 1MB L2 Cache/core (single core)
>     2GB (2x 1024MB) DDR-400 (PC3200) ECC Registered SDRAM (single rank)

Make that 4 or 8 GB total. We have seen a huge boost in performance when
we upgraded from 4 to 8 GB. Make sure to use a decent 64bit Linux.

>     4 Port AMCC/3Ware 9500-4LP PCI SATA RAID Controller
>     80GB SATA-150 7200RPM Hard Disk / 8MB Cache
>     80GB SATA-150 7200RPM Hard Disk / 8MB Cache
>     250GB SATA-150 7200RPM Hard Disk / 8MB Cache
>     250GB SATA-150 7200RPM Hard Disk / 8MB Cache

Three options:

9500-4LP with Raptor drives 10k rpm, raid 1 + raid 1
9500-8LP with Raptor drives 10k rpm, raid 10 + raid 1
Go for SCSI (LSI Megaraid or ICP Vortex) and take 10k drives

BBU option is always nice.

Regards,
Bjoern

Re: Help specifying new web server/database machine

From
"Joshua D. Drake"
Date:
> Three options:
>
> 9500-4LP with Raptor drives 10k rpm, raid 1 + raid 1
> 9500-8LP with Raptor drives 10k rpm, raid 10 + raid 1
> Go for SCSI (LSI Megaraid or ICP Vortex) and take 10k drives

If you are going with Raptor drives use the LSI 150-6 SATA RAID
with the BBU.

Sincerely,

Joshua D. Drake



>
> BBU option is always nice.
>
> Regards,
> Bjoern
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster


--
Your PostgreSQL solutions company - Command Prompt, Inc. 1.800.492.2240
PostgreSQL Replication, Consulting, Custom Programming, 24x7 support
Managed Services, Shared and Dedicated Hosting
Co-Authors: plPHP, plPerlNG - http://www.commandprompt.com/

Re: Help specifying new web server/database machine

From
Matthew Nuzum
Date:
On 6/8/05, Rory Campbell-Lange <rory@campbell-lange.net> wrote:
> I'm tasked with specifying a new machine to run a web application
> prototype. The machine will be serving web pages with a Postgresql
> backend; we will be making extensive use of plpgsql functions. No
> database tables are likely to go over a million rows during the
> prototype period.
...
>     2GB (2x 1024MB) DDR-400 (PC3200) ECC Registered SDRAM (single rank)
>     4 Port AMCC/3Ware 9500-4LP PCI SATA RAID Controller
>     80GB SATA-150 7200RPM Hard Disk / 8MB Cache
>     80GB SATA-150 7200RPM Hard Disk / 8MB Cache
>     250GB SATA-150 7200RPM Hard Disk / 8MB Cache
>     250GB SATA-150 7200RPM Hard Disk / 8MB Cache

If your app is select heavy, especially the types of things that do
sequential scans, you will enjoy having enough ram to easily load all
of your tables and indexes in ram. If your database will exceed 1GB on
disk consider more ram than 2GB.

If your database will be write heavy choosing good controllers and
disks is essential. Reading through the archives you will see that
there are some important disk configurations you can choose for
optimizing disk writes such as using the outer portions of the disks
exclusively. If data integrity is not an issue, choose a controller
that allows caching of writes (usually IDE and cheaper SATA systems
cache writes regardless of what you want).

If it were my application, and if I had room in the budget, I'd double
the RAM. I don't know anything about your application though so use
the guidlines above.

--
Matthew Nuzum
www.bearfruit.org

Re: Help specifying new web server/database machine

From
William Yu
Date:
> We are considering two RAID1 system disks, and two RAID1 data disks.
> We've avoided buying Xeons. The machine we are looking at looks like
> this:
>
>     Rackmount Chassis - 500W PSU / 4 x SATA Disk Drive Bays
>     S2882-D - Dual Opteron / AMD 8111 Chipset / 5 x PCI Slots
>     2x - (Dual) AMD Opteron 246 Processors (2.0GHz) - 1MB L2 Cache/core (single core)

For about $1500 more, you could go 2x270 (dual core 2ghz) and get a 4X
SMP system. (My DC 2x265 system just arrived -- can't wait to start
testing it!!!)

>     2GB (2x 1024MB) DDR-400 (PC3200) ECC Registered SDRAM (single rank)

This is a wierd configuration. For a 2x Opteron server to operate at max
performance, it needs 4 DIMMs minimum. Opterons use a 128-bit memory
interface and hence requires 2 DIMMs per CPU to run at full speed. With
only 2 DIMMS, you either have both CPUs run @ 64-bit (this may not even
be possible) or populate only 1 CPU bank -- the other CPU must then
request all memory access through the other CPU which is a significant
penalty. If you went 4x512MB, you'd limit your future update options by
having less slots available to add more memory. I'd definitely out of
the chute get 4x1GB,

>     4 Port AMCC/3Ware 9500-4LP PCI SATA RAID Controller
>     80GB SATA-150 7200RPM Hard Disk / 8MB Cache
>     80GB SATA-150 7200RPM Hard Disk / 8MB Cache
>     250GB SATA-150 7200RPM Hard Disk / 8MB Cache
>     250GB SATA-150 7200RPM Hard Disk / 8MB Cache

Now this is comes to the interesting part. We've had huge, gigantic
threads (check archives for the $7K server threads) about SCSI versus
SATA in the past. 7200 SATAs just aren't fast/smart enough to cut it for
most production uses in regular configs. If you are set on SATA, you
will have to consider the following options: (1) use 10K Raptors for TCQ
goodness, (2) put a huge amount of memory onto the SATA RAID card -- 1GB
minimum, (3) use a ton of SATA drives to make a RAID10 array -- 8 drives
minimum.

Or you could go SCSI. SCSI is cost prohibitive though at the larger disk
sizes -- this is why I'm considering option #3 for my data processing
server.

Re: Help specifying new web server/database machine

From
Rory Campbell-Lange
Date:
Hi All. Thanks very much for Joshua, William, Bjoern and Matthew's
replies.

I've now looked at the famous "Server for 7K" thread. In my case we are
looking for a server for around 3000 pounds (UK); the server is to be an
all-purpose web and database server.

Processor:

First of all I noted that we were intending to use Opteron processors. I
guess this isn't a straightforward choice because I believe Debian (our
Linux of choice) doesn't have a stable AMD64 port. However some users on
this list suggest that Opterons work very well even in a 32 bit
environment. Some have suggested that a single dual core processor is
the way to go. The RAM needs to fit the CPU arrangement too; William
points out that one needs 2 DIMMS per CPU.

Disks:

I'm somewhat confused here. I've followed the various notes about SATA
vs SCSI and it seems that SCSI is the way to go. On a four-slot 1U
server, would one do a single RAID10 over 4 disks 10000rpm U320 disks?
I would run the database in its own partition, separate from the rest of
the OS, possible on LVM. An LSI-Megaraid-2 appears to be the card of
choice.

The following (without RAID card) breaks my budget by about 200 pounds:

    System            : Armari Opteron AM-2138-A8 1U Base PCI-X (BEI)
    Case Accessories  : IPMI 2.0 module for AM Series Opteron Servers
    CPU               : AMD Opteron 265 - Dual Core 1.8GHz CPU (940pin)
    Memory            : 2GB 400MHz DDR SDRAM (4 x 512MB (PC3200) ECC REG.s)
    Hard drive        : Maxtor Atlas 10K V 147.1GB 10K U320/SCA - 8D147J0
    Additional Drives : 3 x Maxtor Atlas 10K V 147.1GB 10K U320/SCA - 8D147J0
    CD/DVD Drive      : AM series Server 8x Slimline DVD-ROM
    Warranty          : 3 Year Return to base Warranty (Opteron Server)
    Carriage          : PC System Carriage (UK only) for 1U Server

Thanks for any further comments,
Rory

--
Rory Campbell-Lange
<rory@campbell-lange.net>
<www.campbell-lange.net>

Re: Help specifying new web server/database machine

From
Matthew Nuzum
Date:
On 6/9/05, Rory Campbell-Lange <rory@campbell-lange.net> wrote:
> Disks:
>
> I'm somewhat confused here. I've followed the various notes about SATA
> vs SCSI and it seems that SCSI is the way to go. On a four-slot 1U
> server, would one do a single RAID10 over 4 disks 10000rpm U320 disks?
> I would run the database in its own partition, separate from the rest of
> the OS, possible on LVM. An LSI-Megaraid-2 appears to be the card of
> choice.
>

Can you tell us about your application? How much data will you have,
what is your ratio of reads to writes, how tollerant to data loss are
you? (for example, some people load their data in batches and if they
loose their data its no big deal, others would have heart failure if a
few transactions were lost)

If your application is 95% writes then people will suggest drastically
different hardware than if your application is 95% selects.

Here is an example of one of my servers:
application is 95+% selects, has 15GB of data (counting indexes), low
tollerance for data loss, runs on a 1 GHz P3 Compaq server with
mirrored 35 GB IDE disks and 1.6GB of RAM. Application response time
is aproximately .1 second to serve a request on a moderately loaded
server.

--
Matthew Nuzum
www.bearfruit.org

Re: Help specifying new web server/database machine

From
Oliver Elphick
Date:
On Thu, 2005-06-09 at 17:44 +0100, Rory Campbell-Lange wrote:
> Hi All. Thanks very much for Joshua, William, Bjoern and Matthew's
> replies.
>
> I've now looked at the famous "Server for 7K" thread. In my case we are
> looking for a server for around 3000 pounds (UK); the server is to be an
> all-purpose web and database server.
>
> Processor:
>
> First of all I noted that we were intending to use Opteron processors. I
> guess this isn't a straightforward choice because I believe Debian (our
> Linux of choice) doesn't have a stable AMD64 port.

Yes it does.  Now sarge has become the new stable release, the amd64
version has also become stable.  It doesn't have as many packages as the
i386 port, but those it has will be supported by the Debian security
team.  Look at the debian-amd64 mailing list for more information.

It only has PostgreSQL 7.4.  To run 8.0, download the source packages
from unstable and build them yourself.  You need postgresql-8.0 and
postgresql-common; if you also have an existing database to upgrade you
need postgresql and postgresql-7.4.

>  However some users on
> this list suggest that Opterons work very well even in a 32 bit
> environment.

You can treat the machine as a 32bit machine and install the i386
version of Debian; it will run rather slower than with 64 bit software.

Oliver Elphick


Re: Help specifying new web server/database machine

From
William Yu
Date:
Rory Campbell-Lange wrote:
> Processor:
>
> First of all I noted that we were intending to use Opteron processors. I
> guess this isn't a straightforward choice because I believe Debian (our
> Linux of choice) doesn't have a stable AMD64 port. However some users on
> this list suggest that Opterons work very well even in a 32 bit
> environment. Some have suggested that a single dual core processor is
> the way to go. The RAM needs to fit the CPU arrangement too; William
> points out that one needs 2 DIMMS per CPU.


Your summary here just pointed out the obvious to me. Start with a 2P MB
but only populate a single DC Opteron. That'll give you 2P system with
room to expand to 4P in the future. Plus you only need to populate 1
memory bank so you can do 2x1GB.

> Disks:
>
> I'm somewhat confused here. I've followed the various notes about SATA
> vs SCSI and it seems that SCSI is the way to go. On a four-slot 1U
> server, would one do a single RAID10 over 4 disks 10000rpm U320 disks?
> I would run the database in its own partition, separate from the rest of
> the OS, possible on LVM. An LSI-Megaraid-2 appears to be the card of
> choice.

With only 4 disks, a MegaRAID U320-1 is good enough. It's quite a
premium to go to the 2x channel MegaRAID. With 4 drives, I'd still do 2
big drives mirrored for the DB partition and 2 small drives for OS+WAL.

Re: Help specifying new web server/database machine

From
Rory Campbell-Lange
Date:
On 09/06/05, William Yu (wyu@talisys.com) wrote:
> Rory Campbell-Lange wrote:

> > ... Some have suggested that a single dual core processor is the way
> > to go. The RAM needs to fit the CPU arrangement too; William points
> > out that one needs 2 DIMMS per CPU.

> Your summary here just pointed out the obvious to me. Start with a 2P MB
> but only populate a single DC Opteron. That'll give you 2P system with
> room to expand to 4P in the future. Plus you only need to populate 1
> memory bank so you can do 2x1GB.

That makes sense. I should by a board with support for 2 Dual-core
Opterons, but only use one Opteron for the moment. Then I should buy
2x1GB RAM sticks to service that processor.

> > ... On a four-slot 1U server, would one do a single RAID10 over 4
> > disks 10000rpm U320 disks? I would run the database in its own
> > partition, separate from the rest of the OS, possible on LVM. An
> > LSI-Megaraid-2 appears to be the card of choice.
>
> With only 4 disks, a MegaRAID U320-1 is good enough. It's quite a
> premium to go to the 2x channel MegaRAID. With 4 drives, I'd still do 2
> big drives mirrored for the DB partition and 2 small drives for OS+WAL.

Should these all RAID1?

I'm a bit worried about how to partition up my system if it is strictly
divided between a system RAID1 disk entity and a DB disk entity, as the
proportion of web server content (images, movies, sounds) to actual
database data is an unknown quantity at the moment.

I typically keep all the database stuff in a /var logical partition and
for this project would expect to keep the web stuff under a /web logical
partition. I was thinking of using LVM to be able to shift around space
on a large (4 x 147GB RAID 1 or RAID10) raided volume. I appreciate that
this may not be optimal for the WAL transaction log.

Thanks for your comments;
Rory

--
Rory Campbell-Lange
<rory@campbell-lange.net>
<www.campbell-lange.net>

Re: Help specifying new web server/database machine

From
Rory Campbell-Lange
Date:
On 09/06/05, Matthew Nuzum (mattnuzum@gmail.com) wrote:
> On 6/9/05, Rory Campbell-Lange <rory@campbell-lange.net> wrote:
> > Disks:
> >
> > I'm somewhat confused here. I've followed the various notes about SATA
> > vs SCSI and it seems that SCSI is the way to go. On a four-slot 1U
> > server, would one do a single RAID10 over 4 disks 10000rpm U320 disks?
> > I would run the database in its own partition, separate from the rest of
> > the OS, possible on LVM. An LSI-Megaraid-2 appears to be the card of
> > choice.

> Can you tell us about your application? How much data will you have,
> what is your ratio of reads to writes, how tollerant to data loss are
> you? (for example, some people load their data in batches and if they
> loose their data its no big deal, others would have heart failure if a
> few transactions were lost)

The application is a web-based prototype system for kids to make their
own galleries based on content found in museums and galleries. They will
link to content provided by curators, and be able to add in their own
material, including movies, sounds and pictures. All the content,
however, will be restricted in size. I also do not intend to store the
movies, sounds or pictures in the database (although I have happily done
the latter in the past).

Up to the data will be uploaded from 3G handsets. The rest will be done
on a per-user, per-pc basis through the web interface.

The service is expected to be used by about 50000 users over 18 months.
Of these around half will be content creators, so will account for say
half a million rows in the main content table and under 2 million rows
in the commentary table. The most used table will probably be a
'history' function required by the contract, tracking use through the
site. I imagine this will account for something like 20 million rows
(with very little data in them).

The main tables will have something like 80% read, 20% write (thumb
suck). The history table will be read by an automated process at 3 in
the morning, to pick up some stats on how people are using the system.

It wouldn't be a problem to very occasionally (once a month) lose a tiny
piece of data (i.e a record). Losing any significant amounts of data is
entirely out of the question.

> If your application is 95% writes then people will suggest drastically
> different hardware than if your application is 95% selects.
>
> Here is an example of one of my servers:
> application is 95+% selects, has 15GB of data (counting indexes), low
> tollerance for data loss, runs on a 1 GHz P3 Compaq server with
> mirrored 35 GB IDE disks and 1.6GB of RAM. Application response time
> is aproximately .1 second to serve a request on a moderately loaded
> server.

Yeah. Maybe the machine I'm speccing up is total overkill for this
project? I'm just worried that if it is a big success, or if we have 400
kids pounding the server at once over high-speed school lines, the thing
will grind to a halt.

Thanks very much for your comments.

Regards,
Rory

--
Rory Campbell-Lange
<rory@campbell-lange.net>
<www.campbell-lange.net>