» » Giảm thời gian phản hồi của máy chủ

Giảm thời gian phản hồi của máy chủ

Giảm thời gian phản hồi của máy chủ là khuyến nghị của Google PageSpeed nhằm giúp cải thiện tốc độ trang web và hiệu suất máy chủ.

Thời gian phản hồi của máy chủ là gì?

  1. Trình duyệt sẽ gửi yêu cầu đến máy chủ web.
  2. Máy chủ web sẽ phản hồi lại yêu cầu của trình duyệt.

Thời gian mà trình duyệt chờ đợi đến khi tải về các HTML cần thiết từ máy chủ web để bắt đầu hiển thị, trừ ra độ trễ mạng giữa người truy cập và máy chủ, đây chính là thời gian phản hồi của máy chủ.

Trình duyệt ví như khách hàng đặt đồ ăn từ xa, máy chủ web ví như một đầu bếp. Thời gian để đầu bếp chế biến xong món ăn là rất ngắn (hầu hết đều có món ăn sẵn), nhưng thời gian để bạn có bữa ăn là rất dài. Tại sao? Vì khoảng cách giao hàng xa và có khi còn kẹt xe.

Google nói rằng bạn nên giảm thời gian phản hồi của máy chủ dưới 200ms (0.2 giây). Đây không phải là bắt buột, nhưng nếu bạn muốn trang web của bạn tải nhanh hơn và được Google ưu ái hơn, hãy làm nó.

Kiểm tra thời gian phản hồi của máy chủ

Bạn có thể kiểm tra thời gian phản hồi máy chủ bằng cách sử dụng tổng thời gian tải trang và trừ ra độ trễ. Có nhiều công cụ và trình duyệt hỗ trợ để làm việc này, ở đây mình sẽ sử dụng Google Chrome.

  • Mở Google Chrome, nhấn phím F12 để mở Chrome DevTools và truy cập vào trang web của bạn.
  • Sau khi trang web được tải, chọn tab Network trên cửa sổ Chrome DevTools. Tại đây bạn sẽ thấy danh sách các phần tử đã được tải và các thông số như Name, Status, Type, Time, Timeline
  • Xem chi tiết về thời gian chi tiêu cho các tài nguyên ở cột Timeline.

Ở đây, kiểm tra cột Time/Latency để biết thời gian tải và độ trễ. Thời gian tải được liệt kê ở hàng trên và độ trễ được liệt kê ở dưới. Bạn có thể biết thời gian phản hồi của máy chủ bằng cách lấy giá trị của Time trừ cho Latency (độ trễ).

Giảm thời gian phản hồi của máy chủ Hiển thị cách khắc phục

Vì trang web này được cache nên máy chủ chỉ mất 1ms để phản hồi. Trong khi độ trễ lên đến 169ms.

Bạn cũng có thể kiểm tra thời gian phản hồi máy chủ của trang web thông qua PageSpeed Insights. Nếu bạn đang sử dụng trình duyệt tiếng Anh thì nó ở mục “Reduce server response time“.

Làm thế nào để giảm thời gian phản hồi của máy chủ?

Để các đầu bếp có thể phục vụ cho khách hàng tốt hơn, thứ nhất là bạn có thể nâng cao tay nghề của các đầu bếp, thứ hai là tăng số lượng đầu bếp và thứ ba là thay đổi để các món ăn có thể dễ dàng để làm và nhanh hơn.

Các máy chủ web cũng vậy, để cải thiện hiệu suất và giảm thời gian phản hồi của máy chủ, bạn có thể lựa chọn một trong hai phương pháp dưới đây:

  1. Trả thêm một khoản tiền để nâng cấp máy chủ web hoặc hosting. Hầu hết nguyên nhân khiến máy chủ phàn hồi chậm là do máy chủ quá yếu như CPU nhỏ, lượng RAM thấp.
  2. Tìm hiểu thêm kiến thức về máy chủ web (Apache, Nginx…) và hosting để tối ưu hóa chúng. Bạn cũng cần phải cải thiện tốc độ cho mã nguồn Web mà bạn đang sử dụng như WordPress, Drupal, XenForo… Một số thủ thuật có thể giúp bạn tối ưu hóa trang web là cache, sử dụng CDN…

Nếu một trong hai phương pháp trên không đáp ứng được tình hình, hãy áp dụng cả hai. Ở đây, mình sẽ hướng dẫn bạn một số cách để có thể cải thiện hiệu suất máy chủ.

Sử dụng bộ nhớ đệm (Cache)

Một trong các phương pháp tốt nhất để tăng tốc website và giảm tải cho máy chủ là sử dụng bộ nhớ đệm (cache). Có hai phương pháp cache sẽ giúp trang web của bạn tải nhanh hơn là nâng cao lưu vào bộ nhớ cache trong trình duyệt và cache trên máy chủ.

Một trang web thường có nhiều trang, các trang này đều sử dụng chung các tài nguyên như tập tin CSS, JS và hình ảnh. Mỗi khi người dùng di chuyển sang một trang khác hoặc tải lại trang, thì các tài nguyên này cũng sẽ tải lại một lần nữa. Thay vì thường xuyên gửi yêu cầu đến máy chủ, bạn có thể lưu các tài nguyên này vào bộ nhớ của trình duyệt.

