LEMP cho VPS [Phần 8] – Tối ưu PHP-FPM và MariaDB

Bài này thuộc phần 8 của 9 phần trong serie LEMP cho VPS

Hôm cuối tuần do mình hơi đuối nên chỉ viết được đến phần 7, bây giờ mình sẽ viết tiếp một phần khá quan trọng để làm cho VPS bạn không phải quá tải CPU do các process 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.

I. Tối ưu PHP-FPM

Để tối ưu PHP-FPM, bạn hãy mở file /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 user đang thực thi PHP sở hữu thư mục này. Nếu bạn không làm phần 7 thì nó sẽ là nginx:nginx

chown -R nginx:nginx /var/lib/php/session

Tiếp tục mở file /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à 2. Còn nếu nhiều hơn thì nên đặt là 5 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

service php-fpm restart

II. Tối ưu MariaDB

Đơn giản là hãy mở file /etc/my.cnf và copy đoạn nội dung này vào dưới !includedir /etc/my.cnf.d.

  [mysqld]  key_buffer = 500M table_cache = 4000 sort_buffer_size = 3M read_buffer_size = 2M read_rnd_buffer_size = 8M myisam_sort_buffer_size = 64M max_connections = 400 query_cache_type = 1 query_cache_limit = 5M query_cache_size = 500M tmp_table_size=20M max_heap_table_size=20M thread_cache_size = 64

Nhớ khởi động lại MySQL

service mysql restart

Xong rồi đó. ?

Leave your comment