Pada Kasus ini disini saya mencoba konfigurasi untuk spesifikasi VPS dengan RAM 64GB dan CPU 64 core, Anda bisa mengkonfigurasi PHP-FPM agar dapat memanfaatkan sumber daya yang tersedia secara optimal. Berikut adalah langkah-langkah konfigurasi yang disarankan:

1. Konfigurasi Pool PHP-FPM

Sesuaikan file konfigurasi pool PHP-FPM (misalnya, /etc/php/8.1/fpm/pool.d/www.conf) untuk memanfaatkan kapasitas tinggi server Anda. Berikut adalah contoh konfigurasi yang dioptimalkan:
[www]
user = www-data
group = www-data
listen = /run/php/php8.1-fpm.sock
listen.owner = www-data
listen.group = www-data

; Menggunakan mode dynamic untuk skalabilitas
pm = dynamic

; Menentukan jumlah maksimum proses anak
pm.max_children = 1000

; Jumlah server yang dimulai saat pertama kali
pm.start_servers = 100

; Minimum server cadangan
pm.min_spare_servers = 50

; Maksimum server cadangan
pm.max_spare_servers = 150

; Batasi jumlah permintaan per proses anak untuk mengurangi kebocoran memori
pm.max_requests = 10000

; Monitor status
pm.status_path = /status

; Log slow requests
request_slowlog_timeout = 5s
slowlog = /var/log/php8.1-fpm/slow.log

; Log PHP errors
php_admin_value[error_log] = /var/log/php8.1-fpm/www-error.log
php_admin_flag[log_errors] = on

2. Konfigurasi PHP

Pastikan untuk mengoptimalkan konfigurasi PHP (misalnya, php.ini). Berikut adalah beberapa parameter yang dapat disesuaikan:
; Mengaktifkan OPcache
opcache.enable=1
opcache.memory_consumption=512
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.validate_timestamps=0

; Meningkatkan batas memori
memory_limit = 2G

; Mengatur batas waktu eksekusi maksimum
max_execution_time = 300

; Menyesuaikan ukuran post dan upload
post_max_size = 100M
upload_max_filesize = 100M

3. Optimasi Nginx (atau Apache)

Jika Anda menggunakan Nginx sebagai server web, pastikan konfigurasinya juga dioptimalkan:

Nginx Configuration (/etc/nginx/nginx.conf)

user www-data;
worker_processes auto;
worker_rlimit_nofile 100000;

events {
    worker_connections 4096;
    multi_accept on;
}

http {
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    gzip on;
    gzip_disable "msie6";

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;

    # Client Body Size
    client_max_body_size 100M;

    # Buffers
    client_body_buffer_size 128k;
    client_header_buffer_size 1k;
    large_client_header_buffers 4 16k;

    # Timeouts
    client_body_timeout 12;
    client_header_timeout 12;
    keepalive_timeout 15;
    send_timeout 10;
}

4. Monitoring dan Logging

Pantau performa server dan aplikasi Anda secara teratur menggunakan alat pemantauan seperti htop, New Relic, Datadog, atau Zabbix.

Menggunakan htop

Untuk memantau penggunaan CPU dan memori secara real-time, gunakan htop:
sudo apt-get install htop
htop

Logging

Periksa log untuk mendeteksi error atau slow requests:
tail -f /var/log/php8.1-fpm/www-error.log
tail -f /var/log/php8.1-fpm/slow.log
tail -f /var/log/nginx/error.log

Restart Services

Setelah melakukan perubahan konfigurasi, restart PHP-FPM dan Nginx:
sudo systemctl restart php8.1-fpm
sudo systemctl restart nginx

Dengan konfigurasi ini, PHP-FPM dan server web Anda seharusnya dapat memanfaatkan sumber daya VPS dengan RAM 64GB dan CPU 64 core secara lebih efisien, sehingga kinerja aplikasi web Anda menjadi lebih optimal.