Các máy chủ web (Apache, Nginx…) và các server-side như PHP sẽ xử lý các yêu cầu và lưu nó vào bộ nhớ đệm (bộ nhớ RAM hoặc ổ đĩa) để sử dụng cho các lần sau. Thay vì máy chủ sẽ xử lý cho mỗi lần yêu cầu, nó sẽ sử dụng dữ liệu trong bộ nhớ đệm để trả về cho trình duyệt. Đối với PHP, bạn có thể sử dụng APC, Memcached hoặc Zend Opcache.

Nếu bạn đang sử dụng WordPress, bạn có thể cache bằng cách sử dụng plugin W3 Total Cache hoặc WP Super Cache.

Sử dụng CDN

CDN là gì? CDN (viết tắt của content delivery network hay content distribution network) là một hệ thống phân phối lớn của các máy chủ được triển khai tại nhiều trung tâm dữ liệu trên Internet. Nếu dữ liệu của bạn được lưu trữ trên một máy chủ CDN, có nghĩa rằng dữ liệu của bạn cũng được lưu trữ trên tất cả các trung tâm dữ liệu của họ trên toàn thế giới. Các máy chủ CDN sẽ nhận dạng vị trí của người truy cập và dữ liệu sẽ được truy xuất từ máy chủ gần nhất, vì thế việc sử dụng CDN sẽ làm cho trang web của bạn tải nhanh hơn.

Tại sao sử dụng CDN giúp giảm thời gian phản hồi máy chủ? Vì số lượng yêu cầu gửi đến máy chủ của bạn sẽ giảm đáng kể. Các tài nguyên tĩnh như CSS, JS và hình ảnh sẽ được lưu trữ và phục vụ từ một máy chủ CDN, máy chủ của bạn chỉ để phục vụ cho xử lý nội dung động như PHP.

Có nhiều dịch vụ CDN miễn phí mà bạn có thể sử dụng như CloudFlare và Incapsula.

Tối ưu hóa tài nguyên

Tối ưu hóa các nguồn tài nguyên trên trang web sẽ làm giảm yêu cầu, từ đó giảm tải máy chủ và giảm thời gian phản hồi của máy chủ.

  • Kết hợp các tập tin CSS và JS thành một tập tin duy nhất. Điều này giúp giảm yêu cầu xử lý đến máy chủ.
  • Nếu nội dung CSS và JS của bạn là nhỏ, bạn có thể chèn nó vào nội tuyến HTML thay vì sử dụng tập tin bên ngoài.
  • Lazy load: đây là phương pháp trì hoãn tải các hình ảnh. Các hình ảnh sẽ được tải và hiển thị khi cần thiết.

Đó là một số phương pháp để tối ưu hóa các tài nguyên và làm giảm yêu cầu cho máy chủ. Càng ít yêu cầu để xử lý thì máy chủ càng có ít công việc để làm, nó sẽ xử lý các mục đích khác tốt hơn.

Web server

Web server là một yếu tố quan trọng để quyết định tốc độ của trang web. Apache và Nginx là 2 web server được sử dụng phổ biến vì nó dễ dàng cài đặt và sử dụng. Cả hai đều có ưu điểm riêng, bạn nên thử nghiệm để lựa chọn một web server phù hợp.

Lựa chọn trình quản lý cơ sở dữ liệu cũng là yếu tố quan trọng, bạn cũng nên thử nghiệm để có sự lựa chọn phù hợp. Một số phần mềm quản lý cơ sở dữ liệu phổ biến là MySQLMariaDB, PostgreSQL…

Đối với một máy chủ nhỏ (như 512MB RAM), bạn có thể cài đặt Nginx và PHP-FPM thay vì sử dụng Apache và mod_php.

VPS và Shared hosting

Nếu như bạn có khả năng thì bạn nên sử dụng một VPS. Có 2 nhà cung cấp dịch vụ VPS mà mình tin tưởng là DigitalOcean (hiện đang dùng) và Vultr, chất lượng DigitalOcean được đánh giá là rất tốt và chất lượng Vultr cũng không kém. Hiện tại hai nhà cung cấp trên đang có khuyến mãi, bạn có thể đăng ký để dùng thử dịch vụ của họ.

Đối với Shared hosting, bạn có thể sử dụng Bluehost. Mình không sử dụng dịch vụ ở đó nhưng họ được khuyến khích sử dụng bởi WordPress hosting.

Có rất nhiều nhà cung cấp VPS và hosting, bạn nên tham khảo chất lượng trước khi sử dụng.

Kết luận

Tóm lại là bạn nên lựa chọn một nhà cung cấp VPS hoặc Shared hosting có chất lượng cao. Sử dụng cache và CDN sẽ giúp giảm thời gian phản hồi của máy chủ đáng kể. Chúc bạn thành công.

Thích hoặc chia sẽ bài này

  • nammdp

    Bạn đang chạy trên vps DO sing cấu hình sao vậy ?có tối ưu vps gì ko ? chạy rất nhanh nhé

    • Mình dùng VPS 512MB, lượt truy cập ít nên nó nhanh bạn ạ