Speed Up Wordpress

Tối ưu thời gian phản hồi đầu tiên của máy chủ (TTFB)

Bài viết này thuộc phần 10 trong tổng số 16 bài viết trong Serie Tăng tốc Wordpress dùng WooCommerce

Một vấn đề muôn thủa mà hầu như mọi web dùng WordPress đều gặp phải. Đó chính là hiệu suất.

Chọn đơn vị thuê Hosting

Đây là một vấn đề cực kì quan trọng nha! Trước khi chọn thì bạn cần quan tâm những điều sau

Hỗ trợ các phiên bản PHP mới nhất

Hiện tại phiên bản php mới nhất là php74.

Lưu ý rằng WordPress bản mới nhất chỉ hỗ trợ php56 trở lên. Php7 có hiệu suất cao hơn php5 rất nhiều lần (quên mất chính xác là bao nhiêu lần rồi). Vậy nên việc chọn nhà cung cấp hosting có phiên bản php mới là cực kỳ quan trọng.

Sử dụng LiteSpeed Server

LiteSpeed đi kèm với LiteSpeed Cache là cache có tốc độ xử lý + chịu tải ngon nhất hiện giờ rồi. Nhất là plugin LiteSpeed Cache đi kèm tuyệt vời ông mặt trời. Sẽ thật tiếc nếu hosting bạn chọn sử dụng Apache thay vì LiteSpeed

Server đặt trong nước

Hãy ưu tiên các đơn vị cung cấp hosting uy tín trong nước. Nhiều bạn có vẻ chê hosting trong nước tệ hơn các đơn vị nước ngoài. Đúng vậy, có thể đơn vị trong nước không bằng thật, nhưng chất lượng của chúng ta cũng chả kém họ đâu. Khoảng cách về vị trí địa lý sẽ quan trọng hơn rất nhiều so với hơn thiệt một chút giữa đơn vị trong và ngoài nước.

Có hỗ trợ Object Cache

Object ở đây là gì? Cái này bạn tự tìm hiểu thôi. Cơ bản cứ thấy Memcache hay Redis là được.

Mình cũng muốn nhắc các bạn chút xíu. Có rất nhiều bạn nhầm lẫn giữa extension redis-memcache của php và redis socket. Hai cái này có sự khác biệt rất lớn nha.

