Capacity Planning Document
Capacity Planning Document
This document details the server configuration for optimal MediaWiki performance, focusing on capacity planning. It is intended for system administrators and engineers responsible for maintaining a healthy and responsive wiki environment. This guide assumes a MediaWiki 1.40 installation.
Introduction
Effective capacity planning is crucial for ensuring a stable and performant MediaWiki installation. Underestimating resource requirements can lead to slow page loads, edit conflicts, and even service outages. This document outlines the hardware and software considerations for different wiki sizes, from small internal wikis to large, public-facing deployments. It’s important to regularly review and adjust these recommendations based on actual usage patterns, as described in Monitoring MediaWiki Performance. Remember to consult the MediaWiki Installation Guide for initial setup instructions.
Hardware Requirements
The following tables detail the recommended hardware specifications based on expected wiki size. These are *minimum* recommendations, and scaling upwards is often necessary. Consider using a Load Balancer for larger deployments.
Small Wiki (Less than 1000 Pages, Fewer than 100 Active Users)
Component | Specification |
---|---|
CPU | 2 vCPU (e.g., Intel Xeon E5 series or equivalent) |
RAM | 4 GB |
Storage | 100 GB SSD |
Network | 1 Gbps |
Medium Wiki (1000 - 10,000 Pages, 100 - 500 Active Users)
Component | Specification |
---|---|
CPU | 4 vCPU (e.g., Intel Xeon E5 series or equivalent) |
RAM | 8 GB |
Storage | 500 GB SSD (RAID 1 recommended) |
Network | 1 Gbps |
Large Wiki (Over 10,000 Pages, Over 500 Active Users)
Component | Specification |
---|---|
CPU | 8+ vCPU (e.g., Intel Xeon Scalable series or equivalent) |
RAM | 16+ GB (32GB+ recommended) |
Storage | 1 TB+ SSD (RAID 10 recommended) |
Network | 10 Gbps |
Software Configuration
The operating system and database server choices significantly impact performance. We recommend the following:
- Operating System: Linux (CentOS, Ubuntu Server, Debian) is highly recommended due to its stability and performance. See Linux Server Setup for details.
- Web Server: Apache or Nginx. Nginx is often preferred for its performance and efficiency, particularly under high load. Refer to Configuring Apache for MediaWiki or Configuring Nginx for MediaWiki for specific instructions.
- Database Server: MySQL/MariaDB is the standard choice. PostgreSQL is also supported, but requires more configuration. See Database Installation and Configuration.
- PHP Version: PHP 7.4 or later is required for MediaWiki 1.40. PHP 8.1 is recommended for optimal performance. See PHP Configuration.
- Caching: Essential for performance. Configure Memcached or Redis for object caching. Also, leverage the browser cache.
- Search Index: Use Elasticsearch for fast and accurate search results, especially for large wikis. See Elasticsearch Integration.
Database Tuning
Database performance is often the bottleneck in a MediaWiki installation. Careful tuning is critical.
Parameter | Recommendation |
---|---|
`innodb_buffer_pool_size` | 50-80% of available RAM |
`key_buffer_size` (MySQL) | 32-64MB (for MyISAM tables, if used) |
`query_cache_size` (MySQL - deprecated in 8.0) | 64-128MB (if using an older MySQL version) |
`max_connections` | Adjust based on concurrent users (start with 150-200) |
Regularly use tools like `mysqltuner.pl` to analyze and optimize your database configuration. See Database Maintenance for more details.
Scaling Considerations
As your wiki grows, you may need to scale your infrastructure. Common strategies include:
- Vertical Scaling: Increasing the resources (CPU, RAM, storage) on a single server. This is simpler but has limitations.
- Horizontal Scaling: Adding more servers to distribute the load. This requires a Load Balancer and potentially Database Replication.
- Caching: Implement aggressive caching strategies to reduce the load on the database and web server.
- CDN: Utilize a Content Delivery Network (CDN) to serve static assets (images, CSS, JavaScript) from geographically distributed servers.
Monitoring and Alerting
Implement a robust monitoring system to track key metrics such as CPU usage, memory usage, disk I/O, database performance, and web server response times. Configure alerts to notify you of potential issues before they impact users. Tools like Prometheus and Grafana can be invaluable. See Monitoring MediaWiki Performance for detailed guidance.
Related Pages
- MediaWiki Installation Guide
- Linux Server Setup
- Configuring Apache for MediaWiki
- Configuring Nginx for MediaWiki
- Database Installation and Configuration
- PHP Configuration
- Elasticsearch Integration
- Database Maintenance
- Load Balancer
- Database Replication
- Caching
- Monitoring MediaWiki Performance
- Prometheus
- Grafana
- Content Delivery Network
Intel-Based Server Configurations
Configuration | Specifications | Benchmark |
---|---|---|
Core i7-6700K/7700 Server | 64 GB DDR4, NVMe SSD 2 x 512 GB | CPU Benchmark: 8046 |
Core i7-8700 Server | 64 GB DDR4, NVMe SSD 2x1 TB | CPU Benchmark: 13124 |
Core i9-9900K Server | 128 GB DDR4, NVMe SSD 2 x 1 TB | CPU Benchmark: 49969 |
Core i9-13900 Server (64GB) | 64 GB RAM, 2x2 TB NVMe SSD | |
Core i9-13900 Server (128GB) | 128 GB RAM, 2x2 TB NVMe SSD | |
Core i5-13500 Server (64GB) | 64 GB RAM, 2x500 GB NVMe SSD | |
Core i5-13500 Server (128GB) | 128 GB RAM, 2x500 GB NVMe SSD | |
Core i5-13500 Workstation | 64 GB DDR5 RAM, 2 NVMe SSD, NVIDIA RTX 4000 |
AMD-Based Server Configurations
Configuration | Specifications | Benchmark |
---|---|---|
Ryzen 5 3600 Server | 64 GB RAM, 2x480 GB NVMe | CPU Benchmark: 17849 |
Ryzen 7 7700 Server | 64 GB DDR5 RAM, 2x1 TB NVMe | CPU Benchmark: 35224 |
Ryzen 9 5950X Server | 128 GB RAM, 2x4 TB NVMe | CPU Benchmark: 46045 |
Ryzen 9 7950X Server | 128 GB DDR5 ECC, 2x2 TB NVMe | CPU Benchmark: 63561 |
EPYC 7502P Server (128GB/1TB) | 128 GB RAM, 1 TB NVMe | CPU Benchmark: 48021 |
EPYC 7502P Server (128GB/2TB) | 128 GB RAM, 2 TB NVMe | CPU Benchmark: 48021 |
EPYC 7502P Server (128GB/4TB) | 128 GB RAM, 2x2 TB NVMe | CPU Benchmark: 48021 |
EPYC 7502P Server (256GB/1TB) | 256 GB RAM, 1 TB NVMe | CPU Benchmark: 48021 |
EPYC 7502P Server (256GB/4TB) | 256 GB RAM, 2x2 TB NVMe | CPU Benchmark: 48021 |
EPYC 9454P Server | 256 GB RAM, 2x2 TB NVMe |
Order Your Dedicated Server
Configure and order your ideal server configuration
Need Assistance?
- Telegram: @powervps Servers at a discounted price
⚠️ *Note: All benchmark scores are approximate and may vary based on configuration. Server availability subject to stock.* ⚠️