There are two main questions to inevitably arise when deploying 1cfresh service (or any other system for that matter):
- What kind of hardware do we need to cope with expected workload?
- How many users can comfortably work with the service at the hardware configuration that we have?
Answering the first question we are looking for a balance between hardware performance (we don’t want to pay for the power that we don’t really need) and user experience (we have to secure effective usage of the system). The second question arises, for example, when we are looking at our current hardware and trying to figure out how many users it can cope with.
This sizing guide is based on the official 1C recommendations that provides information on various scenarios for choosing hardware. In our case we had the opportunity to use service 1cfresh.com hosted by 1C LLC as a model system, so we followed the scenario “Multi-user model systems \ Somebody else’s live system”.
CPU cores and RAM size calculation
We started with CPU cores and RAM size calculation (“CPU and RAM” sheet). First of all we found out that one 1cfresh service node is able to cope with 300 users and has the following hardware characteristics:
- CPU cores - 8
- RAM size - 24 Gb
- CPU cores - 24
- RAM size - 96 Gb
So we entered 300 in “Number of active users \ Model system” cell. We don’t know the number of active users in the target system (for the system is not existent so far), therefore we decided to calculate all hardware characteristics for 1 user and for that purpose we input 1 into the corresponding cell.
Then we input CPU cores and RAM size data into corresponding cells and set utilization ratio to 100% (on the assumption that the model system hardware is fully utilized by 300 users and its characteristics are in perfect balance). It gave us bunch of coefficients that have clear meanings. For example, “0.027” in target system CPU cores cell means that one target system user will utilize 0.027 of one processor core (or, in other words, 2.7% of its time).
Having these coefficients we can draw up a sizing-guide table that automatically calculates hardware characteristics for any given number of users. We can also calculate the number of users who can cope with any given hardware configuration.
So, we created “sizing-gude.xlsx” file with simple formula that contains only the number of users and the coefficients calculated earlier.
Disk array performance calculation
Our model system (1cfresh.com) divided into segments one of those works with IBM Storewize v7000 disk array. We collected the information of the overall disk array utilization during one working day when there were 470 concurrent users in the segment. Then we input this data into the sheet “Disk array” of "MyCalculation.xlsx" file. It gave us relative disk performance we need to provide per one user of our system: 0.1147% of the array read bandwidth and 0.0426% of its write bandwidth.
After this we recalculated the relative performance into conventional disk performance characteristics: IOPs (input/output operations per second) and MB/s (megabyte per second). We know that the model system IBM Storwize v7000 disk array’s overall bandwidth is 250 IOPs and 125 MB/s. We also know that read/write operations ratio for the typical 1C system is 80/20, so we just take 0.8 fraction of one user read utilization and 0.2 fraction of its write utilization and multiplied it to the overall disk array bandwidth.
This calculation gave us IOPs and MB/s we need to provide for one user of target system (0.2507 and 0.1254 respectively). Than we used these coefficients in our “sizing-gude.xlsx” file on the “Single server” sheet (model system uses a single disk array, so we cannot divide its utilization into 1C:Enterprise and DBMS parts).
This sizing guide can help you choose well-balanced and efficient hardware for 1cfresh-based service you are about to deploy.
To get your hardware characteristics evaluation just download the “sizing-gude.xlsx” file and fill up the yellow cells with your data. The result will be automatically calculated in the green cells.
First sheet of the file contains tables for two servers configuration (when 1C:Enterprise and DBMS work on separate computers). To use the first table of the sheet you need to input the number of users into A5 cell. The table will produce the recommended hardware characteristics. The second sheet solves inverse problem, calculating the number of users from hardware characteristics you input into B11 - E11 cells.
Please note that every hardware characteristic has its own number of users it can cope with. The resulting number of users will be defined by the minimum number for all characteristics. The thing is that overall computer performance is as high as the performance of its slowest component. If, for instance, CPU can withstand 10 users only - it will be the lim it for the entire system, even though other components can cope with much higher workload.
The second sheet contains tables for single server case - when both 1C:Enterprise and DBMS work on the same computer. Preparing formulas for these tables we just summed up the corresponding coefficients from the first sheet. Say, the CPU cores coefficients are 0.0267 and 0.08 for 1C:Enterprise and DBMS working on separate computers. It means that one user will utilize 2.67% of the first computer and 8% of the second. When we run both servers on a single computer the utilisation will just sum up and comprise 2.67 + 8 = 10.67% or 0.1067 of 1 CPU core.
This tables also include the disk array performance calculation cells in terms of IOPs and MB/s. You can use these numbers as a criteria when choosing the disk array for your service. Please note that this sizing-guide is only applicable when you use single disk array for both 1C:Enterprise and DBMS (but the servers can be run on the separate computers though).