When we start the installation, we decide the purpose of the server based on the expected database size. If the database is under 100 GB, we will allocate resources accordingly. If the database will be about 100 terabytes or 500 terabytes, then we adjust our allocation. Sometimes, in our UAT (User Acceptance Testing) databases, we allocate less memory, which can cause some minor issues.
Otherwise, in production environments, we take our time. When switching to new hardware, we dedicate at least three months to proper testing. We purchase hardware licenses, software licenses, and database licenses all together.
We never rush installation because we conduct thorough testing. We test everything from the production database to the standby database. We heavily load the standby database, and if it performs perfectly, then we switch roles – standby becomes production and vice versa. We perform many transactions on both sides to check the load balance.
Once satisfied, let's say we have 20,000 users, each with approximately three active sessions – that's potentially 60,000 sessions. We observe how the server handles this, how much CPU is consumed during peak times.
Peak times in most organizations are generally from nine to five, with cool down from ten to twelve, then after breaks, again from 02:00 to 04:30 P.M. We monitor CPU consumption and RAM utilization during these peak hours. We check every step, and only when we say, "Okay, this server can support our new hardware and software, we have no issue" – only then do we make the switch.