Requirements
- Drupal 9, 10, or 11
- Search API module
- Search API Solr module
- PHP pcntl extension (for process forking)
- PHP posix extension
- CLI access (Drush)
Check PHP Extensions
Verify the required extensions are installed:
# Check for pcntl extension
php -m | grep pcntl
# Check for posix extension
php -m | grep posix
# Or check both at once
php -r "echo 'pcntl: ' . (extension_loaded('pcntl') ? 'OK' : 'MISSING') . PHP_EOL . 'posix: ' . (extension_loaded('posix') ? 'OK' : 'MISSING') . PHP_EOL;"
Installing Missing Extensions
Ubuntu/Debian
# Usually included, but if missing:
sudo apt-get install php-cli
# The pcntl and posix extensions are typically compiled into CLI PHP
# They may be disabled in php.ini for web (php-fpm) but should work in CLI
CentOS/RHEL
sudo yum install php-process
macOS (Homebrew)
# Usually included with PHP
brew install php
⚠️ CLI Only
The pcntl extension is typically disabled for web requests (security reasons)
but enabled for CLI. The turbo indexer only runs via Drush (CLI), so this is fine.
Drush Version
Any modern Drush version (10+) should work:
drush --version
Server Resources
Recommended minimums for parallel indexing:
| Resource | Minimum | Recommended |
|---|---|---|
| RAM | 2 GB | 8+ GB |
| CPU Cores | 2 | 4+ |
| Workers | 2-3 | ≤ CPU cores |
💡 Memory Per Worker
Each worker uses approximately 100-200 MB of RAM depending on your content complexity.
With 8 workers, expect ~1.5 GB total memory usage.