Compare commits

...

3 Commits

Author SHA1 Message Date
Thomas Gräfenstein
4f3f4b0487 add swap check command before setup instructions 2026-03-22 17:33:11 +01:00
Thomas Gräfenstein
a51f86ea0a add swap setup instructions to README prerequisites 2026-03-22 17:32:48 +01:00
Thomas Gräfenstein
22198784d3 tune PHP and FPM for 1-core/3GB VPS performance
Reduce FPM workers from 12 to 5 max to stop memory thrashing on
a single-core VPS with 3GB RAM. Add OPcache and APCu tuning to
reduce filesystem stat calls and improve cache hit rates.
2026-03-22 17:31:14 +01:00
4 changed files with 34 additions and 5 deletions

View File

@@ -46,7 +46,7 @@ graph TB
## Prerequisites ## Prerequisites
- A VPS with SSH access - A VPS with SSH access (minimum 1 core, 3 GB RAM)
- Domain `t-gstone.de` with DNS control - Domain `t-gstone.de` with DNS control
- Git installed locally - Git installed locally
@@ -56,6 +56,24 @@ Check your VPS OS:
cat /etc/os-release cat /etc/os-release
``` ```
### Swap (recommended)
Check current memory and swap:
```bash
free -h
```
If swap shows `0B`, add a 2 GB swapfile to prevent OOM kills:
```bash
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
```
## DNS Setup ## DNS Setup
Create these A records pointing to your VPS IP: Create these A records pointing to your VPS IP:

View File

@@ -20,6 +20,7 @@ services:
- ./hooks/post-installation.sh:/docker-entrypoint-hooks.d/post-installation/post-installation.sh:ro - ./hooks/post-installation.sh:/docker-entrypoint-hooks.d/post-installation/post-installation.sh:ro
- ./hooks/post-upgrade.sh:/docker-entrypoint-hooks.d/post-upgrade/post-upgrade.sh:ro - ./hooks/post-upgrade.sh:/docker-entrypoint-hooks.d/post-upgrade/post-upgrade.sh:ro
- ./fpm-tuning.conf:/usr/local/etc/php-fpm.d/zz-tuning.conf:ro - ./fpm-tuning.conf:/usr/local/etc/php-fpm.d/zz-tuning.conf:ro
- ./php-tuning.ini:/usr/local/etc/php/conf.d/zz-tuning.ini:ro
networks: networks:
- nextcloud-internal - nextcloud-internal
logging: logging:

View File

@@ -1,7 +1,7 @@
[www] [www]
pm = dynamic pm = dynamic
pm.max_children = 12 pm.max_children = 5
pm.start_servers = 4 pm.start_servers = 2
pm.min_spare_servers = 2 pm.min_spare_servers = 1
pm.max_spare_servers = 6 pm.max_spare_servers = 3
pm.max_requests = 500 pm.max_requests = 500

10
nextcloud/php-tuning.ini Normal file
View File

@@ -0,0 +1,10 @@
; OPcache tuning for Nextcloud
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.save_comments=1
opcache.enable_file_override=1
; APCu local cache
apc.shm_size=64M
apc.enable_cli=1