Capacity Planning Guide
Capacity Planning Guide
This guide provides information for planning the server infrastructure required to run a performant and scalable MediaWiki 1.40 installation. It's intended for system administrators and those responsible for maintaining the MediaWiki environment. Proper capacity planning is crucial to avoid performance bottlenecks and ensure a positive user experience.
Understanding MediaWiki Resource Usage
MediaWiki’s resource demands vary significantly based on several factors, including:
- Traffic Volume: The number of concurrent users and page views.
- Content Size: The total size of wiki pages, included images (though we won't cover image serving here), and revisions.
- Complexity of Pages: The use of templates, extensions, and complex formatting.
- Database Size: The total size of the database, which grows with content and history.
- Extensions: The number and resource intensity of installed extensions. See Extension Installation for more details.
Ignoring these factors can lead to slow page loads, database lock contention, and ultimately, a degraded user experience. Consider using a Performance Monitoring system to track resource usage once the wiki is live.
Hardware Recommendations
The following tables outline hardware recommendations for different deployment sizes. These are starting points, and specific needs will vary. Always benchmark your actual usage.
Small Wiki (Up to 50 Concurrent Users)
This setup is suitable for small, internal wikis or communities with limited traffic.
Component | Specification |
---|---|
CPU | 2 cores, 2.4 GHz or faster |
RAM | 4 GB |
Storage | 100 GB SSD |
Network | 1 Gbps |
Medium Wiki (50 - 500 Concurrent Users)
This configuration supports a moderate-sized wiki with a growing user base.
Component | Specification |
---|---|
CPU | 4-8 cores, 2.8 GHz or faster |
RAM | 8-16 GB |
Storage | 500 GB SSD (RAID 1 recommended) |
Network | 1 Gbps |
Large Wiki (500+ Concurrent Users)
This setup is designed for high-traffic wikis requiring significant performance and scalability.
Component | Specification |
---|---|
CPU | 8+ cores, 3.0 GHz or faster (Dual CPU recommended) |
RAM | 32+ GB |
Storage | 1 TB+ SSD (RAID 10 recommended) |
Network | 10 Gbps |
Software Configuration
Beyond hardware, the software stack requires careful configuration for optimal performance.
- Operating System: Linux distributions like Ubuntu Server, Debian, or CentOS are commonly used. See Server Operating System for details.
- Web Server: Apache or Nginx are recommended. Nginx generally performs better under high load. See Web Server Configuration.
- Database: MySQL/MariaDB is the standard database backend. PostgreSQL is also supported, but potentially requires more tuning. Refer to Database Setup for configuration instructions.
- PHP: MediaWiki 1.40 requires PHP 8.1 or later. Ensure the `php.ini` file is properly configured with sufficient memory limits (`memory_limit`) and execution time (`max_execution_time`). See PHP Configuration.
- Caching: Implementing caching is *essential*. Use a combination of:
* Opcode Cache: (e.g., OPcache) to cache compiled PHP code. * Object Cache: (e.g., Memcached or Redis) to cache database query results. This dramatically reduces database load. See Caching Configuration. * Page Cache: Configure your web server to cache static content.
Database Considerations
The database is often the biggest bottleneck in a MediaWiki installation.
- Database Engine: InnoDB is the recommended storage engine for MySQL/MariaDB.
- Database Tuning: Adjust database parameters (e.g., `innodb_buffer_pool_size`, `query_cache_size`) based on your server's RAM and workload. See Database Tuning Guide.
- Regular Maintenance: Perform regular database backups, optimization, and index maintenance. Use tools like `mysqldump` or `mariadb-dump`. See Database Maintenance.
- Replication: For high availability and read scalability, consider setting up database replication. See Database Replication.
Monitoring and Scaling
Capacity planning is not a one-time task. Continuous monitoring and scaling are crucial.
- Monitoring Tools: Use tools like Nagios, Zabbix, or Prometheus to monitor CPU usage, RAM usage, disk I/O, network traffic, and database performance.
- Horizontal Scaling: If your wiki grows beyond the capacity of a single server, consider horizontal scaling by adding more web servers and database replicas. A Load Balancer is essential for distributing traffic.
- Vertical Scaling: Upgrading the hardware of your existing server (CPU, RAM, storage) is another option, but it has limitations.
Related Pages
- Installation Guide
- Extension Installation
- Server Operating System
- Web Server Configuration
- Database Setup
- PHP Configuration
- Caching Configuration
- Database Tuning Guide
- Database Maintenance
- Database Replication
- Performance Monitoring
- Load Balancer
- Security Hardening
- Troubleshooting Common Issues
- MediaWiki API
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.* ⚠️