System Requirements and Capacity Planning
This page describes the operating system, hardware, software and network requirements of the 2WinScada server and how to choose hardware for the size of the project.
Operating system
Setup runs only on 64-bit (x64) Windows. Before installation starts, it checks the Windows edition, the build number and the vendor's support period; on an edition that is not in the list or whose support has ended, install, upgrade and repair stop before they begin. ARM64, 32-bit Windows and Windows Server Core / Nano Server are not supported.
| Windows edition | End of support accepted by Setup |
|---|---|
| Windows 11 Pro / Pro N 25H2 | 2027-10-12 |
| Windows 11 Pro / Pro N 26H1 | 2028-03-14 |
| Windows 11 Pro / Pro N 26H2 | 2028-10-10 |
| Windows 11 Enterprise / Enterprise N 23H2 | 2026-11-10 |
| Windows 11 Enterprise / Enterprise N 24H2 | 2027-10-12 |
| Windows 11 Enterprise / Enterprise N 25H2 | 2028-10-10 |
| Windows 11 Enterprise / Enterprise N 26H1 | 2029-03-13 |
| Windows 11 Enterprise / Enterprise N 26H2 | 2029-10-09 |
| Windows 11 Enterprise LTSC 2024 | 2029-10-09 |
| Windows 10 Enterprise LTSC 2019 | 2029-01-09 |
| Windows 10 Enterprise LTSC 2021 | 2027-01-12 |
| Windows 10 IoT Enterprise LTSC 2021 | 2032-01-13 |
| Windows Server 2019 Standard / Datacenter (Desktop Experience) | 2029-01-09 |
| Windows Server 2022 Standard / Datacenter (Desktop Experience) | 2031-10-14 |
| Windows Server 2025 Standard / Datacenter (Desktop Experience) | 2034-11-14 |
Windows 10 Pro / Pro N 22H2 is accepted for compatibility with existing sites; a supported version is recommended for new installations.
INFO
The list comes with the installation package and may be updated in new versions. Setup checks whether a computer is suitable before the first screens and shows the reason if it is not.
Hardware
| Usage | Minimum RAM | Note |
|---|---|---|
| Full stack: SQL Server, the archive database (QuestDB), IIS and the 2WinScada services on the same computer | 8 GB | 8 GB only with the Panel PC preset and for small projects. For server sizes, see the capacity table. |
| Kiosk client that only shows a 2WinScada server | 4 GB | 2WinScada is not installed on this computer. |
| Computer with 2 GB RAM | — | Not supported for the 2WinScada stack; at most it can be a browser that shows a server. |
On a computer with less than 8 GB RAM, Setup asks for confirmation before it continues when a local SQL Server or QuestDB is selected.
Disk space
- Setup unpacks the installation content to the system drive. The system drive needs free space equal to the package size plus 1 GB.
- If a local SQL Server 2025 Express is installed, the system drive needs at least another 6 GB of free space.
- During an upgrade or repair, Setup backs up the database to the SQL backup directory. This directory must have free space equal to the allocated size of the database plus 1 GB.
- The space used by archive data depends on the size of the project. See Disk and retention period.
Software
Components installed by Setup
The following are included in the installation package and are installed by Setup if they are missing:
- IIS and the required IIS modules (URL Rewrite, Application Request Routing, CORS),
- the .NET 10 runtime and the ASP.NET Core runtime,
- optionally a local SQL Server 2025 Express,
- optionally a local QuestDB.
If a compatible .NET version is already installed, it is not installed again.
SQL Server
- New local installation: Setup installs SQL Server 2025 Express with Windows authentication. The instance name is chosen in the wizard; the default is
SQLEXPRESS(server namelocalhost\SQLEXPRESS). The data folder where the database files are written can also be chosen in the wizard; for example aD:drive separate from the operating system disk. SQL Server 2025 Express allows 50 GB per database. - Existing server: An existing SQL Server instance (for example SQL Server 2022 or 2025) is used as it is. Setup never upgrades an existing instance during an upgrade or repair. Moving from SQL Server 2022 Express to 2025 is a separate maintenance task done by hand after a full backup.
- Remote server: A remote SQL Server needs a separate application login and password. Use an explicit server name, instance name and port instead of Named Pipes or a client alias.
SQL Server 2025 backups
A backup of a database created in SQL Server 2025, or upgraded to 2025, cannot be restored to SQL Server 2022.
QuestDB
When a local QuestDB is installed, Setup recommends a memory profile based on the computer's RAM. The profile can be changed. Details: QuestDB memory profile.
Permissions
- Setup must be opened with an account in the local Administrators group, using Run as administrator.
- If an existing SQL Server is used, the installation account must have permission to create databases and logins. The application login is separate from the installation account; Setup gives the application login only the read, write and execute permissions 2WinScada needs to run, and gives the main API service a limited additional permission for restoring configuration backups.
- For the SQL backup to be taken during an upgrade or repair, the SQL backup directory must be an absolute local disk path on the SQL server that the SQL Server service account can write to (for example
D:\2WinScadaBackups). A network share (UNC path) is not accepted. For the free space check, the installation account needs the VIEW SERVER PERFORMANCE STATE permission on SQL Server 2022 and later, or VIEW SERVER STATE (or the sysadmin role) on SQL Server 2017 CU1–2019.
Path and name rules
- If a local QuestDB will be installed, use only ASCII characters in the installation directory (for example the default
C:\Program Files\Turkuvaz Inovasyon); do not use Turkish characters. - The QuestDB data folder must consist of ASCII characters and must not contain spaces (for example
E:\2WinScada\QuestDbData). - The SQL database name must be 1–128 characters long and contain only English letters, digits and underscores (
_). Spaces, hyphens and Turkish characters are not allowed;master,model,msdbandtempdbcannot be used.
Network and ports
| Port | Usage | Must it be reachable from outside? |
|---|---|---|
| TCP 443 | Web interface (HTTPS), API and live data connection | Yes |
| TCP 80 | Web interface (HTTP) or redirect to HTTPS | Optional |
| TCP 7100 | Main API service (used through IIS) | No |
| TCP 7102 / 7103 | Notification / RecordDevice services | No |
| TCP 7106 / 7107 | MQTT Publisher / MCP Server | No |
| TCP 9000, 9003, 8812, 9009 | QuestDB (HTTP, health, PGWire, ILP) | No |
| TCP 1433, UDP/TCP 1434 | SQL Server and SQL Server Browser | No |
In new installations, the web interface, the API and the live data connection are published on the same address and port; browsers only need access to the web port. For installations upgraded from older versions, check the IIS layout with the Exposure check. If SQL Server or QuestDB runs on another computer, the 2WinScada server must be able to reach these ports.
The ports can be changed during Setup; changed ports must not conflict with each other. To expose the server to the internet, see Internet and Network Access.
Capacity planning
The values below are planning values for a single server (the 2WinScada services and QuestDB on the same computer); they are not a service level commitment. The device and tag rights granted by the license are a separate matter; this page covers only technical capacity.
Short answer
- Recommended range: at most 10,000 live tags, at most 8,000 archived tags, total archive writes of at most 250 rows per second, at most 2,000 actual tag changes per second and at most 100 concurrent users (4 cores, 24 GB RAM).
- Conditional range: 10,000–20,000 live tags, 8,000–10,000 archive tags, 250–500 rows per second. This range requires a project-specific load test and at least 32 GB RAM.
- Out of scope: More than 20,000 live tags, redundant (hot standby) operation and multi-server deployment are outside the scope of this manual; for such projects, contact the 2WinScada team. In single-server installations, plan a UPS, monitoring and regular backups for the continuity of the server, SQL Server and QuestDB.
Hardware tiers
| Tier | Live tags | Archive tags | Archive rows/s | Users | CPU | RAM | Disk | QuestDB profile |
|---|---|---|---|---|---|---|---|---|
| Panel PC 8 GB (full stack) | ≤ 1,500 | ≤ 500 | ≤ 50 (period ≥ 10 s) | ≤ 5 | 2–4 cores | 8 GB | Industrial SSD ≥ 128 GB | 4 GB |
| Small | ≤ 2,000 | ≤ 1,000 | ≤ 100 | ≤ 25 | 4 cores | 16 GB | SSD ≥ 250 GB | 16 GB |
| Reference (recommended range) | ≤ 10,000 | ≤ 8,000 | ≤ 250 | ≤ 100 | 4 cores | 24 GB | SSD/NVMe 500 GB – 1 TB | 16 GB |
| Conditional | 10,000 – 20,000 | 8,000 – 10,000 | 250 – 500 | 100 – 150 | 8 cores | 32 GB | NVMe 1 – 2 TB | 32 GB |
| Not supported | > 20,000 | > 10,000 | > 500 | > 150 | — | — | — | — |
- The Small tier and Panel PC values are planning values. For Panel PC projects, take a measurement of at least 72 hours on the target hardware before commissioning.
- If SQL Server runs on the same computer, reserve its memory share in addition to the table.
- At least 6 GB or 25% of the total RAM (whichever is larger) must always remain free on the computer. This rule does not apply to the Panel PC tier; there, the measurement must show that there is no continuous paging.
- The live tag limits assume that the average update period of the tags is at least 1 second and that users do not subscribe to all tags at the same time. Adding RAM alone does not remove the user or archive tag limit.
Archive load
The number of archive tags is limited not only by the write rate but also by the number of archive definitions; in the table below, this limit is shown as "table limit".
The total archive load is calculated as follows:
rows/s = Σ (1 / archive period in s) + number of change-based records per second
| Archive period | Tags at 250 rows/s | Tags at 500 rows/s |
|---|---|---|
| 1 s | 250 | 500 |
| 5 s | 1,250 | 2,500 |
| 10 s | 2,500 | 5,000 |
| 30 s | 7,500 | 10,000 (table limit) |
| 60 s | 8,000 (table limit) | 10,000 (table limit) |
Choose the archive period according to the needs of the process; archiving all tags every second quickly exceeds the recommended range. For noisy analog values, use the deadband setting if the protocol supports it.
When QuestDB cannot be reached, archive rows are kept in memory for a limited time. During long outages, or if the service restarts, these rows can be lost; monitor the QuestDB service and resolve outages quickly.
Disk and retention period
days ≈ disk GB × 0.8 × 10⁹ / (rows/s × 86,400 × 64–128 bytes)
250 rows per second produce about 1.4–2.8 GB of data per day; a 1 TB disk holds about 290–580 days. A larger disk increases the retention period, not the write rate; NVMe disks are recommended for heavy archiving and queries. The retention period is set in months in the archive definitions.
Include the logs in the disk plan: QuestDB logs use at most 200–500 MB depending on the profile, and the logs of each 2WinScada service use at most 750 MB (15 files × 50 MB, 15 days).
QuestDB memory profile
For a local QuestDB, Setup recommends one of the following profiles based on the computer's RAM:
| Profile | Recommended for RAM | QuestDB data memory limit | Single query limit |
|---|---|---|---|
| 4 GB system memory | Less than 8 GB; Panel PC preset | 1 GB | 256 MB |
| 8 GB system memory | 8–15 GB | 60% of RAM | 512 MB |
| 16 GB system memory | 16–31 GB | 70% of RAM | 1 GB |
| 32 GB or more system memory | 32 GB and more | 75% of RAM | Unlimited |
- In addition to this limit, QuestDB uses Java memory; Java memory is at most a quarter of the RAM. With the 4 GB profile, plan about 2 GB in total for QuestDB.
- With small profiles, long-term trend and report queries run more slowly and stop with an error if they exceed the single query limit.
- The old 2 GB profile is no longer offered. A system installed with this profile keeps it during upgrade and repair; moving it to the 4 GB profile is recommended.
- The profile sets the QuestDB settings at the first installation. Upgrade and repair do not change the existing QuestDB memory settings; changing the profile is a separate maintenance task.
What to measure on site
During commissioning and after every major project change, monitor the following for at least 24 hours:
- The number of channels, devices and live tags per protocol; the number of archive definitions and the distribution of their periods; the number of alarms.
- The calculated archive rows/s value and the actual QuestDB disk growth over 7 days.
- The average and peak CPU in total and for the 2WinScada service and QuestDB; the lowest free RAM. Total CPU must stay below 60% continuously.
- The number of concurrent users and the number of tags on the heaviest screens.
- For polling protocols, the scan period and the actual response time of the device.
If the results are outside the recommended range, reconsider the hardware, the archive periods or the project scope.