Log In
New Account
  
Home My Page Project Cloud Code Snippets Project Openings maemo.org built on Midgard
Summary Tracker Lists Tasks Docs News SCM Bounties Wiki

Server Infra Plan

Goals

Better performance/scalability, get rid of Squid. Server redundancy.

Phases

First phase

Get separate database server to run the MySQL needed for (www.)maemo.org, will also be used in second phase.

This will free CPU-time on the web server for apache to use and prepare for the second phase where dedicated DB server is needed.

Make sure session data is stored using memcached backend.

Second phase

Setup centralized memcached service on the database server.

Setup a shared filesystem for all Midgard nodes to use (rw access), this likely should not be served from the database server, blobs etc are served via this filesystem, therefore any bottlenecks in it are bottlenecks for performance.

Setup N public midgard nodes, need local disk just for OS and local cache files (5GB should be plenty: /tmp / and /var as separate partitions most allocated to /var). Mininum memory 1GB, exact amount and number of cores depends on how we wish to use these (scale sideways or up), I'd say 512MB/core and 4 cores with two nodes is a good start, we can then add nodes (bigger if needed) as neccessary, the router needs to be able to do weighted load-balancing for TCP connections. These will use the central MySQL server and shared filesystem for Midgard data, they will use the shared memcached for session/cached data.

The current server will be moved to "maintenance node" role, it's where all the cron-jobs and user sync etc scripts are run so these won't tax the publicly accessible servers. Do note that this is not a test server, all changes here will direcltly affect production environment, the current test server stays as it is.

Quick musings about servers

All servers need to be able to talk with each other quickly in a private network, this means the publicly accessible machines need two physical interfaces for our use and the interfaces in the private network need to be in the same gbit switch (does the current server that would become the maintenance node have enough interfaces btw?)

MySQL server: fast disks, min 3G memory, min 4 cores (with possibility of adding more if we add plenty of nodes), fast cores.

Shared filesystem: see below

Midgard nodes: We'll start with two nodes, 4 cores and 3G memory each, faster cores are better, no need to be able to add more cores, we'll just add nodes if needed.

> ISP is also interested in the > performance requirements, especially for the shared filesystem. Is NFS > good enough

NFS as protocol should be fine, it's the NFS server setup and network in between that may cause issues. As the for NFS server I can't give much ISP since I have very little experience in tuning it, unless Ixonos has specific expertise in this it's probably best to get the NFS server from Netapp.

I can't give hard numbers on requirements but the nodes will do random access reads and writes to the FS, it should way over 99% reads though so read performance matters much more.


(last edited April 4, 2008) - Read Only [info] [diff])
FindPage by browsing or searching
5 best incoming links: May2008Sprint (10), June2008Sprint (8), April2008Sprint (7), Sprint3Tasks (7), RecentChanges (2)
5 best outgoing links:
5 most popular nearby: June2008Sprint (2116), April2008Sprint (1416), May2008Sprint (1115), RecentChanges (804), Sprint3Tasks (788)

Terms of Use    Privacy Policy    Contribution Guidelines    Feedback

Powered By GForge Collaborative Development Environment