======Server sizing====== When installing an SAP Business One system together with Produmex solutions, both the hardware recommendations of SAP and of Produmex should be taken into account. \\ This document describes the additional hardware recommendations that should be considered on top of the SAP hardware recommendations. \\ Any deviation from these recommendations can lead to performance issues. Please note: all the recommendations in this document are **minimum** recommendations. =====General recommendations===== The general recommendations are independent from the product or components. Specific product-related recommendations are additions to the general recommendations. ====Database server (MSSQL)==== //Memory// \\ The amount of memory allocated to the MSSQL process should be at least equal to the total size of the production databases on the server. Only the size of the MDF files should be taken into account, the size of the log (LDF) files should be ignored. The maximum server memory allocated to the MSSQL process should be set in such a way that a sufficient amount of memory is left free for the operating system. The amount of memory to be left free depends on the operating system. This setting can be set efficiently in an iterative way, by monitoring the amount of free memory. Note: it’s recommended to use archiving functionality whenever possible in order to decrease the size of the production databases, and thus also the amount of memory needed on the database server. Note: the database growth should be taken into account when calculating the size of the databases. Example: * 3 production databases of 65GB, 20GB and 5GB: total 90GB * The operating system requires 8GB to operate. * At least 98GB of memory should be present on the server, out of which 90GB should be allocated to the MSSQL process. ====Database server (HANA)==== //Memory// \\ A recommended minimum of 128GB of memory should be present on the server. \\ Certain installations and configurations are able to operate successfully with lower memory configurations. Partners are encouraged to test different values as each customer's needs are unique.\\ The amount of memory should be at least equal to the total size of the production databases on the HANA server. Note: the database growth should be taken into account when calculating the size of the databases. Example: * 3 production databases of 65GB, 20GB and 5GB: total 90GB * 90GB < 128GB -> A minimum of 128GB is required =====Produmex WMS===== For an installation of Produmex WMS, the recommendations below should be taken into account in addition to the general recommendations. In certain installations, lower values can be used and our partners are encouraged to test less demanding set-ups. However, in case of performance issues, our Support teams will validate that these requirements are being met. ====Summary==== | **Database** | MSSQL | HANA | |:::| Minimum 56GB memory \\ Minimum memory size = DB size \\ +30GB memory / 1000 delivery lines \\ CPU = 4 + users x 0.25 | Minimum 128GB memory \\ Minimum memory size = DB size \\ +50GB memory / 1000 transaction lines / day \\ CPU = 8 + users x 0.5 | | **License server** | 32MB memory \\ 1 CPU || | **Mobile client** | 1GB memory / user \\ CPU = 2 + users x 0.25 || | **Scale service** | 128MB memory \\ 1 CPU / 4 scales || | **Other services** | Requires specific analysis || | **Add-on** | Heavy user | Regular user | |:::| 4GB memory \\ 2 high-end CPU | 800MB memory | ====Scope==== The recommendations below are valid for installations within the following boundaries: * Database size < = 120GB * Average delivery notes lines per day < = 2000 * Concurrent terminal users < = 30 * Concurrent add-on users < = 20 For installations that exceed one or more of these parameters, a more complete analysis is required to determine the hardware requirements. ====Server split-up==== The server roles should be split up as described below. ===MSSQL=== * Database server * Produmex mobile client server * Produmex server (all other Produmex services: license server, notification server, scale server, etc.) * (if any) Presentation server (SAP Business One client through RDP/Citrix) If the only Produmex server is the license server, then the Produmex server can be combined with either the Produmex mobile client server or the Database server on one single machine. ===HANA=== * Database server * Produmex mobile client server * Produmex server (all other Produmex services: license server, notification server, scale server, etc.) * (if any) Presentation server (SAP Business One client through RDP/Citrix) If the only Produmex server is the license server, then the Produmex server can be combined with the Produmex mobile client server on one single machine. ====Database server==== ===MSSQL=== //Memory// \\ The recommendations below should be applied in addition to the [[implementation:general:hardwarerequirementsserver#general_recommendations|general recommendations]]. \\ A minimum of 56GB of memory should be allocated to the MSSQL process. \\ An extra 30GB of memory should be added per 1000 delivery lines per working day (on average). Example 1: * Total size of production databases: 90GB * On average, 1500 delivery lines are created per working day * Recommended memory: 90GB + 30GB * 1.5 = 135GB Example 2: * Total size of production databases: 20GB * On average, 800 delivery lines are created per working day * Recommended memory: 20GB + 30GB * 0.8 = 44GB -> minimum of 56GB //CPU cores// \\ The number of CPU cores should be calculated based on the number of concurrent users (mobile client and add-on combined). \\ The minimum amount of CPU cores is 4 + [concurrent users] x 0.25 (rounded up) Example: \\ 10 add-on users + 8 scanner users -> 4 + (10 + 8) x 0.25 = 8.5 -> minimum 9 CPU cores ===HANA=== //Memory// \\ The recommendations below should be applied in addition to the [[implementation:general:hardwarerequirementsserver#general_recommendations|general recommendations]]. \\ An extra 50GB of memory should be added per 1000 delivery lines per working day (on average). Example 1: * Total size of production databases: 90GB * On average, 1500 delivery lines are created per working day * Recommended memory: 90GB + 50GB * 1.5 = 165GB Example 2: * Total size of production databases: 20GB * On average, 800 delivery lines are created per working day * Recommended memory: 20GB + 50GB * 0.8 = 60GB -> minimum of 128GB //CPU cores// \\ The number of CPU cores should be calculated based on the number of concurrent users (mobile client and add-on combined). \\ The minimum amount of CPU cores is 8 + [concurrent users] x 0.5 (rounded up) Example: \\ 10 add-on users + 8 scanner users -> 8 + (10 + 8) x 0.5 = 17 -> minimum 17 CPU cores ====Mobile client server==== //Memory// \\ 1GB of memory should be counted for each concurrent mobile client running on the server. //CPU cores// \\ The number of CPU cores should be calculated based on the number of concurrent users (mobile client and add-on combined). \\ The minimum amount of CPU cores is 2 + [concurrent users] x 0.25 ====Produmex license server==== The Produmex license server requires 1 CPU core and 32MB of memory. ====Produmex scale service==== The Produmex scale service requires 1 CPU core per 4 connected scales, and 128MB of memory. ====Other Produmex WMS services==== The Produmex notification listener’s requirements highly depend on the configuration. A more complete analysis is required to determine its hardware requirements. ====Add-on==== //Heavy users// \\ Users who use heavy functionality (= functions that require heavy computing) are considered heavy users, and they have higher requirements. The following functions are considered heavy: * Create pick list proposals * Print pick lists * Create sales deliveries * Close production orders * Process cycle count For each heavy user, an extra 4GB of memory and 2 CPU cores should be counted. A high-end CPU is also highly recommended (e.g. core i7 instead of core i3). //Regular users// \\ For users who don’t use heavy functionality, an extra 800MB of memory should be counted for the add-on. =====Produmex Manufacturing===== ====Summary==== | **Database** | MSSQL | HANA | |:::| Minimum memory size = DB size | Minimum 128GB memory \\ Minimum memory size = DB size | | **Service Broker** | 16GB memory \\ 4 CPU || | **Add-on** | Heavy user | Regular user | |:::| 4GB memory \\ 2 high-end CPU | 800MB memory | ====Server split-up==== The server roles should be split up as described below (there’s no difference between MSSQL and HANA). * Database server * Produmex service broker server * (if any) Presentation server (SAP Business One client through RDP/Citrix) ====Database server==== The [[implementation:general:hardwarerequirementsserver#general_recommendations|general recommendations]] are sufficient. ====Produmex service broker server==== //Memory// \\ 16GB of memory should be counted for the service broker, independently from the amount of concurrent connections and the number of modules. //CPU cores// \\ 4 CPU cores should be counted for the service broker, independently from the amount of concurrent connections and the number of modules. ====Add-on==== //Heavy users// \\ Users who use heavy functionality (= functions that require heavy computing) are considered heavy users, and they have higher requirements. The following functions are considered heavy: * MRP * Cost calculation * Job scheduling control panel * Production management cockpit For each heavy user, an extra 4GB of memory and 2 CPU cores should be counted. A high-end CPU is also highly recommended (e.g. core i7 instead of core i3). //Regular users// \\ For users who don’t use heavy functionality, an extra 800MB of memory should be counted for the add-on. =====Produmex Scan, Operator===== ====Summary==== In certain installations, lower values can be used and our partners are encouraged to test less demanding set-ups. However, in case of performance issues, our Support teams will validate that these requirements are being met. | **Database** | MSSQL | HANA | |:::| Minimum memory size = DB size | Minimum 128GB memory \\ Minimum memory size = DB size | | **Service Broker** | 16GB memory \\ 4 CPU || | **Add-on** | 256MB memory || ====Server split-up==== The server roles should be split up as described below (there’s no difference between MSSQL and HANA). * Database server * Produmex service broker server * (if any) Presentation server (SAP Business One client through RDP/Citrix) ====Database server==== The [[implementation:general:hardwarerequirementsserver#general_recommendations|general recommendations]] are sufficient. ====Produmex service broker server==== //Memory// \\ 16GB of memory should be counted for the service broker, independently from the amount of concurrent connections and the number of modules. //CPU cores// \\ 4 CPU cores should be counted for the service broker, independently from the amount of concurrent connections and the number of modules. ====Add-on==== An extra 256MB of memory should be counted on work stations that use the add-on. =====Other recommendations===== ====MSSQL server configuration==== ===Compatibility level=== The compatibility level of all databases should be set to the same level as the MSSQL server. {{:implementation:general:compatibility_level.png|}} ===Hard drive separation=== If the server has 2 separate physical drives, then the MDF and the LDF files should be stored on separate drives. \\ If the server has only one physical drive, then the MDF and the LDF files should be stored on the same drive. ====Virtualization==== If the servers are virtualized, extra memory and CPU cores should be counted for overhead. ===Hard disks speed=== Depending on the type of hard disks, and the usage of virtualization, the hard disks speed should be optimized. \\ SSD drives provide the best raw speed; for hard drives, using a proper RAID configuration is necessary. \\ Especially in the case of virtualized servers, make sure that the hard disk settings are tuned properly for the best performance possible. ====Server role separation==== Critical services should run alone on their server, so they do not compete for hardware resources with other processes. \\ The database server, Produmex mobile client server and Produmex service broker servers are all critical services that should be separated. \\ All other applications and services (including file server, print server, exchange server, SharePoint, web servers, etc.) should run on other servers than the ones hosting the critical services. ====Presentation server==== If there is a presentation server (RDP/Citrix), where the SAP Business One client runs, then the “heavy users” of the add-on should be separated from the “regular users”. Heavy users typically execute complex computational functions that require a lot of hardware resources, and separating them will reduce the impact of these complex computational functions on regular users. ====Network==== The recommended connection between each server and the database server should be a link aggregation of 4 gigabit ethernet connections.