Redis extension nó là 1 extension của PHP để kết nối với Redis. Redis Socket ngon hơn so với Redis kết nối qua TCP/IP ( Lời của 1 anh chuyên quản trị vps vào chửi mình viết sai :(( )

Và theo mình biết thì số đơn vị triển khai được Redis-Memcache qua socket rất ít. Tại Việt Nam thì mình có biết được TinoHost và Inet, số còn lại thì không rõ nữa.

Hỗ trợ khi gặp sự cố

Cái này khó. Tùy vào chỗ này chỗ kia. Mình cũng không đưa ra đánh giá được.

Cơ mà cái nên để ý là cái backup hàng ngày, hàng tuần. Có lần mình dùng cái con vps bên Tino, upgrade Directadmin lên bản mới nhất thì toang, éo hiểu sao. Nhờ bên hỗ trợ thì người ta restore về bản 2 hôm trước(may vl), thế là mây lần sau rút kinh nghiệm nhờ ông support bên đấy làm cho, bớt nghịch ngu.

Chọn Theme hỗ trợ cho bán hàng

Cứ lên ThemeForest vào tìm các theme bán chạy nhất mà phang thôi. Xin ít đánh giá từ cộng đồng nữa là ổn.

Sử dụng Cache

Tùy theo hosting của bạn mà chọn loại cache phù hợp thôi.

Nếu hỗ trợ LiteSpeed: Thì cứ plugin Litespeed Cache mà chơi thôi

Còn lại

  • Trang web cỡ nhỏ : Plugin Rocket Cache
  • Trang cỡ Trung bình: W3 Total Cache
  • Trang cỡ lớn: Đừng có dùng WordPress

Sử dụng Object Cache

Hãy sử dụng Redis hoặc Memcache. Mà cái này nói sau đi, cache củng cũng nên là một bài viết riêng chứ không qua loa được.

Áp dụng vào trang web Thegioitiendoc.com

Nói qua đôi chút về hosting mình đang sử dụng. À, có thể trước đây bạn đã nhầm lẫn. Hosting là khái niệm chung chỉ nơi lưu trữ cho trang web. Vậy nên VPS là một hosting, chỉ có điều con hosting (vps) này là bạn tự cấu hình vận hành thôi. Có lúc mình gọi con vps mình đang chạy cho website này là hosting cũng đừng bất ngờ nhá!

Đối với thegioitiendoc.com mình sử dụng Rocket Cache cho pagecache và Redis cho Object Cache.

Tại sao lại sử dụng Rocket Cache?

Rocket cache có một cái khá ngon là dễ sử dụng cho người dùng và cung cấp đầy đủ tài liệu, lớp hỗ trợ cho dev. Thêm vào thì nó cũng khá đầy đủ tính năng của plugin cache. VPS mình cũng cài đặt Nginx-rocket để việc cache không cần php xử lý, giúp quá trình cache nhanh hơn và giảm tài nguyên sử dụng.

Chỉ với các trang web cỡ vừa và nhỏ chúng ta mới nên sử dụng plugin này thôi còn không thì chúng ta nên sử dụng W3 Total Cache có hỗ trợ Cache trên ram (Redis, Memcache). Hoặc LiteSpeed có hệ thống cache độc lập riêng.

Tại sao lại sử dụng Redis?

Để sử dụng được redis, trước tiên hosting của chúng ta phải hỗ trợ redis đã. Còn tại sao lại không sử dụng Memcache mà lại dùng redis?

Cái này chả biết nữa. Redis hay Memcache có nguyên lý sử dụng như nhau à, đều cache trên ram. Vấn đề là Redis mới hớn, mình thì vẫn thích những cái gì mới. Redis cũng được đánh giá tốt hơn đối với csdl lớn.

Lưu ý một điều là Redis cần nhiều tài nguyên sử dụng hơn Memcache nhé.

Cài đặt plugin Redis

Để cài đặt thì bạn vào phần thêm plugin trên admin -> tìm Redis Object Cache và thêm vào thôi. Không thì sử dụng link này

Sau khi cài đặt và kích hoạt Redis Object Cache. Đây là những thứ thay đổi:

Số query từ 97 giảm xuống còn 6: Vậy là có tới 91 query đã được cache. Tỉ lệ trúng cache lên tới 99,9%, một con số gần tuyệt đối rồi đó. Quá ngon rồi phải không!

toi uu thoi gian phan hoi dau tien cua may chu ttfb 710

Thời gian phản hồi của máy chủ (TTFB): Giảm từ 770ms xuống 385ms. :)))

toi uu thoi gian phan hoi dau tien cua may chu ttfb 710 1

Cài đặt plugin Rocket Cache

Lưu ý rằng mình cài plugin Rocket cache chỉ để dùng pagecache thôi chứ không thêm bất cứ tối ưu nào khác nhé!

Thời gian phản hồi của máy chủ (TTFB): Giảm xuống còn 75ms. Đây là con số tuyệt vời rồi. Bạn cứ thấy thời gian phản hồi dưới 300ms(từ Google) là được. Khuyến cáo được công cụ đánh giá hiệu suất đưa ra là dưới 400ms(không bao gồm Google), nhưng theo mình có cache rồi thì thường dưới 100ms thôi.

toi uu thoi gian phan hoi dau tien cua may chu ttfb 710 2

Thành quả thu được

Đầu tiền việc chúng ta có thể thấy ngay được là thời gian phản hồi của máy chủ đã giảm xuống còn dưới 100ms (ban đầu là 770ms).

Thử kiểm tra điểm số với Pagespeed xem sao

Trên thiết bị di động: 26/100 – Tăng 1 điểm (trước là 25). TTFB quan trọng vậy mà chỉ giúp tăng có 1 điểm trên mobile thôi, chúng ta có thể thấy rằng tối ưu cho di động khó đến mức nào.

toi uu thoi gian phan hoi dau tien cua may chu ttfb 710 3

Trên máy tính để bàn: 67/100 – tăng 15 điểm. Mình thì không tin vào con số này lắm. Giảm TTFB thường thì chỉ tăng vài điểm thôi, mình thử test lại nhiều lần thì đúng vậy kết quả giao động ở mức 60 đ, nhưng lười chả chụp lại nữa :v

toi uu thoi gian phan hoi dau tien cua may chu ttfb 710 4

Series Navigation<< Bước 3: Thực hiện các tối ưu hóaTối ưu hóa hình ảnh >>

Quét mã QR để đọc bài viết này để xem tiếp trên điện thoại

QR: Tối ưu thời gian phản hồi đầu tiên của máy chủ (TTFB)