Hardware Sizing:
To determine database size:1. Identify entities
2. Determine the record size of entity (KB)
3. Determine the index size of entity (KB)
4. Determine initial data load
5. Determine record created on daily basis by users and programs.
6. Identify weekly and monthly programs
7. Identify year on year growth
9. Calculate total data size expected
To determine CPUs:
What is CPU:
Two typical components of a CPU are the following:
•The arithmetic logic unit (ALU), which performs arithmetic and logical operations.
•The control unit (CU), which extracts instructions from memory and decodes and executes them, calling on the ALU when necessary.
CPU will correspond to number of servers required:
What is Core:
A core is usually the basic computation unit of the CPU - it can run a single program context (or multiple ones if it supports HW threads such as hyperthreading on intel CPUs), maintaining the correct program state, registers, and correct execution order, and performing the operations through ALUs. For optmization purposes, a core can also hold on-core caches with copies of frequently used memory chunks.
A CPU may have one or more cores to perform tasks at a given time. These tasks are usually software processes and threads that the OS schedules. Note that the OS may have many threads to run, but the CPU can only run at a given time X such tasks, where X = number cores * number of HW-threads per core. The rest would have to wait for the OS to schedule them whether by preempting currently running tasks or any other means.
YOU should assume 4 core per CPU
No. of servers/CPUs will depend on following1. Concurrent users
2. No. of users per CPU core from perforamnce benchmark point of view
3. Average of complexity/activities expected in scale of 10
4. Number of coresper socket of app server
5. Number of cores per socket of DB server
6. Add server if High availability is required
Determine RAM
RAM= Number of CPUs* Number of Cores * 2