Hi Bernd
We have had an app server up and running for over 2 years, currently between 250-300 concurrent users serving a complex ERP type application, multi tenancy with a DB per tenancy (200 DB's/Tenants). Extremely reliable.
Did a fair bit of investigating on this before deploying and also spoke to database dba experts as well as hardware suppliers on various hardware/software configurations. Decided to deploy on my hardware in a co-location setup in a local DC (this was far cheaper than a VM for the following specs, in Australia anyway!). This setup also gives me complete configuration control over the DB/hardware settings.
Hardware:
2 x 6 Core Xeon processors @ 2.3 gHz
48 GB RAM
Intel 200 GB SSD drive for the DB
Separate drive for the OS
Separate drive for the document storage (we do a lot of document management in the application)
All drives mirrored
Windows 2012
Servoy 7.4.4
Java 7 update 71 64 bit
MySQL 5.6.24
With 250+ concurrent users my CPU utilisation is less than 3% rarely peaks beyond 5%
My recommendations:
Don't split the app server and DB across 2 physical servers as latency will increase, this may have been acceptable when you could only get 4 CPU cores per physical machine but this is simply not the case anymore.
We tested on Linux vs Windows 2012 with various benchmarks and windows was a little faster but I put this down to drivers for the SSD's being a little immature for Linux at the time. Our DB gurus also told us there was very little performance difference between the 2.
Fill your server with RAM, your DB should always sit in memory for best performance (and RAM is cheap). You therefore only need to consider write performance to the drive.
SSD's drives for the DB are a must (but even Amazon EC2 Servers now support these as standard).
Always hire a DBA expert to tune the settings for the DB configuration (for MySQL, this can make a major difference).
Always use performance monitors for slow queries etc. (for MySQL there are some great tools for this).
Use the 2nd physical server instead for replication (a must) and fault tolerance.
Rodney