VPS or referred to as Droplets at DigitalOcean are divided into 5 types, namely Basic, General Purpose, CPU-Optimized, Memory-Optimized, and Storage-Optimized. Each type of Droplet is designed to run applications with different workloads. We will discuss each type of Droplet and how to choose the right Droplet based on the official guide from DigitalOcean.
Shared CPU vs Dedicated CPU
The Basic type droplet uses a shared CPU, while the other types use a dedicated CPU. Droplets that use a dedicated CPU are guaranteed to get a full hyperthread every time. Hyperthread is a processor technology that allows more than one thread to run on each processor core. More threads means more work can be done in parallel.
If using a shared CPU, the hyperthread allocated to the Droplet will be shared with several other Droplets. When the shared CPU experiences a heavier load, the hypervisor dynamically allocates more hyperthreads to it. Droplets with shared CPUs are not guaranteed to get a full hyperthread every time.
There are five Droplet plans, one Droplet plan with shared CPU and four Droplet plans with dedicated CPU.
|Basic||Shared||1-8||1-16 GB RAM|
|General Purpose||Dedicated||2-40||8-160 GB RAM |
4 GB RAM / vCPU
|CPU-Optimized||Dedicated||2-32||4-64 GB |
2 GB RAM / vCPU
|Memory-Optimized||Dedicated||2-32||16-256 GB RAM |
8 GB RAM / vCPU
|Storage-Optimized||Dedicated||2-32||16-256 GB RAM |
8 GB RAM / vCPU
150 – 225 GB SSD / vCPU
Basic Droplet is the lowest cost droplet. This droplet is designed to run applications such as:
- Low traffic web servers
- Discussion forums
- Content Management Systems (CMS)
- Small databases
- Dev/test servers
- Repository hosting
2.General Purpose Droplet
General Purpose Droplets are suitable for a wide range of production workloads. General Purpose Droplet is divided into six configurations, from 2 vCPU to 40 vCPU, with 8GB-160GB RAM. This droplet is designed to run applications such as:
- Medium-to-high-traffic web servers
- E-commerce sites
- Medium-sized databases
- Enterprise Software as a Service (SaaS)
If your application workload requires guaranteed and sustained CPU performance but doesn’t require a lot of memory, CPU-Optimized Droplets are the choice. This droplet is designed to run applications such as:
- Video encoding
- Machine learning
- Ad serving
- Batch processing
- Heavily loaded front-end web servers
Some workloads, such as large production databases or in-memory caches, require larger amounts of memory to store working data sets. Without enough RAM, such applications usually run slowly, or sometimes become unstable and crash. This droplet is designed to run applications such as:
- High-performance SQL or NoSQL databases
- Web scale in-memory caches and indexes
- Real-time big data processing
- Resource-intensive or mission-critical business apps, especially for applications that have large JVM requirements
Fast storage is required for large data capture workloads. Storage-Optimized Droplet uses NVMe (non-volatile memory express), which is an interface protocol created explicitly for modern SSDs. Because storage is connected directly to the hypervisor (not connected via a network), Droplet is ideal for workloads that require high volumes of transactions with low latency, such as:
- Large, high-performance NoSQL databases, such as MongoDB, Elasticsearch, and TimeScaleDB
- Monitoring and analytics software, such as Prometheus and Grafana
- Data warehouses
Before determining a specific Droplet type, we recommend measuring and testing your application’s workload to see how it performs under simulated loads. See resource usage when load is at expected peak, especially when using Basic Droplets. If application performance varies too much for production needs, consider the Droplet type with a dedicated CPU.
Read resource usage information (CPU, RAM) from graphs, a monitoring system that monitors Droplet usage. Information from graphs is taken into consideration to determine the choice of Droplet type.
- If there is frequent high CPU and memory usage, consider increasing the CPU and memory, and using a General Purpose Droplet.
- If there is frequent high CPU usage but low memory usage, use the CPU-Optimized Droplet.
- If you frequently have high memory usage but low or moderate CPU usage, consider increasing memory and using a Memory-Optimized Droplet.
- If CPU and memory usage is often low or moderate, use Basic Droplet.