FileCloud Sizing Guide

This document explains hardware sizing and high availability setup for FileCloud deployments.

  • The FileCloud system can be deployed on physical servers 
  • FileCloud Server can also be deployed in a virtualized environment (VMware, XEN) 
  • The FileCloud system integrates with any NFS, CIFS, SAN appliance, or s3 compatible object-storage system for file storage


FileCloud Hardware Sizing

The following table shows the underlying usage assumptions used to calculate FileCloud Hardware requirements.

The model assumes:

  • a user interacts 60 times per days using one of the FileCloud clients (browser, mobile app, Drive client) 
  • every user synchronizes data with a Sync client on an average of 2.5 computers 

Based on these usage assumptions, FileCloud servers need :

  • to handle 290-300 calls per second 
  • to support 3000 users

FileCloud Performance Model

Browser + Mobile + Drive Apps


Browser + Mobile + Drive Client Interactions Per Day

60

No of API calls per Interaction

20

Calls Per Second Per User

0.013889

  

Desktop Sync App


% of Users using sync app

250

Sync Check Frequency (secs)

30

Sync App Online (Hours)

24

Calls Per Second per User

0.083333



Total Calls Per Second Per User (Sync + other Apps)

0.097222



User Counts


Total users in installation

3000

Total Calls Per Second

291.67



Server Performance


Server Handles Requests Per Second

125

Servers Needed

2.33

  

8-16 CPU 2.6 GHz Intel Xeon with 32 GB RAM

~125-150 reqs/sec


To calculate how many web server nodes you will need to support based on number of users, you can use the linked spreadsheet. 

FileCloud Sizing Model.xlsx

High-Availability Requirements

The following diagram explains the FileCloud High Availability Setup

 


ComponentRequirementsNotes
Web App Server

1 AWS m4.2xlarge instance can handle approximately 125-150 FileCloud requests per second.

To handle 3000 users one will require 2-3 web server instances with m4.2xlarge configuration. 

AWS m4 instances uses processors identical to Intel E5-2670 v3 processors. 

To equate this to a virtualized environment, you will require 3 VM nodes and each node need to have the following specs: 8 vCPUs and 32 GB RAM. 

SSDs are recommended for application servers. 



Load Balancer

You must have a software (haproxy) or hardware load balancer for the web application servers.

In a virtualized environment, a load balancer is equivalent to a computer with the following specs:

  • 1-2 vCPU
  • 4-8 GB RAM

If you choose to go with HAPROXY, you must use one of the specs for the load balancer:

  • m4.large
Database Server

You will need a 3 node MongoDB replica set for FileCloud HA configuration.

  • Each node must have the specs of m4.xlarge or equivalent configuration.  
  • In a virtualized environment it is equivalent to 8-16 vCPU and 16-32 GB RAM.
  • More RAM is better for the Database because MongoDB keeps the working set in RAM
  • SSDs are recommended for database servers

You can probably use 1 TB SSD for each of the node.

It is ideal if the MongoDB node VMs can be housed in different physical host.

Network

For the front-end network, the following is recommended:

  • A gigabit or 10GigE network leading to a load balancer and from the load balancer to the 3 web app servers.
  • At least a gigabit Ethernet

For internal networking between the servers, the following is also recommend:

  • At least a Gigabit Ethernet to reduce the potential for bottlenecks.

Each server should have a dedicated connection to:

  • Database cluster
  • File storage (CIFS, NFS or SAN).
File Storage

If an average usage is 5-10 GB per user, then you will require:

  • 25-30 TB space (3000 users) in your storage appliance
  • Storage must be exposed as CIFS or NFS share in the web application server instances