# Architecture or Hardware Specs for a Chef Server with around 15k nodes

**URL:** <https://discourse.chef.io/t/architecture-or-hardware-specs-for-a-chef-server-with-around-15k-nodes/8216>\
**Category:** Chef Infra (archive)\
**Created:** [April 11, 2016, 7:58pm UTC](https://discourse.chef.io/t/architecture-or-hardware-specs-for-a-chef-server-with-around-15k-nodes/8216 "2016-04-11T19:58:08Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![okram999](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/okram999/32/1083_2.png) [@okram999](https://discourse.chef.io/u/okram999)\
**Post date:** [April 11, 2016, 7:58pm UTC](https://discourse.chef.io/t/architecture-or-hardware-specs-for-a-chef-server-with-around-15k-nodes/8216/1 "2016-04-11T19:58:08Z")

</div>

I have been mostly working on the chef-client side, so far. Please throw in some tips, to get my research started. I am looking to set up a chef server with around 15k nodes.  
Are there different set up or architectures of setting up the chef server?  
What is the recommended hardware spec for this kind of server. I think the frequency of chef-client runs on each nodes will play a major role too in the server’s harsware spec

---

<div class="post-metadata">

**Author:** ![nclemons](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/nclemons/32/3374_2.png) [@nclemons](https://discourse.chef.io/u/nclemons)\
**Post date:** [April 11, 2016, 8:00pm UTC](https://discourse.chef.io/t/architecture-or-hardware-specs-for-a-chef-server-with-around-15k-nodes/8216/2 "2016-04-11T20:00:25Z")

</div>

Off the cuff, ensure you have at least 4G of RAM. You may need more for that many nodes, I haven’t run at that scale, but definitely don’t skimp on the RAM side of the equation.

Nathan Clemons

DevOps Engineer

Moxie Cloud Services (MCS)

O +1.425.467.5075

M +1.360.861.6291

E [nclemons@gomoxie.com](mailto:nclemons@gomoxie.com)

W [www.gomoxie.com](http://www.gomoxie.com)[http://www.gomoxie.com/](http://www.gomoxie.com/)

---

<div class="post-metadata">

**Author:** ![Galen\_Emery1](https://avatars.discourse-cdn.com/v4/letter/g/46a35a/32.png) [@Galen\_Emery1](https://discourse.chef.io/u/Galen_Emery1)\
**Post date:** [April 11, 2016, 8:33pm UTC](https://discourse.chef.io/t/architecture-or-hardware-specs-for-a-chef-server-with-around-15k-nodes/8216/3 "2016-04-11T20:33:30Z")

</div>

We actually have a pretty good doc on scaling the chef server. (1)

As you mentioned, the scale concern isn’t so much the nodes but the  
frequency of check ins. In addition to the frequency, use of search,  
storing additional attributes in the node object, or storing fewer  
attributes all have an effect on the size you’ll need.

One of our engineers, Irving has a great blog post on scaling the chef  
server(2), where he goes into some of the details.

The tl;dr is a chef server at 15k nodes needs to be pretty beefy and you  
might want to consider setting up high availability and/or replication to  
break that up.

1. [https://docs.chef.io/server\_components.html](https://docs.chef.io/server_components.html)
2. 

[http://irvingpop.github.io/blog/2015/04/20/tuning-the-chef-server-for-scale/](http://irvingpop.github.io/blog/2015/04/20/tuning-the-chef-server-for-scale/)

–Mobile Galen

---

<div class="post-metadata">

**Author:** ![okram999](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/okram999/32/1083_2.png) [@okram999](https://discourse.chef.io/u/okram999)\
**Post date:** [April 12, 2016, 5:45am UTC](https://discourse.chef.io/t/architecture-or-hardware-specs-for-a-chef-server-with-around-15k-nodes/8216/4 "2016-04-12T05:45:01Z")

</div>

What is a node object being referenced below?

_The default maximum allowable size for a node object is 1MB, although it_  
\_ is rare for nodes to exceed 150KB. Though compressed, this data is \_  
\_replicated twice, once in Apache Solr, and once in PostgreSQL. In \_  
\_practice, allowing a conservative 2MB of storage on the disk partition \_  
_per node should be sufficient_

---

<div class="post-metadata">

**Author:** ![kallistec](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/kallistec/32/23_2.png) [@kallistec](https://discourse.chef.io/u/kallistec)\
**Post date:** [April 12, 2016, 3:24pm UTC](https://discourse.chef.io/t/architecture-or-hardware-specs-for-a-chef-server-with-around-15k-nodes/8216/5 "2016-04-12T15:24:43Z")

</div>

> [@okram999](#):
>
> What is a node object being referenced below?

It's the ruby object that you reference as `node` in your cookbooks. The bulk of its data is from ohai and your default/normal/override attributes. It gets sent to the server in JSON form, which is what I would guess those measurements are based on.

---

<div class="post-metadata">

**Author:** ![okram999](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/okram999/32/1083_2.png) [@okram999](https://discourse.chef.io/u/okram999)\
**Post date:** [April 13, 2016, 10:38pm UTC](https://discourse.chef.io/t/architecture-or-hardware-specs-for-a-chef-server-with-around-15k-nodes/8216/6 "2016-04-13T22:38:31Z")

</div>

This is not going to be on AWS but inside a data center. And i think the HA comes out of box for aws.

I am looking at the tired set-up. With the tired setup how do i install to have multiple backend servers? Will the backend servers replicate one another?

---

<div class="post-metadata">

**Author:** ![shortdudey123](https://avatars.discourse-cdn.com/v4/letter/s/ecc23a/32.png) [@shortdudey123](https://discourse.chef.io/u/shortdudey123)\
**Post date:** [April 14, 2016, 12:31am UTC](https://discourse.chef.io/t/architecture-or-hardware-specs-for-a-chef-server-with-around-15k-nodes/8216/7 "2016-04-14T00:31:50Z")

</div>

I run 2 frontends and 3 backends in my setup. I have both frontends  
pointed to 1 backend. Each backend runs GlusterFS and mounts it to the  
data directory (/var/opt/opscode/) for chef. Fair warning though, the chef  
docs ([https://docs.chef.io/chef\_system\_requirements.html](https://docs.chef.io/chef_system_requirements.html)) say “The Chef  
server MUST NOT use a network file system of any type”, however, i have not  
had any issues with several thousand nodes.

-Grant
