The following sections give you an overview of the required or recommended hardware and software for setting up and operating PTV xServer on premise. For more details, please refer to the separate PTV xServer scaling guide.
For a reliable and good performance, we recommend that you meet the following hardware requirements:
x64 multi-core CPU,
at least 1.5 GiB RAM for map data and basic services, plus 0.5 GiB RAM per worker process for xLocate, xMap, xMapmatch and xRoute, plus 1 GiB RAM per worker process for xCluster, xDima, xTour, xTerritory and xLoad, moreover high-performance routing requires a minimum of 16 GiB RAM,
enough disk space to keep the digital map and logs; for a detailed continental map with extra content packs (e.g. building areas) you should reserve 20-40 GiB.
Depending on your use cases and installed content, less than the recommended memory may also work, but it is no bad thing to have additional RAM: PTV xServer benefits from file caching of the map files, and operating systems will make use of extra RAM even though this is not directly visible for users.
The PTV xServer generally run on 64-bit Windows and Linux operating systems for x64 architectures. Thereby Linux versions require:
As the PTV xServer test environment runs on the following operating systems, we recommend to use one of them:
As the required Java Runtime Environment (JRE) is not integrated in the PTV xServer, it has to be installed separately. Currently a 64-bit Java 8 installation has to be provided. Depending on the policy of your company, we recommend the following two distributions:
How many CPU cores you need in total depends on the number of processes you need, which in turn depends on the expected request mix and level of concurrency.
Reserve one CPU core exclusively per xServer instance that shall be able to run concurrently, and reserve approximately 15-30% of total CPU capacity for the web server threads. The actual optimal ratio depends on your request mix and the communication overhead; thus, to fully maximise your hardware utilisation you have to do performance benchmarks tailored to your configuration and usage scenarios.
If you require several services, it is recommended to deploy them on one machine with sufficient RAM. Typically, not all request types are required at the same time: first geocode an address, then route, then render a map. By deploying these services on one machine, the operating system can reassign processes as needed, resulting in a better CPU utilisation. In addition, services share the map file cache, resulting in a better RAM utilisation. The PTV xServer bundle configuration can save some overhead by using only one web server for all services.
For most uses, a 100MBit network connection is sufficient.
Heavy-duty uses with lots of concurrent, fast requests leading to large responses may require a 1GBit network for optimum performance.
If PTV xServer is directly accessible from the internet, a separate proxy is mandated for security even if you do not need other proxy capabilities, yet.
A separate proxy can be updated independently from and therefore more often than the built-in web server. A prerequisite for securing your server is to have a version that is always up-to-date.
Using a separate proxy opens up further options, such as:
Most hardware and software proxies offer such features. Should you have no proxy available yet, the following free software web servers are suitable choices:
It may be necessary to install further plug-ins or add-ons as well, depending on your requirements.
PTV xServer ships with an embedded (but also separately deployable) Java database (Apache Derby) used to access POI data or continue job information.
The bundled database will work out-of-the box and is adequate for development and common usage requirements.
It is possible to use a different SQL database system instead or in addition; a prerequisite is a sufficiently compliant JDBC driver. A selection of JDBC drivers is included with PTV xServer.
Caution: The use of a Microsoft Access database as a source for your custom POI layers is not supported. We are not aware of a (free) driver for the Microsoft Jet Database Engine (MS Access) that is sufficiently compliant to JDBC.
Caution: The use of a PostgreSQL database is not recommended as it cannot be used in all cases. We are not aware of a driver that is sufficiently compliant with the JDBC BloB interface.
To monitor health of PTV xServer services you need monitoring software. Many tools are available for that purpose.
A suitable choice for a free monitoring software is Nagios.
Please refer to the Administrator's Guide to learn what you can monitor.
If availability is a concern, you need to provide redundancy systems, preferably on multiple levels from networking to servers to processes:
PTV xServer runs in environments that emulate or provide access to a 64-bit operating system suitable for PTV xServer.
Although there are lots of issues you can run into when first deploying in a virtual environment, there are no known issues specifically related to PTV xServer.
Performance losses are usually highest when using local file I/O. Having enough available RAM is therefore rather more important than with physical deployment.
In virtualised environments you can benefit from the possibility of quickly scaling up and down the number of server instances. You may need to optimise your hardware and deployment for fast startup times and may want to develop time- or load-based triggers for automatic scaling (elasticity).
A virtualised environment also allows you to switch external IPs very quickly in order to swap between production and integration test clusters in a staged rollout of an update.
The following table shows possible configurations for "typical" geographic use cases (mix of mapping, locating, routing). These are just examples for possible setups, to get you started. When in doubt, set up the "moderate" scenario to develop against, then test and benchmark, and then optimise the setup as needed.
Expected Load | low (load factor "1") | moderate (load factor "2") | high (load factor "10") | very high (load factor "50") |
Servers | 1 (limited availability) | 2 (1 redundant) | 3 (1 redundant) | 8 (2 redundant) |
Pool sizes per server | 2 xMap, 1 xLocate, 1 xRoute | 4 xMap, 2 xLocate, 2 xRoute | 6 xMap, 3 xLocate, 3 xRoute | 12 xMap, 6 xLocate, 6 xRoute |
CPU per server | 2 virtual cores | 4 virtual cores | 8 virtual cores | 16 virtual cores |
RAM per server | 3-6 GB | 8-16 GB | 24-32 GB | 48-64 GB |
Comparable Amazon EC2 Instances | m1.large or c3.large | m3.xlarge | m3.2xlarge | hi1.4xlarge |
Comparable Windows Azure™ Instances | A2 or A5 | A3 or A6 | A7 or A8 | A9 |
Copyright © 2024 PTV Logistics GmbH All rights reserved. | Imprint