This article outlines minimum software and hardware requirements for deploying the SystemWeaver server application, releases R53 and later. Hardware requirements may vary based on utilization.

  

Software Requirements

Supported Operating Systems

The SystemWeaver server application runs on all versions of Windows that are currently supported by Microsoft, both desktop and server OS, as long as all other software requirements described here are met. It also runs on most common Linux distributions, e.g. Ubuntu.

 

The server executable is built for x86-64, meaning you need to be running the 64-bit version of your operating system. ARM is not currently a supported platform.

  

Supported Databases

•    SQLite (recommended)

•    Microsoft SQL Server (Checklist for MS SQL Database)


See Summary of Supported Databases for more information about the supported databases.


Hardware Requirements

There are no fixed minimum requirements. What hardware resources you need for the server to perform well depends completely on your database size and usage patterns. With that said, most databases will require a significant amount of working memory (RAM).


Dedicated Server

We strongly recommend that the machine hosting the server, whether it's on-prem or a virtual machine in the cloud, be fully dedicated to your SystemWeaver server installation.

 

Installation Disk Size

The server software itself takes up 100-200 MB on disk. We strongly recommend installing the server application on a local drive of the server machine instead of on a network drive. 

 

Database Storage Device (HDD/SSD)

This depends entirely on your use case. How much data will you be working with and storing in the system? We have installations from 100MB up to 100s of GB. In addition to the capacity necessary for storing the database, you should make sure that you have the means to backup the database somewhere. If you are using a SQLite database, the data disk size applies to the SystemWeaver application server since the database is ideally stored there (for optimized performance) and not on a different server machine. Having the database on the same server machine as the SystemWeaver server application is recommended. If this is not possible, the database should be located on a machine near the application server to minimize latency and network connection problems. See Database Management for further information about databases.

 

SSD for Best Performance

If you go with the recommended SQLite backend, the kind and quality of storage device can make a big difference to write performance and server startup time. An SQLite database that takes minutes to load on a 100MB/s 5400 RPM HDD may only take seconds to load on a 7000MB/s NVMe SSD. Therefore, we strongly recommend SSD.

 

Memory (RAM)

The SystemWeaver server loads the whole persistent database into memory on startup in order to minimize latency especially for read-heavy requests and to maximize the overall throughput. This puts some big demands on RAM capacity, and we recommend continuously monitoring the server's memory usage as your database grows.


The memory allocated to the main server should be at least 3 times the size of the database on disk. For example, if the database is 10GB, you need a minimum of 30GB RAM for the server startup process and some additional to handle calls. For a 10GB database, we would recommend starting with more than 30GB.  

 

If running mirror servers, the memory allocated to the main server should be as described above. Likewise, the memory allocated to each mirror server should also be at least 3 times the size of the database.

 

If not enough RAM is available, parts of the in-memory cache may become swapped out to disk which will drastically reduce performance. We recommend regular monitoring of the resource utilization, e.g., by using monitoring functions in Windows like the Task Manager, etc. in order to detect the need for upgrades of the server platform.

 

CPU

While there is no fixed minimum on what CPU frequency or how many CPU cores are necessary for the SystemWeaver server to function, workloads involving many users reading and writing concurrently will invariably put a lot of pressure on the processor. Commonly expensive operations such as a database-wide General search are optimized to use as much parallelism as the CPU can provide, so the more cores you have, the better the performance.


The speed and core count of the CPU also affect server startup time. If the storage device is fast enough, e.g., if it's a modern NVMe SSD, the CPU can become the bottleneck. 


We would recommend a CPU with at least 16 cores available exclusively for the SystemWeaver server's use.


File Repository Disk Space

If you want to use the file repository feature, i.e., the ability to add attachments to items and issues, you'll need disk space for this. The attachments are not stored in the main database but rather in a separate, single SQLite database or in a dedicated file structure (the latter is recommended). Regardless of which option is selected, the file repository must reside on local disk on the same server machine running the SystemWeaver server executable. The required storage capacity depends entirely on the number and size of files that users will store in the system. This can be everything from 10MB to terabytes. We recommend starting with at least 300 GB of free disk space. If you predict that this will be an often-used feature, we recommend that you put this on a partition where you can increase as the needs of the users increase.

 

Port

SystemWeaver only needs the single port it's listening on to be open. For example, if users will log in to the main server using port 1234, then 1234 needs to be open. For mirror servers: If users will log in to a mirror server using port 5678 (which connects to the main server using port 1234), then inbound port 5678 and outbound port 1234 need to be open. Closing port 80 has no effect on SystemWeaver. We recommend choosing a number greater than 1024.

 

Location

The closer the main server is located to the users, the lower the network latency. If the main server must be in a different geographic location, or if users are spread out geographically, we recommend including our mirror server solution. 

If you plan to use a cloud server, we strongly recommend you do some testing once you have the server up to verify that the latency between the SystemWeaver server application and the users' client applications is acceptable. 


Recommendations

Using a Server Alias

We recommend the use of a server alias not only to hide the path to your data, but also to allow for smoother machine changes for your SystemWeaver server installation. A server alias is especially suitable for: 

•    Use of a ClickOnce Client wrapper

•    Use of the swExplorerLauncher

•    Integrations with other tools where you store the server name

•    Easy distribution of server address to users

An alternative to aliases is, of course, to register a domain name (a record), which is the method you must use for accessing the system outside your local network/VPN.


What's Next?

IT Administrator Guidelines for Optimizing Performance

Alternative SystemWeaver Configurations

Want to know about SystemWeaver Client - System Requirements?