Bài viết này hướng dẫn cấu hình lại PHP-FPM để làm cho VPS bạn không phải quá tải CPU do các tiến trình của PHP-FPM tạo ra, đó là tùy chỉnh lại các thông tin cần thiết. Mặc khác, mặc định database của bạn khi cài vào sẽ không hỗ trợ lưu cache các truy vấn từ database nên điều đó có thể sẽ làm website bạn hơi chậm.
Tối ưu PHP-FPM
Để tối ưu PHP-FPM, bạn hãy mở tập tin /etc/php.ini
ra và tìm:
;session.save_path = "/tmp"
Thay thành:
session.save_path = "/var/lib/php/session"
Sau đó cấp quyền cho thư mục này:
chown -R nginx:nginx /var/lib/php/session
Tiếp tục mở tập tin /etc/php-fpm.d/www.conf
, tìm:
pm = dynamic
Thay thành:
pm = ondemand
Tìm:
pm.max_children = 50
Thay thành:
pm.max_children = 5
Nếu bạn có VPS chỉ có từ 1 cho tới 3 CPU thì bạn nên thiết lập pm.max_children
là 3. Còn nếu nhiều hơn thì nên đặt tối đa 15 chứ đừng để nhiều quá.
Tìm tiếp:
pm.max_spare_servers = 35
Thay thành:
pm.max_spare_servers = 5
Tìm tiếp:
pm.min_spare_servers = 5
Thay thành:
pm.min_spare_servers = 1
Sau đó khởi động lại PHP-FPM:
systemctl restart php-fpm.service
Tối ưu MariaDB
Mở tập tin /etc/my.cnf
và đặt nội dung dưới vào cuối:
[mysqld]
key_buffer=1024M
join_buffer_size=8M
table_cache=4000
sort_buffer_size=8M
read_buffer_size=8M
read_rnd_buffer_size=8M
myisam_sort_buffer_size=128M
max_connections=800
query_cache_type=1
query_cache_limit=8M
query_cache_size=512M
tmp_table_size=40M
max_heap_table_size=40M
thread_cache_size=128
max_allowed_packet=1024M
Nhớ khởi động lại MariaDB:
systemctl restart mariadb.service
Chúc các bạn thành công!
dấdasd
18/08/2018 lúc 1:30 chiều
có thử dùng cách của bạn nhưng định dạng mình là myisam, select nhanh nhưng phần insert,update,delete nó rất chậm, có khi bị off mysql luôn, bạn có cách nào ổn hơn không. vps mình 4core và 8Gb ram
Admin
18/08/2018 lúc 1:30 chiều
mình chỉ hay sử dụng WordPress, khá ít tương tác với csdl nên cũng không có nhiều kinh nghiệm về mấy phần khác nên cũng không có nghiên cứu nữa…