Mifos System Recommendations v1.6
These represent the Mifos System Recommendations for our current release: Mifos 1.6 (please see subtopics for recommendations for previous releases)
Mifos Server System Recommendations v1.6
Recommended software configuration
Software Runtime Environment
Operating system: Ubuntu 9.04 Server or Windows 2003 server (for application and database server)
Java: JDK 6
Application server: Tomcat 6.0.18
Database: MySQL 5.1.31 (for database server)
Report Designer: BIRT 2.5.1 (later versions of BIRT will not work with Mifos)
Software Settings
JVM settings: -Xms512M -Xmx1024M -XX:MaxPermSize=512M
MySQL Settings: Buffer Pool Size=1024M, Max Connections=300
Connection Pool Settings
It is recommended that connection pooling be enabled. If you have an existing my.hibernate.properties file, modify it by adding the following lines:
hibernate.c3p0.acquire_increment=5
hibernate.c3p0.idle_test_period=30
hibernate.c3p0.max_size=100
hibernate.c3p0.max_statements=0
hibernate.c3p0.min_size=20
hibernate.c3p0.timeout=30
See the Hibernate manual for more information.
Please view the following table below to see which MFI size classification your organization fits into. This classification can help you in assessing the recommended systems requirements for deploying Mifos. Please note that these are all approximate numbers and your actual statistics won't fully mirror these classifications.
entities
Small mfi
mid-sized mfi
large mfi
clients
6,000
120,000
1,000,000
accounts
15,000
270,000
2,580,000
loan accounts
9,000
150,000
1,250,000
savings accounts
6,000
120,000
1,330,000
branches
5
45
200
centers
240
3,825
28,000
groups
1,200
14,000
200,000
loan officers
20
260
1,700
Recommended hardware configuration
For small- to mid-sized MFIs.
Machines
1TB RAID 5 SATA disk storage
4GB RAM
2x dual-proc, dual-core 3.5 Ghz CPUs (Xeon/Core 2 Duo/whatever kind of 32-bit Intel chip is cheapest)
redundant chassis power supplies
wake-on-LAN
Infrastructure
4 megabits/sec upstream and downstream bandwidth
uninterrupted power supply
separate boxes for MySQL and Tomcat servers
replicated MySQL instances
Dual Ethernet cards
remote management console (so you can remotely power cycle the box and maybe get a serial console)
Examples of configurations currently being used in deployments
Al Majmoua
Database and application server (combined)
Grameen Koota
Database server
Proliant DL380G5
Dual-core Intel Xeon5060 processor(3.20GHz)
4MB(2 x 2)Level cache
4GB(4 x1)GB)PC2-5300 Fully Buffered DIMMs(DDR2-667)
146 GB scsi HDD
Dual NC373I Gigabyte Ethernet card
Operating system: Windows 2003 server R2 standard edition
Software
MySQL Database Server
MySQL Administrator
MySQL Query Browser
Escan Antivirus
Application server
Proliant DL380G5
Dual-coreIntel Xeon5060 processor(3.20GHz)
4MB(2 x 2)Level cache
2GB(2 x1)GB)PC2-5300 Fully Buffered DIMMs(DDR2-667)
76 GB scsi HDD
Dual NC373I Gigabyte Ethernetcard
Operating system: Windows 2003 server R2 standard edition
Software
Tomcat
Sun Java
Escan Antivirus
See Also
Mifos Client System Recommendations v1.6
Recommended software configuration
Linux
Ubuntu 9.x Desktop Edition
FireFox 3.x
Default PDF Reader (from Ubuntu Distribution)
NOTE: Any well known Linux distributions (not older than 2 years) with FireFox 3.x and a PDF Reader should be equivalent to the recommended configuration.
Windows
Windows XP Service Pack 3
FireFox 3.x OR Internet Explorer 7
Adobe PDF Reader 8.x or higher
NOTE: Hardware requirements will be higher for "Windows Vista" or "Windows 7".
Recommended hardware configuration
Processing Power: Pentium 1.6 MHz (minimum Pentium 450 GHz, equivalent or more).
RAM: 512 MB (minimum 256 MB or more).
Storage: No special storage requirement except Software installation space. Keep free space (5 GB or more) for normal operations.
Internet connection: 256kbps_ (minimum 56 kbps_ or more), 8 kilo bits per second(kbps) = 1KB/s
NOTES:
Given Hardware Requirements are on the assumption that client system only runs recommended software with default settings.
Mifos Client System -> One Computer Unit
It's possible to use less than recommended hardware requirements, but we can not support performance on those platforms.