[HƯỚNG DẪN] Cách giảm thời gian phản hồi của máy chủ (ttfb) 2020

Thời gian phản hồi của máy chủ web càng lớn thì tốc độ tải trang càng chậm. Page Speed (Tốc độ tải trang) luôn mong đợi phản hồi nhanh chóng đối với các yêu cầu tài nguyên từ máy chủ để đảm bảo thời gian tải trang nhanh nhất. Đối với mỗi yêu cầu tài nguyên, server của bạn cần bắt đầu gửi byte dữ liệu đầu tiên của tài nguyên trong vòng 200ms đầu tiên kể từ khi yêu cầu được gửi. Bài viết này vinahi sẽ hướng dẫn tất tần tật về chủ đề giảm thời gian phản hồi của máy chủ (ttfb)

Giảm thời gian phản hồi của (server) máy chủ (ttfb) là gì?

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

Thời gian phản hồi của server( máy chủ) tiếng Anh là Server Response Time, là khoảng thời gian cần thiết để tải tài liệu HTML của trang web từ máy chủ cho đến khi nó được hiển thị cho khách truy cập. Nếu thời gian phản hồi của máy chủ quá lâu và không tối ưu, các tài liệu HTML chắc chắn sẽ mất nhiều thời gian hơn để tải xuống. Nếu như tài liệu HTML không được tải thì đương nhiên điều đó có nghĩa là trình duyệt sẽ không biết những tài nguyên nào khác sẽ được yêu cầu, vì vậy trình duyệt gặp khó khăn trong việc hiển thị trang đúng cách.

Thời gian phản hồi của một máy chủ thường được đo trong một khoảng thời gian được gọi là “Thời gian đến Byte đầu tiên” (Time to First Byte, gọi tắt là TTFB).

Thời gian cho Byte đầu tiên là 161 ms
Thời gian cho Byte đầu tiên là 161 ms

Khi bạn chạy một số bài kiểm tra tốc độ, bạn có thể thấy một thay đổi nhỏ trong TTFB. Tuy nhiên, con số này sẽ không thay đổi chênh lệch quá nhiều. Sự thay đổi nhỏ này xảy ra có thể do các yếu tố ảnh hưởng đến độ trễ gây ra. Nhưng nếu sự khác biệt là đáng kể, không phải là “nhẹ” như nó phải có, thì trang web của bạn đang gặp sự cố nghiêm trọng và nó nằm ngoài các vấn đề về hiệu suất hoặc hiệu suất, độ trễ hay giảm thời gian phản hồi của máy chủ (ttfb)…

Ví dụ

Hãy xem một ví dụ cụ thể về thời gian phản hồi của máy chủ:

  • Giả sử rằng khách hàng của bạn đang sử dụng API ở Ấn Độ và máy chủ được đặt ở Singapore.
  • Giới hạn lý thuyết của độ trễ, là tốc độ ánh sáng, có giá trị là: 3 ∗ 10 ^ 5km / s
  • Khoảng cách giữa Ấn Độ và Singapore: 6000km
  • Tốc độ của ánh sáng ở trong sợi quang: 0.66 ∗ 3 ∗ 10 ^ 5 = 2 ∗ 10 ^ 5
  • Thời gian đi một chiều = 6000km / (2 ∗ 10 ^ 5) = 30 ms
  • Thời gian khứ hồi = 30 ∗ 2 = 60 mili giây
  • 60 ms là giới hạn thực tế cho một phản hồi chung, bạn có thể thêm 25 ms phụ phí cho chuyển đổi và độ trễ.
  • Do đó, 85 ms phải là con số lý tưởng để đạt được.

Thời gian phản hồi điển hình liên quan đến một số yếu tố, bao gồm:

  • Độ trễ (85ms – con số được tính ở trên)
  • Khởi tạo kết nối (Connection Initialisation)
  • Phân giải DNS
  • Truy vấn phụ trợ
  • Nội dung tải xuống (Content download).

