Chỉnh lên tốc độ bàn thờ và web chết ngắc

Mấy ngày gần đây nhân tiện cập nhật cho hostng liên quan đến bảo mật, KACBT đã chỉnh đôi chút để tốc độ nạp trang nhanh hơn nữa. Mục đích của việc chỉnh này đảm bảo tiêu chuẩn 3 giây nạp hoàn tất một trang bất kỳ trên site này. Xin dông dài chém gió như một câu chuyện bi hài hầu các bạn.

Cập nhật phiên bản PHP

Sau khi nâng cấp các bảo mật theo khuyến cáo của tin tức qua thư (KACBT có tham gia vào một nhóm tin thư về bảo mật Web phát triển trên nền PHP, đặc biệt là nền tảng WordPress) thành công, tui cũng thử chỉnh một chút để tăng tốc thêm một chút.

Hiện đã lên phiên bản PHP 8.2.x

Từ PHP 8.x đã có Opcache, cái này nghe thiên hạ kháo nhau rằng giúp trang web PHP nạp nhanh hơn. Sau khi đọc vài bài trên các blog của những lập trình viên PHP, DevOps chúng tôi đã áp dụng vào website này.

Thông tin về OPcache trên hệ thống.

Tham lam quá độ nên chỉnh thêm JIT, nhưng cái này có vẻ là không phù hợp với ứng dụng được viết như WordPress nên đã xảy ra lỗi, và lỗi 503. Vậy là đành từ bỏ JIT, một thứ nghiệm thất bại.

Lỗi 503, có lẽ do PHP bị crash.

Khi nâng lên PHP 8.2.x có một số plugin và đoạn mã của WordPress nảy sinh lỗi, chủ yếu liên quan đến kiểu dữ liệu Array. Chúng tôi dù không phải lập trình viên PHP chuyên nghiệp nhưng đủ sức xử lý các lỗi này nên đã chỉnh sửa xong.

Tuy vậy, cũng có một số thứ hiện lên khó khắc phục, ví dụ như lỗi liên quan đến cache. Hệ thống không tạo ra cache hoặc bị lặp không ngừng.

Chỉ đạt điểm E trên thang điểm hiệu suất.

Cũng có vài thiếu sót lặt vặt khác liên quan đến việc thiếu mô-đun của PHP nhưng cũng đã sớm khắc phục được, lần này liên quan đến mục Thảo luận đã kể.

Thiếu thư viện xử lý liên quan đến DBMS SQLite.

Nhờ các cộng đồng webmaster dạng forum kiểu cổ điển mà chúng tôi nhanh chóng tìm được trợ giúp để có thể chỉnh sửa được các lỗi khiến site này chạy lạng quạng.

Thay đổi khác – liên quan xử lý hình ảnh

Mặc định, WordPress sử dụng GD để xử lý hình ảnh được upload lên thư viện media. Trong khi đó, chuyên mục Thảo luận của chúng tôi vận hành trên nền tảng phpBB cũng hỗ trợ GD nhưng luôn khuyến cáo người dùng nên sử dụng ImageMagick.

Mục đích dùng ImageMagick để đạt được một số thứ được xem là thú vị hơn so với GD. Tất nhiên, ImageMagick không hoàn toàn ưu điểm, đổi lại là có thể kềnh càng hơn, chậm chạp hơn, cài cắm lôi thôi hơn so với GD (ví dụ: trong PHP thì Imagick chính là cái liên quan đến ImageMagick).

Chúng tôi đã làm thế nào? Đầu tiên cần phải xem qua thì thấy rằng PHP muốn cài tương tác với ImageMagick thì phải thực hiện vài thứ khá dích dắc. Tui cũng không nhớ rõ cách làm chi tiết, chỉ biết là phải “build from source” – một cụm từ rất thường gặp nếu bạn dấn thân vào thế giới phần mềm nguồn mở. Sau đó, chỉnh sửa vài thông số, chạy thử một PHP script để test xem mọi thứ có hoạt động?

Mặc định phpBB ưu tiên sử dụng ImageMagick để xử lý hình ảnh tải lên tạo thumbnail, nếu không thể tìm thấy Imagick nó sẽ tự chuyển sang dùng GD, không cần phải chỉnh chọc gì.

Về bên WordPress, mặc định là GD, WordPress Core chưa hỗ trợ Imagick. Vậy nên, tra cứu xem với một plugin, WordPress có thể hỗ trợ việc này hay không. Thật may mắn làm sao, chúng tôi tìm được:

Trình xử lý ảnh dùng động cơ ImageMagick cho WordPress

Khi sử dụng Imagick, chúng tôi khám phá ra một điều thú vị đó là khi xử lý ảnh nó sẽ không dùng nhiều RAM liên quan thông số memory_limit nhiều như khi dùng GD.

Thay lời kết luận

Sau nâng cấp, website nạp nhanh hơn, không riêng gì Khó ăn cát bê tông mà một số website chị em cũng có tốc độ nạp nhanh hơn, ước tính việc nhanh hơn này không dễ nhận biết nếu không dùng công cụ đo đếm, chỉ khoảng 7%. Nhưng điều đó cũng rất đáng bỏ thời gian ra để chỉnh chọc.

Tuy vậy, vẫn còn điều gì đó lấn cấn liên quan đển Object Cache và Transient của WordPress. Cái này cần có thời gian tìm hiểu mới có thể xử lý được, chúng tôi hẹn bạn vào dịp khác để lại chém gió về những thứ lục lọi được đâu đó./.

Lên đầu trang