# Scalability: numerous servers vs. powerful servers

**URL:** <https://www.ruby-forum.com/t/scalability-numerous-servers-vs-powerful-servers/88460>\
**Category:** Rails\
**Created:** [March 11, 2007, 3:15pm UTC](https://www.ruby-forum.com/t/scalability-numerous-servers-vs-powerful-servers/88460 "2007-03-11T15:15:11Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![pjay](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/54ee81/32.png) [@pjay](https://www.ruby-forum.com/u/pjay)\
**Post date:** [March 11, 2007, 3:15pm UTC](https://www.ruby-forum.com/t/scalability-numerous-servers-vs-powerful-servers/88460/1 "2007-03-11T15:15:11Z")

</div>

Hi all,

I’ve been the sysadmin for a Rails site hosted on four dedicated  
servers. One front-end which serves static files and dispatches dynamic  
requests to two application servers. And one DB server.

This split architecture has led to some problems over time, such as  
latency, NFS errors and definitely adds complexity. I do not even  
benefit from redundancy, beside the app servers.

I’m pretty sure the site would run OK on a single powerful server  
instead of these four entry-level servers. I also want to keep it  
scalable, this site should go up in frequency very soon. I’m currently  
studying two possibilities: adding more entry-level servers or replacing  
them all by one or two powerful servers.

In brief, do you favor powerful servers or lots of servers ? What do you  
think ?

Thanks for your replies and experiences,

pjay

---

<div class="post-metadata">

**Author:** ![pjay](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/54ee81/32.png) [@pjay](https://www.ruby-forum.com/u/pjay)\
**Post date:** [March 11, 2007, 6:16pm UTC](https://www.ruby-forum.com/t/scalability-numerous-servers-vs-powerful-servers/88460/2 "2007-03-11T18:16:22Z")

</div>

My understanding is as follows:

Typically, we horizontally scale the web server (more low-end  
machines) and vertically scale the apps and database servers (high end  
machines). Then redundancy (high availability, disaster recovery) will  
dictate how many app servers and database servers will be required in  
your architecture.

This is based on my experience with a fairly high volume web site  
running on J2EE.

Rajesh

---

<div class="post-metadata">

**Author:** ![pjay](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/54ee81/32.png) [@pjay](https://www.ruby-forum.com/u/pjay)\
**Post date:** [March 14, 2007, 12:29am UTC](https://www.ruby-forum.com/t/scalability-numerous-servers-vs-powerful-servers/88460/3 "2007-03-14T00:29:06Z")

</div>

For the database, are you doing synchronous or asynchronous  
replication? Also, what kind of load to your databases see?

On 3/13/07, Wes [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> and file storage. If you can solve these two issues then I see no
> 
> >

–  
EPA Rating: 3000 Lines of Code / Gallon (of coffee)

---

<div class="post-metadata">

**Author:** ![pjay](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/54ee81/32.png) [@pjay](https://www.ruby-forum.com/u/pjay)\
**Post date:** [March 14, 2007, 12:07am UTC](https://www.ruby-forum.com/t/scalability-numerous-servers-vs-powerful-servers/88460/4 "2007-03-14T00:07:00Z")

</div>

Since this is somewhat of an opinion-based topic, I’ll speak from my  
own experience. Downtime where I am at is greatly frowned upon -  
because of this I also favor using redundant, smaller servers.

In addition to reducing downtime, this will help you if you need added  
capacity - you’ve already forced yourself to think about scaling and  
as a result can just tack on added machines as needed.

The two most difficult areas to scale (in my opinion) are the database  
and file storage. If you can solve these two issues then I see no  
reason why smaller servers wouldn’t suffice and in fact be beneficial.

I have had success running a centralized NFS store over a backend  
gigabit network on a RAID5 server w/ high speed SCSI disks. The  
database replication I have been toying with has been MySQL’s  
clustering.

Wes

---

<div class="post-metadata">

**Author:** ![pjay](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/54ee81/32.png) [@pjay](https://www.ruby-forum.com/u/pjay)\
**Post date:** [March 14, 2007, 7:52pm UTC](https://www.ruby-forum.com/t/scalability-numerous-servers-vs-powerful-servers/88460/5 "2007-03-14T19:52:56Z")

</div>

Doing synchronous replication via the clustering in MySQL 5.1.

I do not see high loads at all - however our applications are very low  
on inserts. (no less than 99% of SQL commands are SELECTS).

The database servers talk on their own gigabit VLAN and have a load  
balancer in front of them that gives a unified IP for the applications  
to hit.

Wes

---

<div class="post-metadata">

**Author:** ![pjay](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/54ee81/32.png) [@pjay](https://www.ruby-forum.com/u/pjay)\
**Post date:** [March 15, 2007, 2:41am UTC](https://www.ruby-forum.com/t/scalability-numerous-servers-vs-powerful-servers/88460/6 "2007-03-15T02:41:49Z")

</div>

Here’s a great PDF on MySQL HA solutions…  
[http://imysql.cn/files/download/MySQL\_WhitePaper\_MySQL\_HA\_Solutions.pdf](http://imysql.cn/files/download/MySQL_WhitePaper_MySQL_HA_Solutions.pdf)