Bạn có thể thử các phương pháp khác nhau để giảm từng thành phần thời gian trong các yếu tố phân tích ở trên. Ví dụ, bộ nhớ đệm cấp máy chủ (cơ sở dữ liệu trong bộ nhớ) sẽ giảm thời gian truy vấn, sử dụng tính năng nén (gzip) sẽ giảm thời gian tải nội dung, không gọi nhiều API cho mỗi ảnh, bạn có thể sử dụng bản đồ ảnh css để làm điều này. Nhưng quan trọng nhất, hãy chú ý đến yếu tố có ảnh hưởng lớn nhất: Giảm thời gian phản hồi của máy chủ (ttfb).

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ủ

Các yếu tố ảnh hưởng đến thời gian đáp ứng của máy

Lưu trữ web kém

Máy chủ web sử dụng phần cứng / phần mềm lỗi thời sẽ dẫn đến thời gian phản hồi chậm hơn cho người dùng. Hơn nữa, ngay cả khi nhà cung cấp dịch vụ lưu trữ hiện đang cung cấp các thiết bị tiên tiến nhất, vẫn có nhiều lựa chọn cho các loại dịch vụ lưu trữ khác nhau. Thông thường, các nhà cung cấp dịch vụ lưu trữ web (tối thiểu) sẽ có các tùy chọn sau: shared hosting, VPS và dedicated hosting.

Tăng lưu lượng truy cập

Tăng lưu lượng truy cập có nghĩa là đang xuất hiện nhiều tài nguyên hơn cùng được sử dụng. Do đó, nếu bạn đạt đến giới hạn tối đa của máy chủ, khách truy cập của bạn sẽ có trải nghiệm duyệt web chậm khiến họ rất không hài lòng, thậm chí tệ hơn là bạn sẽ gặp phải mã lỗi (error code) như vượt quá giới hạn băng thông (bandwidth limit exceeded).

Các trang web lớn (Các trang web cồng kềnh)

Các trang web có thể trở nên khá cồng kềnh nếu không thực hiện tối ưu hóa hoặc thực hiện nhưng không phù hợp. Ví dụ: kích thước hình ảnh quá lớn, hình ảnh không phản hồi, tệp CSS / JS không được thu nhỏ,…

Thiếu bộ nhớ đệm

Bộ nhớ đệm ( cache) là một bước cực kỳ quan trọng trong việc truyền tải nội dung đến người dùng một cách nhanh chóng hơn. Vì vậy, việc thiếu bộ nhớ sẽ tạo ra thời gian chờ đợi không cần thiết, vì trình duyệt phải yêu cầu tài nguyên từ máy chủ chính mỗi khi nó nhận được yêu cầu, thay vì truy cập chúng từ bộ nhớ cache cục bộ hoặc cache trung gian rút ngắn khoảng cách vật lý giữa máy chủ và người dùng.

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

Chọn nhà cung cấp máy chủ uy tín và chất lượng

Nếu bạn đang gặp vấn đề về tốc độ trong hiệu suất trang web của mình, có thể đã đến lúc nâng cấp gói lưu trữ hoặc thay đổi nhà cung cấp máy chủ web của bạn ngay lập tức.

Có một thực tế là, càng rẻ càng tốt, hãy cố gắng tránh xa những nhà cung cấp dịch vụ lưu trữ web với tiêu chí rẻ nhất, vì trong tương lai việc trả một mức phí “rẻ nhất” sẽ khiến bạn trải nghiệm một trang web có hiệu suất “rẻ nhất” không kém, chưa kể các dịch vụ chăm sóc và hỗ trợ kỹ thuật khi bạn gặp khó khăn khi sử dụng. Nên quan trọng ở đây không phải vì giá cả mà là chất lượng.

