Prophet 21 Web Application Servers
The servers for the Prophet 21 Web Application are going to be similar to those you would use for a remote desktop server based deployment. Even though the platform has changed, the architecture of P21 is the same as it always was.
Prophet 21 is built to do a few really big things, and a whole bunch of really little things. 99.7% of the queries executed on the average P21 database would not benefit from being spread across multiple CPU cores. It’s what we refer to a a single thread application. The majority of the application logic also will not really benefit from running on multiple CPU cores.
This means that we really get the best performance from the Prophet 21 Web Application on a processor that is single thread optimized. This doesn’t mean the “highest Gigahertz” or clock speed. It doesn’t mean the most cores. It means “single thread optimized”. This is a very key point, and is the leading difference between a fast Prophet 21 Web Application, and a “just ok” application.
Fortunately, there are websites that benchmark CPUs for exactly this kind of performance. We like Passmark (https://www.cpubenchmark.net/singleThread.html). They have a comprehensive list and we highly recommend it.
Database Server for the Prophet 21 Web Application
I would say that when you are configuring hardware for your database server, keep the following in mind:
- CPU: as I mentioned above, a single thread optimized CPU will benefit you here for the simple reason that less than 1 percent of queries that run on P21 will benefit from spreading over multiple cores. Choose your CPU with this in mind. Typically we would recommend planning for 15 to 25 users per database core, with a minimum of 2 cores (preferably 4).
- RAM: In our experience, most database servers have way more RAM than they need. A decent rule of thumb is to have enough RAM to equal one-half your P21 database size. This is most likely much more than you need. However, it is a good starting point. THe only way to dial that number in tightly is to monitor the database in production and tune it accordingly.
- Storage: High Speed storage in RAID 10. Yes RAID 10 is the most expensive because you get less usable storage. But it is the best for read/write performance in a transactional database, so use it. RAID 10 on an SSD drive array will give you high performance and high fault tolerance for your Prophet 21 Web Application.
The Prophet 21 Web Application middleware server is where you will host the application layer of P21. It also benefits from the same architecture as the database server to get maximum performance.
- CPU: I cannot stress this enough “single thread optimized” is the key issue. Get this right because it really, really matters…..a lot. For capacity planning, we still don’t have as much data as we would like to have on this as we’d like. On the desktop, we would plan for 6-9 users per CPU core, with a maximum of 35-40 users per server. The Prophet 21 Web Application will take more users per core, but it seems to be a little more case by case as to how many. At the moment, we start planning at 12-18 users per core, 60-70 users per middleware server. This is likely to be a bit of a moving target for any implementation above 40 or so users.
- RAM: This is is going to be largely driven by the number of users and integrations per server. I would start at approximately 250Mb per user plus 6Gb for system overhead. As an example, the average 25 user environment might have 12-15Gb of RAM.
- Storage: Again we like high speed storage in RAID 10. It is all about getting the best performance, so if you are provisioning storage for the database server, add in enough capacity for your Prophet 21 Web Application middleware server too.
The last point I would make here revolves around the number of middleware servers you might decide to have. For instance, if you are running a heavy duty e-commerce integration or something, you will want to monitor performance closely to assess the possibility of running a separate middleware instance for loads that you do not want to affect your users’ experience. There are also considerations around having fault tolerance and load balancing in your infrastructure to maintain higher availability.
When planning your network, you will want to use Gigabit (1000Mbs) at a minimum. 10Gb Ethernet is great if it is in the budget, but bonding/teaming a few Gigabit NICs is an effective strategy too if not. I think a common sense approach should rule the day. A 20 user implementation is not going to benefit from a large investment in a fibre channel network in most cases. At the same time, having a good switch, good cabling, and configuring the network correctly will go a long way to getting good performance from the Prophet 21 Web Application.
Clients for the Prophet 21 Web Application
The Prophet 21 Web Application is a different architecture than what you may be used to if you have been running the desktop client. It’s not insurmountable by any means. If you stick to the fundamental blocking and tackling issues, CPU, RAM, and storage, then you should be to create very strong performance, without necessarily breaking the bank. Just remember that if you skimp now, you’ll pay for it a little bit with every transaction you enter into the system.