Thư mục bài viết
Tốc độ là yếu tố sống còn; nếu một trang web chậm hơn dù chỉ một phần nhỏ của giây, người dùng sẽ quay lưng và rời đi.
Đó là lý do tại sao HestiaCP Tối ưu hóa OPcache là yếu tố then chốt quyết định sự thành công hay thất bại của bất kỳ trang web nào sử dụng PHP.
OPcache là gì?
OPcache là một công cụ lưu trữ mã bytecode tích hợp sẵn trong PHP.
Chức năng của nó rất đơn giản: lưu trữ tập lệnh PHP đã biên dịch vào bộ nhớ đệm, và gọi trực tiếp vào bộ nhớ đệm đó khi truy cập lại, thay vì biên dịch lại.
Điều này giúp cải thiện tốc độ phản hồi của trang web, giảm tải CPU và ngay lập tức giảm áp lực lên máy chủ.
Theo tài liệu chính thức của PHP:
"OPcache mang lại những cải tiến hiệu suất đáng kể bằng cách giảm thời gian thực thi thông qua việc tránh việc biên dịch lại các tập lệnh."
Tóm lại: OPcache là một công cụ tăng tốc PHP.
Tại sao cần tối ưu hóa OPcache trong HestiaCP?

HestiaCP là một bảng điều khiển nhẹ được nhiều người sử dụng để quản lý máy chủ ảo VPS hoặc máy chủ chuyên dụng.
OPcache được bật theo mặc định, nhưng các tham số thường được thiết lập ở mức thận trọng.
Nếu không điều chỉnh, hiệu suất cải thiện sẽ bị hạn chế.
ví dụ:
Trên máy chủ có 4 lõi và 8GB bộ nhớ, bộ nhớ OPcache mặc định chỉ là 64MB và số lượng tập tin được lưu vào bộ nhớ cache chỉ là 4000.
Đây là sản phẩm dành cho người có kích thước trung bình. WordPress Đối với một trang web, như vậy là chưa đủ.
Kết quả là bộ nhớ đệm liên tục bị xóa, khiến hiệu năng dao động liên tục.
Kiểm tra trạng thái OPcache hiện tại
Chạy lệnh sau:
php -i | grep opcache.enable
Bạn sẽ thấy kết quả tương tự như sau:
- opcache.enable => On: Điều này có nghĩa là OPcache đã được bật trong PHP-FPM.
- opcache.enable_cli => Tắt: Không được bật ở chế độ dòng lệnh.
- opcache.enable_file_override => Tắt: Chức năng ghi đè tệp không được bật.
Điều này có nghĩa là mặc dù OPcache đã hoạt động, nhưng vẫn còn chỗ để tối ưu hóa.
Chỉnh sửa các tệp cấu hình PHP
Trong HestiaCP, đường dẫn đến tệp cấu hình PHP thường là:
/etc/php/8.x/fpm/php.ini
Để kích hoạt chế độ CLI:
/etc/php/8.x/cli/php.ini
Tìm phần [opcache] và thêm hoặc sửa đổi các tham số sau:
[opcache] ; 启用 OPcache opcache.enable=1 opcache.enable_cli=1 ; 内存与缓存设置 opcache.memory_consumption=256 opcache.interned_strings_buffer=16 opcache.max_accelerated_files=10000 ; 文件更新检测 opcache.validate_timestamps=0 opcache.revalidate_freq=60 ; 其他优化参数 opcache.save_comments=1 opcache.fast_shutdown=1 opcache.enable_file_override=1
Chi tiết tham số và logic tối ưu hóa
opcache.memory_consumption=256
Phân bổ 256MB bộ nhớ cho OPcache là phù hợp với các trang web có quy mô trung bình đến lớn.
Đối với các trang web nhỏ, bạn có thể đặt dung lượng là 128MB.opcache.interned_strings_buffer=16
Cung cấp bộ nhớ đệm chuỗi 16MB để giảm thiểu việc sử dụng các chuỗi trùng lặp.opcache.max_accelerated_files=10000
Số lượng tệp được lưu vào bộ nhớ cache tối đa được khuyến nghị là ít nhất 10000 trong môi trường WordPress + plugin.opcache.revalidate_freq=60
Các tập tin được kiểm tra cập nhật mỗi 60 giây để giảm thiểu tần suất thao tác I/O.opcache.enable_cli=1
Việc bật tính năng bộ nhớ đệm CLI rất phù hợp để chạy các công cụ dòng lệnh như Artisan và WP-CLI.opcache.enable_file_override=1
Cho phép OPcache đảm nhiệm bộ nhớ đệm của hệ thống tập tin, giúp giảm thiểu hơn nữa việc truy cập đĩa.- opcache.validate_timestamps=0
- Tắt tính năng phát hiện thời gian thựcGiảm thiểu thao tác đọc/ghi dữ liệu trên hệ thống tập tin và cải thiện hiệu năng.
Tuy nhiên, điều này có nghĩa là bạn phải tự tay xóa bộ nhớ cache (khởi động lại dịch vụ PHP) sau khi chỉnh sửa các tệp PHP.
Sau khi sửa đổi cấu hình, bạn phải khởi động lại dịch vụ PHP để các thay đổi có hiệu lực.
sudo systemctl restart php<版本>-fpmSự kết hợp của các thông số này cho phép trang web duy trì hoạt động ổn định ngay cả khi có lưu lượng truy cập cao.
Khởi động lại dịch vụ PHP-FPM
Sau khi thực hiện các thay đổi, hãy nhớ khởi động lại dịch vụ:
sudo systemctl restart php8.x-fpm
Sau đó chạy lại:
php -i | grep opcache
Các thông số đã được xác nhận là đã được cập nhật.
Các phương pháp tốt nhất cho môi trường sản xuất
Trong môi trường sản xuất, tối ưu hóa OPcache không chỉ đơn thuần là điều chỉnh tham số; nó còn bao gồm các chiến lược sau:
1. Xóa bộ nhớ đệm trong quá trình triển khai
Sau mỗi lần cập nhật mã, OPcache phải được xóa; nếu không, phiên bản cũ hơn có thể được tải.
Bạn có thể thêm đoạn mã sau vào tập lệnh CI/CD:
<?php opcache_reset();
Ngoài ra, bạn cũng có thể thực thi lệnh này trong quá trình triển khai:
systemctl reload php8.x-fpm
2. Tránh vệ sinh thường xuyên
Việc xóa bộ nhớ đệm quá thường xuyên có thể dẫn đến suy giảm hiệu năng.
Nên chỉ dọn dẹp khi cập nhật mã nguồn, thay vì dọn dẹp định kỳ.
3. Giám sát việc sử dụng OPcache.
Bạn có thể kiểm tra tỷ lệ truy cập bộ nhớ cache theo thời gian thực bằng cách sử dụng lệnh `php -i | grep opcache` hoặc bằng cách cài đặt plugin Opcache Control Panel.
Tỷ lệ thành công trên 95% cho thấy cấu hình hợp lý.
Theo các bài kiểm tra hiệu năng chính thức của Zend, việc bật OPcache có thể cải thiện tốc độ thực thi script PHP lên đến 3 lần và giảm mức sử dụng CPU đến 50%.
Đây không phải là một lý thuyết huyền bí nào cả; mà là những dữ liệu xác thực.
Kết luận: Quan điểm và những trích dẫn quan trọng của tôi
Theo tôi, OPcache giống như một "bộ tăng áp" cho một trang web. Nếu không có nó, PHP giống như một chiếc xe không có bộ tăng áp, chạy chậm và lãng phí nhiên liệu.
Tối ưu hóa OPcache không chỉ là vấn đề kỹ thuật mà còn là lựa chọn chiến lược cho hoạt động của website.
Vì tốc độ quyết định tỷ lệ chuyển đổi, và hiệu suất quyết định khả năng cạnh tranh.
Câu nói quan trọng: Tương lai của một trang web không nằm ở việc mã nguồn của nó phức tạp đến mức nào, mà nằm ở tốc độ phản hồi nhanh đến mức người dùng thậm chí không kịp chớp mắt.
Do đó, hãy ngừng để máy chủ lãng phí tài nguyên vào các vòng lặp không hiệu quả.
Tối ưu hóa HestiaCP OPcache ngay bây giờ và giúp trang web của bạn hoạt động nhanh hơn.
Bạn có muốn tôi viết một mẫu cấu hình OPcache tốt nhất cho môi trường sản xuất của bạn, mà sau đó bạn có thể sao chép trực tiếp và sử dụng trong php.ini không?
Hy vọng Chen Weiliang Blog ( https://www.chenweiliang.com/ Bài viết "Làm thế nào để tối ưu hóa OPcache trong HestiaCP? Bộ nhớ đệm Opcode và biên dịch mã PHP để giúp trang web của bạn hoạt động nhanh hơn" được chia sẻ ở đây có thể hữu ích cho bạn.
Chào mừng bạn đến chia sẻ liên kết của bài viết này:https://www.chenweiliang.com/cwl-34197.html