Trong trường hợp bạn đang sử dụng dịch vụ lưu trữ chia sẻ (tức là bạn đang thực hiện chia sẻ tài nguyên server với các trang web khác), vì vậy đã đến lúc nâng cấp lên máy chủ VPS hoặc máy chủ chuyên dụng dedicated server (tùy theo nhu cầu của bạn).

Chọn nhà cung cấp máy chủ uy tín và chất lượng
Chọn nhà cung cấp máy chủ uy tín và chất lượng

Nén, giảm thiểu, tối ưu hóa và bộ nhớ đệm (Compress, Minify, Optimize và Cache)

Bộ nhớ đệm giúp cải thiện thời gian phản hồi của máy chủ rất hiệu quả, vì tài liệu HTML được truy cập nhanh hơn rất nhiều.

Nếu bạn sử dụng WordPress, hãy cân nhắc sử dụng plugin bộ nhớ đệm như Cache Enabler. Plugin bộ nhớ đệm sẽ tạo tệp HTML tĩnh thay vì tải tất cả nội dung trang web của bạn.

[HƯỚNG DẪN] Cách giảm thời gian phản hồi của máy chủ (ttfb) 2020 2

Hơn nữa, bạn chỉ nên tận dụng lợi thế của mạng phân phối nội dung (CDN) để cải thiện hơn nữa chiến lược lưu vào bộ nhớ đệm sau khi tải xong tài liệu HTML và bạn cũng cần tải các tài nguyên tĩnh khác.

Khi bạn đã có chiến lược bộ nhớ đệm, nén dữ liệu bằng các phương pháp như Gzip hoặc Brotli, giảm thiểu CSS, JS và HTML và tối ưu hóa hình ảnh là các bước tiếp theo.đây là các bước thực hiện tiếp theo cực kỳ quan trọng phải thực hiện.

Tối ưu hóa máy chủ web

Không phải ai cũng cảm thấy thoải mái khi tối ưu hóa máy chủ web của riêng họ, nhưng hãy đảm bảo server của bạn được tối ưu hóa hoàn toàn, điều này sẽ giúp giảm thời gian phản hồi của máy chủ (ttfb).

Có một số tùy chọn có sẵn trong việc chọn phần mềm máy chủ của bạn và hầu hết người dùng chọn sử dụng Apache hoặc Nginx. Mỗi web server đều có ưu và nhược điểm riêng, đối với Nginx là khả năng cung cấp hiệu suất tốt hơn trong hầu hết các trường hợp.

Cuối cùng, bất kể bạn đang sử dụng phần mềm máy chủ nào, điều quan trọng là phải định cấu hình nó để các quy tắc hết hạn có thể được xác định, chẳng hạn với browser caching.

Cải thiện hiệu suất cơ sở dữ liệu

Ngoài các khuyến nghị được đề cập ở trên, việc tối ưu hóa hiệu suất cơ sở dữ liệu đóng một vai trò quan trọng trong nỗ lực giảm thời gian phản hồi của máy chủ (ttfb). Có rất nhiều cách thức khác nhau để cải thiện hiệu suất cơ sở dữ liệu, chẳng hạn như: viết lại các truy vấn của bạn để ưu tiên hiệu suất, thay đổi lược đồ của bạn thành nhóm các đối tượng (schema to group object) và sử dụng các chỉ mục …

Kết luận

Tóm lại, nếu thời gian phản hồi của máy chủ hoặc TTFB của bạn vượt quá 200 mili giây, đã đến lúc xem xét nghiêm túc các ngăn xếp và bắt đầu làm gì đó để giảm con số này. Thời gian phản hồi của máy chủ càng nhanh thì người dùng ở lại trang web của bạn càng lâu và tất nhiên tỷ lệ thoát cũng sẽ giảm.

Qua bài viết vừa rồi chúng tôi đã hướng dẫn và cập nhật thông tin thật chi tiết giúp các bạn giảm thời gian phản hồi của máy chủ (ttfb).